Acquia CDP

Using Custom Attributes API integration

This page provides information about the Custom Attributes API integration process for the following scenario:

Data engineers want to streamline data management processes through API integrations for daily flat file transfers. Their objective is to manage data with more flexibility and less manual tasks.

Important considerations

The following are the important considerations to manage and configure API integration:

  • Self-Service Integration: Manage and monitor your mapping configurations for custom calculations.
  • Extract, Transform, and Load (ETL) Tool Requirement: Use an ETL tool to transform your source system schema to match the CDP schema on a one-to-one basis. This is crucial as the API requires a consistent object format for upstream requests.
  • Scheduling and Ingestion: When enhancing an existing integration with this feature, the scheduling automatically aligns with your 24-hour pipeline refresh cycle. This applies unless you request a change to the scheduling.

When developing a fully automated solution and streamlining the process, see the API policy page to ensure the successful construction of your automated framework.

Important

You cannot modify custom attribute names as they are fixed and serve as placeholders in the data model. Ensure that you make a note of the placeholder attributes that are mapped to your source system fields.

Checklist for testing and pushing a payload of email events

Use the following checklist to test and push a payload of email events from an ESP to CDP:

Initiating a payload test

  1. Set up Payload Push in Postman with the following steps:
    1. Set up Postman.
    2. Click Add folder to create a new folder for Payload.

    3. In Name, enter All Types of Scenarios.
    4. Create a request to POST.
    5. In Name, enter Scenario - Pushing ERP New Loyalty Columns.
    6. Click Params.
    7. Select Key as scheme and Value as a1user.

      Post URL: https://api7-green.agilone.com/v2/*TENANTID*/dw/tracker?scheme=a1user.

      The following are the URL parameters:

      Cloud RegionURL EndpointParameter Description
      AWSapi7-green.agilone.com/v2
      • api7-green indicates the AWS service endpoint to upload data to the DW tracker.

      • /v2 indicates the version of the API.

      • *TenantID indicates the path numerical identifier correlating to the tenant ID for accessing the account.

      • /dw/tracker indicates the path to the data warehouse (dw) that points towards a service named tracker.

      • scheme=a1user indicates the authentication or authorization scheme to be used. The indication to the server that the request is made under the A1User scheme may affect how the token is generated or the permissions associated with it.

    8. Click the Authorization tab and select the Type as Bearer Token.
    9. Add the token you want to extend.
    10. Click the Headers tab.

    11. Add Key as Content-Type and Value as application/json.

  2. Set up Body Payload in Postman with the following steps:
    1. Click Body.

      The following is the sample code: 

      {
          "Events":[
              {
                "SourceSystemID":"ERP",
                "TenantId":"465",
                "Type":"StoreVisit",
                "SourceCustomerNumber":"L01",
                "Email":"[email protected]",
                "EventTimeStamp":{{epochVariable}},
                "c_eventstringattribute01":"Enrolled"
              }  
          ],
          "Customers":[
              {
                "SourceSystemID":"ERP",
                "SourceCustomerNumber":"L01",
                "FirstName":"Jane",
                "LastName":"Smith",
                "Email":"[email protected]",
                "c_customerstringattribute02":"Gold",
                "c_customerdateattribute02":"2023-11-20",
                "c_customerintergerattribute01":"10010",
                "c_customerintergerattribute02":"9990",
                "c_customerstringattribute03":"In-Store Promo"
                }
          ]         
      }
    2. Click Pre-request Script and add the provided Postman script.

      The system populates the current epoch date as {{epochVariable}}. For example:

      function epoch (date) {
        pm.collectionVariables.set("epochVariable", Date.parse(date))
            console.log(pm.collectionVariables.get("epochVariable"))
      }
      const dateToday = new Date() 
      const timestamp = epoch(dateToday)

      The EventTimeStamp object contains the date and time when the payload is pushed to CDP.

    3. Click Save and click Send.

      For successful requests, Postman displays Status: 200 OK.