Data Source Mapping API

Use these APIs to manage mappings between data sources and user properties for a tenant. All requests must include the authKey header for authentication.

Create Data Source Mapping

Request

  • Method:POST
  • URL: https://<base_url>/api/mapping
  • Headers: authKey (Required)
  • Description: Creates a new mapping between a data source and a user property. You can also define metadata, such as the input column from the data source.

Payload

{
  "campaignId": <campaignID>, //replace it with campaign ID
  "dmpDataPointCode": "DMP123",
  "dataSourceName": "analyze_post",
  "metadata": "{\"input_col\": \"properties__testprop\"}"
}

Success Response

{
  "message": "Mapping created successfully for User property 'DMP123' and Data source 'analyze_post' under Tenant 0000."
}

Error Responses

{
  "error": "Bad Request",
  "message": "Mapping already exists for User property 'DMP123' and Data source 'analyze_post' under Tenant 0000."
}
{
  "dataSourceName": "dataSourceName must be either 'analyze_post' or 'dataingestionapi'."
}

Update Data Source Mapping

Request

  • Method:PUT
  • URL: https://<base_url>/api/mapping
  • Headers: authKey (Required)
  • Description: Updates an existing mapping between a data source and a user property. Useful for modifying metadata, such as input column mappings.

Payload

{
  "campaignId": <campaignID>, //replace it with campaign ID
  "dmpDataPointCode": "DMP123",
  "dataSourceName": "analyze_post",
  "metadata": "{\"input_col\": \"properties__testprop\"}"
}

Success Response

{
  "message": "Mapping updated successfully for User property 'DMP123' and Data source 'analyze_post' under Tenant 0000."
}

Error Response

{
  "error": "Not Found",
  "message": "User property 'DMP123' not found for Tenant 0000."
}

Get Mapping for a Specific User Property

Request

  • Method:GET
  • URL: https://<base_url>/api/mapping/campaignId/{campaignId}/dataSource/{dataSourceName}/dataPoint/{dmpDataPointCode}
  • Headers: authKey (Required)
  • Description: Retrieves mapping information for a specific user property within a tenant and data source.

Success Response

{
  "id": 00000,
  "dmpCampaignDataSourceId": 0000,
  "dmpCampaignDataDictionaryId": 00000,
  "profileUpdateFunction": "UPDATE",
  "metadata": "{\"input_col\": \"properties__DMP123\"}",
  "isMandatory": 0
}

Error Response

{
  "error": "Not Found",
  "message": "User property 'DMP123' not found for Tenant ####."
}

Get All Mappings for a Tenant and Data Source

Request

  • Method:GET
  • URL: https://<base_url>/api/mapping/campaignId/{campaignId}/dataSource/{dataSourceName}
  • Headers: authKey (Required)
  • Description: Returns all mappings between the specified data source and user properties for a tenant.

Success Response

[
  {
    "id": 00000,
    "dmpCampaignDataSourceId": 0000,
    "dmpCampaignDataDictionaryId": 00000,
    "profileUpdateFunction": "UPDATE",
    "metadata": "{\"input_col\": \"properties__testmerge123\"}",
    "isMandatory": 0
  },
  {
    "id": 00000,
    "dmpCampaignDataSourceId": 0000,
    "dmpCampaignDataDictionaryId": 00000,
    "profileUpdateFunction": "UPDATE",
    "metadata": "{\"input_col\": \"properties__DMP456\"}",
    "isMandatory": 1
  }
]

Error Response

{
  "error": "Not Found",
  "message": "Data source 'analyze_post' not found for Tenant ####."
}

Get All Data Source Mappings

Request

  • Method:GET
  • URL: https://<base_url>/api/mapping/campaign/{vizVrmId}/dataSource/{dataSourceName}
  • Headers: authKey (Required)
  • Description: Retrieves all mappings (tenant, vertical, and global) between user properties and the specified data source.

Success Response

[
  {
    "ProfileUpdateFunction": "UPDATE",
    "IsMandatory": false,
    "CampaignId": "VIZVRM6",
    "Preference": "none",
    "DMPDataPointCode": "firstname",
    "Priority": 1,
    "IsProfileField": true,
    "Metadata": "{\"input_col\":\"properties__FIRST_NAME\"}",
    "DataType": "STRING",
    "Name": "dataingestionapi"
  },
  {
    "ProfileUpdateFunction": "UPDATE",
    "IsMandatory": false,
    "CampaignId": "VIZVRM6",
    "Preference": "none",
    "DMPDataPointCode": "lastname",
    "Priority": 1,
    "IsProfileField": true,
    "Metadata": "{\"input_col\":\"properties__LAST_NAME\"}",
    "DataType": "STRING",
    "Name": "dataingestionapi"
  }
]

Error Response

{
  "error": "Not Found",
  "message": "No mappings found for tenant 'VIZVRM6' and Data source 'analyze_post'."
}

Delete Data Source Mapping

Request

  • Method:DELETE
  • URL: https://<base_url>/api/mapping/campaignId/{campaignId}/dataSource/{dataSourceName}/dataPoint/{dmpDataPointCode}
  • Headers: authKey (Required)
  • Description: Deletes the mapping between a user property and data source for the specified tenant.

Success Response

{
  "message": "Mapping for User property 'DMP123' and Data source 'analyze_post' under Tenant #### has been removed successfully."
}

Error Response

{
  "error": "Not Found",
  "message": "User property 'DMP123' not found for Tenant ####."
}