{"id":31480,"date":"2018-04-21T15:47:47","date_gmt":"2018-04-21T15:47:47","guid":{"rendered":"https:\/\/ampscript.guide\/upsertde\/"},"modified":"2022-04-05T12:22:25","modified_gmt":"2022-04-05T12:22:25","slug":"upsertde","status":"publish","type":"post","link":"https:\/\/ampscript.guide\/upsertde\/","title":{"rendered":"UpsertDE"},"content":{"rendered":"<h2>UpsertDE<\/h2>\n<p>This function adds or updates the Data Extension row referenced in the column and value arguments.  Values updated are specified with column name and value pairs.  If no record matches the values specified, a new row is added.  This function does not return a value.<\/p>\n<h3>Arguments<\/h3>\n<p><code>UpsertDE(1,2,3,4,[5a,5b],6,7,[8a,8b]...)<\/code><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center;\">Ordinal<\/th>\n<th style=\"text-align: left;\">Type<\/th>\n<th style=\"text-align: left;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: center;\">1<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Name of the Data Extension containing the rows to add or update<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">2<\/td>\n<td style=\"text-align: left;\">Number<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Number of column and value pairs in the subsequent selection arguments<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">3<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Column name used for selecting rows to add or update<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">4<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Column value for selecting rows to add or update<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">5a<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">False<\/td>\n<td style=\"text-align: left;\">Additional column name used for selecting rows to add or update (see note)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">5b<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">False<\/td>\n<td style=\"text-align: left;\">Additional column value for selecting rows to add or update (see note)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">6<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Column name to add or update<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">7<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">True<\/td>\n<td style=\"text-align: left;\">Column value to add or update<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">8a<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">False<\/td>\n<td style=\"text-align: left;\">Additional column name to add or update (see note)<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\">8b<\/td>\n<td style=\"text-align: left;\">String<\/td>\n<td style=\"text-align: left;\">False<\/td>\n<td style=\"text-align: left;\">Additional column value to add or update (see note)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p>NOTE: Additional pairs of columns and values can be appended as arguments for selecting and upserting rows.<\/p>\n<p>NOTE: This function only works in an email. Use <a href=\"\/upsertdata\">UpsertData<\/a> if you need to add or insert rows into a Data Extension in a landing page, microsite page or CloudPage, or in an SMS message in MobileConnect.<\/p>\n<p>NOTE: According to the <a href=\"https:\/\/developer.salesforce.com\/docs\/atlas.en-us.noversion.mc-programmatic-content.meta\/mc-programmatic-content\/ampscriptProcessing.htm\">official order of processing<\/a>, upsert operations for the entire send are processed at the completion of the send. If your scripting utilizes a <a href=\"\/raiseerror\">RaiseError<\/a> function that aborts an entire send, the upsert operation will not be completed.<\/p>\n<\/blockquote>\n<h3>Example 1<\/h3>\n<p>The following illustrates the use of this function with the minimum number of arguments.<\/p>\n<p><strong>Data Extension<\/strong>: <em>LoyaltyMembers<\/em><\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Name<\/th>\n<th style=\"text-align: left;\">Data Type<\/th>\n<th style=\"text-align: left;\">Length<\/th>\n<th style=\"text-align: center;\">Primary Key<\/th>\n<th style=\"text-align: center;\">Nullable<\/th>\n<th style=\"text-align: left;\">Default Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">EmailAddress<\/td>\n<td style=\"text-align: left;\">EmailAddress<\/td>\n<td style=\"text-align: left;\">254<\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">SubscriberKey<\/td>\n<td style=\"text-align: left;\">Text<\/td>\n<td style=\"text-align: left;\">254<\/td>\n<td style=\"text-align: center;\">Y<\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">FirstName<\/td>\n<td style=\"text-align: left;\">Text<\/td>\n<td style=\"text-align: left;\">50<\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: center;\">Y<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">LastName<\/td>\n<td style=\"text-align: left;\">Text<\/td>\n<td style=\"text-align: left;\">50<\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: center;\">Y<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Created<\/td>\n<td style=\"text-align: left;\">Date<\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: center;\">Y<\/td>\n<td style=\"text-align: left;\">Current Date<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Updated<\/td>\n<td style=\"text-align: left;\">Date<\/td>\n<td style=\"text-align: left;\"><\/td>\n<td style=\"text-align: center;\">N<\/td>\n<td style=\"text-align: center;\">Y<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The <em>LoyaltyMembers<\/em> Data Extension includes these rows:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">EmailAddress<\/th>\n<th style=\"text-align: left;\">SubscriberKey<\/th>\n<th style=\"text-align: left;\">FirstName<\/th>\n<th style=\"text-align: left;\">LastName<\/th>\n<th style=\"text-align: left;\">Created<\/th>\n<th style=\"text-align: left;\">Updated<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">doug@limedash.com<\/td>\n<td style=\"text-align: left;\">8473<\/td>\n<td style=\"text-align: left;\">Doug<\/td>\n<td style=\"text-align: left;\">Smith<\/td>\n<td style=\"text-align: left;\">2017-10-21 12:01<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">suzy@limedash.com<\/td>\n<td style=\"text-align: left;\">5497<\/td>\n<td style=\"text-align: left;\">Suzy<\/td>\n<td style=\"text-align: left;\">Jackson<\/td>\n<td style=\"text-align: left;\">2017-10-20 11:01<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">dale@limedash.com<\/td>\n<td style=\"text-align: left;\">7114<\/td>\n<td style=\"text-align: left;\">Dale<\/td>\n<td style=\"text-align: left;\">Cameron<\/td>\n<td style=\"text-align: left;\">2017-10-19 10:01<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Here is an example utilizing the preceding context:<\/p>\n<pre><code>%%[\n\nvar @emailAddress, @newFirstName, @updatedDate\n\nset @emailAddress = AttributeValue(\"emailaddr\") \/* value from attribute or DE column in send context *\/\nset @emailAddress = \"doug@limedash.com\" \/* or a literal value *\/\n\nset @newFirstName = \"Douglas\"\nset @updatedDate = Now(1)\n\nUpsertDE(\"LoyaltyMembers\",1,\"EmailAddress\", @emailAddress, \"FirstName\", @newFirstName, \"Updated\", @updatedDate)\n\n]%%<\/code><\/pre>\n<h4>Output<\/h4>\n<p>After the operation, the <em>LoyaltyMembers<\/em> Data Extension includes these row values:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">EmailAddress<\/th>\n<th style=\"text-align: left;\">SubscriberKey<\/th>\n<th style=\"text-align: left;\">FirstName<\/th>\n<th style=\"text-align: left;\">LastName<\/th>\n<th style=\"text-align: left;\">Created<\/th>\n<th style=\"text-align: left;\">Updated<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">doug@limedash.com<\/td>\n<td style=\"text-align: left;\">8473<\/td>\n<td style=\"text-align: left;\">Douglas<\/td>\n<td style=\"text-align: left;\">Smith<\/td>\n<td style=\"text-align: left;\">2017-10-21 12:01<\/td>\n<td style=\"text-align: left;\">2017-10-22 14:01<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">suzy@limedash.com<\/td>\n<td style=\"text-align: left;\">5497<\/td>\n<td style=\"text-align: left;\">Suzy<\/td>\n<td style=\"text-align: left;\">Jackson<\/td>\n<td style=\"text-align: left;\">2017-10-20 11:01<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">dale@limedash.com<\/td>\n<td style=\"text-align: left;\">7114<\/td>\n<td style=\"text-align: left;\">Dale<\/td>\n<td style=\"text-align: left;\">Cameron<\/td>\n<td style=\"text-align: left;\">2017-10-19 10:01<\/td>\n<td style=\"text-align: left;\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Example 2<\/h3>\n<div class=\"rcp_restricted rcp_paid_only\"><div>\n\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/wp-json\/wp\/v2\/posts\/31480?rcp_action=lostpassword\">Lost your password?<\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"339584e63b\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<br \/>\nNot a subscriber? <a href=\"\/subscriptions\/subscribe\/\">Subscribe now<\/a>.\n<\/div>\n<\/div>\n<h3>Example 3<\/h3>\n<div class=\"rcp_restricted rcp_paid_only\"><div>\n\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/wp-json\/wp\/v2\/posts\/31480?rcp_action=lostpassword\">Lost your password?<\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480\/\"\/>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"339584e63b\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<br \/>\nNot a subscriber? <a href=\"\/subscriptions\/subscribe\/\">Subscribe now<\/a>.\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>UpsertDE This function adds or updates the Data Extension row referenced in the column and value arguments. Values updated are specified with column name and value pairs. If no record matches the values specified, a new row is added. This function does not return a value. Arguments UpsertDE(1,2,3,4,[5a,5b],6,7,[8a,8b]&#8230;) Ordinal Type Required Description 1 String True [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v14.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The AMPscript Guide - UpsertDE<\/title>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ampscript.guide\/upsertde\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The AMPscript Guide - UpsertDE\" \/>\n<meta property=\"og:description\" content=\"UpsertDE This function adds or updates the Data Extension row referenced in the column and value arguments. Values updated are specified with column name and value pairs. If no record matches the values specified, a new row is added. This function does not return a value. Arguments UpsertDE(1,2,3,4,[5a,5b],6,7,[8a,8b]...) Ordinal Type Required Description 1 String True [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ampscript.guide\/upsertde\/\" \/>\n<meta property=\"og:site_name\" content=\"The AMPscript Guide\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-21T15:47:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-05T12:22:25+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ampscript.guide\/#website\",\"url\":\"https:\/\/ampscript.guide\/\",\"name\":\"The AMPscript Guide\",\"description\":\"The Definitive Scripting Manual for Salesforce Marketing Cloud\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/ampscript.guide\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ampscript.guide\/upsertde\/#webpage\",\"url\":\"https:\/\/ampscript.guide\/upsertde\/\",\"name\":\"The AMPscript Guide - UpsertDE\",\"isPartOf\":{\"@id\":\"https:\/\/ampscript.guide\/#website\"},\"datePublished\":\"2018-04-21T15:47:47+00:00\",\"dateModified\":\"2022-04-05T12:22:25+00:00\",\"author\":{\"@id\":\"https:\/\/ampscript.guide\/#\/schema\/person\/5335042f77731e84f9808aecef25daec\"},\"breadcrumb\":{\"@id\":\"https:\/\/ampscript.guide\/upsertde\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ampscript.guide\/upsertde\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/ampscript.guide\/upsertde\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ampscript.guide\/\",\"url\":\"https:\/\/ampscript.guide\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ampscript.guide\/upsertde\/\",\"url\":\"https:\/\/ampscript.guide\/upsertde\/\",\"name\":\"UpsertDE\"}}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/ampscript.guide\/#\/schema\/person\/5335042f77731e84f9808aecef25daec\",\"name\":\"dev\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480"}],"collection":[{"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/comments?post=31480"}],"version-history":[{"count":0,"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/posts\/31480\/revisions"}],"wp:attachment":[{"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/media?parent=31480"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/categories?post=31480"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ampscript.guide\/wp-json\/wp\/v2\/tags?post=31480"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}