Merge Table Records
post
/rest/api/v1.3/folders/{folderName}/suppData/{tableName}/members
This operation is used to merge (update) Supplemental Table records.
Request
Path Parameters
-
folderName: string
Folder name
-
tableName: string
Table name
Request body
Root Schema : Supplemental Table records
Type:
object
Title:
Show Source
Supplemental Table records
-
insertOnNoMatch:
boolean
Specifies whether a member record should be inserted into the Supplemental Table if it does not already exist.
-
matchColumnNames:
array matchColumnNames
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
-
recordData:
object recordData
Record data that represents field names and corresponding values for the member.
-
updateOnMatch:
string
Allowed Values:
[ "REPLACE_ALL", "NO_UPDATE" ]
Specifies whether a member record should be updated in the Supplemental Table if it already exists.
Nested Schema : matchColumnNames
Type:
array
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
Show Source
Nested Schema : recordData
Type:
object
Record data that represents field names and corresponding values for the member.
Show Source
-
fieldNames:
array fieldNames
Field names in the Supplemental Table
-
mapTemplateName(optional):
string
The map template in Responsys that can be used to map field names of the Supplemental Table to column names.
-
records:
array records
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Nested Schema : records
Type:
array
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Show Source
-
Array of:
array items
Field values for the member in the Supplemental Table
Response
Supported Media Types
- application/json
Default Response
Root Schema : Supplemental Table records
Type:
object
Title:
Show Source
Supplemental Table records
-
insertOnNoMatch:
boolean
Specifies whether a member record should be inserted into the Supplemental Table if it does not already exist.
-
matchColumnNames:
array matchColumnNames
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
-
recordData:
object recordData
Record data that represents field names and corresponding values for the member.
-
updateOnMatch:
string
Allowed Values:
[ "REPLACE_ALL", "NO_UPDATE" ]
Specifies whether a member record should be updated in the Supplemental Table if it already exists.
Nested Schema : matchColumnNames
Type:
array
The column names to be used to match the member record to the Supplemental Table records. Only used during the merge operation.
Show Source
Nested Schema : recordData
Type:
object
Record data that represents field names and corresponding values for the member.
Show Source
-
fieldNames:
array fieldNames
Field names in the Supplemental Table
-
mapTemplateName(optional):
string
The map template in Responsys that can be used to map field names of the Supplemental Table to column names.
-
records:
array records
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Nested Schema : records
Type:
array
Array of values corresponding to the fieldNames. Each element in the array represents a single member.
Show Source
-
Array of:
array items
Field values for the member in the Supplemental Table
Examples
Tip:
Need Higher API Call Limits? We have an API on Asynchronous API with the same functionality. Please use the Asynchronous Merge Supplemental Table Records API.For an existing supplemental table, new members can be added or data for existing members can be updated. For a given supplemental table in a specific folder, an array of record data that contains field names and their corresponding field values are specified using a matchColumnNames attribute in the payload. A maximum of 200 records can be merged in one request.
FIELDS | DESCRIPTION |
---|---|
Authorization | <AUTH_TOKEN> |
Content-Type | application/json |
Sample Request Body:
NOTES:
- The "matchColumnNames" attribute in the payload is used to identify the column to use to match to a record in the supplemental table without a primary key.
- This interface enforces that "insertOnNoMatch" is "true" and "updateOnNoMatch" is "REPLACE_ALL" in the request payload.
- Field names specified in the "fieldNames" attribute are case sensitive. They must match their case as defined in the supplemental table.
{ "recordData" : { "fieldNames" : ["PK1", "PK2", "F1", "F2", "PK3"], "records" : [ ["1", "1", "onerec", "onecol", "1"], ["1", "1", "onerec", "onecol", "2"], ["1", "1", "onerec", "onecol", "3"] ], "mapTemplateName" : null }, "insertOnNoMatch" : true, "updateOnMatch" : "REPLACE_ALL", "matchColumnNames" : ["F1"] }
Sample Response: Success
NOTES:
- When a record was merged successfully, the record in the response mirrors the record in the request payload.
- In case merge failed, the first element of the record contains an error message starting with "MERGEFAILED:" and depending on the number of elements present in the record in the request, the other elements in the record in the response are empty strings. Client developers can look for the string "MERGEFAILED:" in the response for a particular row to determine whether that recipient was merged successfully or not.
- The order of records in the response matches the order of records specified in the request payload. Furthermore, other attributes in the response like mapTemplateName, insertOnNoMatch, updateOnMatch, and matchColumn will mirror the valid values specified in the request payload or default to null/false in case of invalid values.
{ "recordData": { "fieldNames": [ "F1", "F2" ], "records": [[ "onerec", "updatedvalues" ]], "mapTemplateName": null }, "insertOnNoMatch": true, "updateOnMatch": "REPLACE_ALL", "matchColumnNames": ["F1"], "links": [ { "rel": "self", "href": "/rest/api/v1.3/folders/DemoNewsLetter/suppData/CompositePKSuppTable/members", "method": "POST" }] }
Sample Response in case matchColumnNames and fieldNames specified cannot be used to identify records to merge:
{ "recordData": { "fieldNames": [ "PK1", "PK2", "F1", "F2", "PK3" ], "records": [ [ "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.", "", "", "", "" ], [ "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.", "", "", "", "" ], [ "MERGEFAILED: Unable to identify record to Merge from the Match Columns and FieldNames Specified.", "", "", "", "" ] ], "mapTemplateName": null }, "insertOnNoMatch": true, "updateOnMatch": "REPLACE_ALL", "matchColumnNames": ["F1"], "links": [ { "rel": "self", "href": "/rest/api/v1.3/folders/DemoNewsLetter/suppData/CompositePKSuppTable/members", "method": "POST" }] }
Sample Response in case insertOnMatch or updateOnNoMatch are invalid
{ "type": "", "title": "Invalid request parameters", "errorCode": "INVALID_PARAMETER", "detail": "insertOnNoMatch must be true and updateOnMatch must be REPLACE_ALL if matchColumnNames is specified", "errorDetails": [] }
Sample Response in case matchColumnNames is not specified:
{ "type": "", "title": "Invalid request parameters", "errorCode": "INVALID_PARAMETER", "detail": "MatchColumnNames must be specified to merge into a table that does not have any primary keys", "errorDetails": [] }