Knowledge Center next icon How to create a Custom Integration
Jan 25, 2024
6 minutes read

How to create a Custom Integration

Issue

Building a custom integration has been transformed into a more seamless experience, eliminating the cumbersome work that used to involve manual setup across various points in the Customer Data Platform. This not only saves time but also addresses the issue of overlooking critical steps in the process.

Product

  • Mobile Marketing Cloud
    • Customer Data Platform

Resolution

To enhance user convenience, we've introduced a wizard that guides you step-by-step through the creation of an custom integration, ensuring a smooth and error-free setup.


Known caveats

  • Do note, the wizard currently does not support alteration of scripts, a default script is generated based on your input. If changes need to be made to the script, please contact your professional services consultant to get this in place.
  • The wizard allows for mapping edits, but not yet event type configuration edits. This can be done by your professional services consultant or you can create a new event type from scratch and delete the incorrect one.
  • If you are using nested objects in your payload, the event type properties will be setup as your nested object. If you want to changes these event type property names, please contact your professional services consultant to get this in place.

Requirements

  • Advanced subscription - 1 custom integration
  • Pro subscription - unlimited custom integration
  • 1 custom integration can have up to 10 events.


Add a new custom integration

From the sources menu in the CDP click on the plus sign in the top right corner and click on the Custom Adapter tile.

image.png

You will be asked to name your integration, give it a logical name so it can be easily retrieved later on in the sources overview.

image.png

You will be directed to a wizard to create your new event type(s) belonging to this new integration and its properties. This wizard will create all the needed event types, scripts and mapping based on your input once you hit finish.

Setup event types

When you are defining your events, make sure you have your details at hand on what the properties from your JSON object are.

Dive into more deeply nested properties by using dot-separated syntax. For example, given:

{"contact": {"name": "John"}}

add property:

"contact.name" to return "John"

When you have added all your properties, make sure you link the right type. So for example and email property has type email, a date has type date and a first name is a string field.

Now mark at least one property (preferable a key property) as required. If you don't do this and certain objects are missing we won't be able to process the event. It is recommend to use your key property (the unique identifier to create/update/merge a profile) as the required object. Most of the time this is an email, phone number or another unique ID that identifies a user.

*Keep in mind that we currently do not support editing of event types that are part of your custom source, this can be done by your professional services consultant or you can create a new event type with the correct configuration and delete the old one.

image.png

Mapping

Now that you have setup your incoming event, the data needs to be mapped to profile data. Map your incoming properties to a profile property in your CDP. If the property does not exist yet in the CDP, you can create it in the profile definition of your account (settings).

Please make sure when you are mapping your properties to a CDP profile property that the property types match, so for example, do not map a string field to a Boolean field. This will result in errors during processing of the events.

When you are mapping event properties to the profile properties, it is possible to give a priority to the mapping. You can use this to prevent that noisy data that comes in later, is not overwriting the already existing clean data. Or if there is some historical data which is uploaded back in time and you are sure that this data is true and useful.

The mapping with priority is only of use if there are multiple events mapping to the same profile Property. If there are 2 or more events mapping to one profile property it normally maps the last know event, only if you map with priority it first looks to which mapping has the most priority and after that it looks to the date.

The count operation can be used if you want to count the total events of this specific event type to a (number) profile property. Fill in a new unique (number) profile property to write the count of this event type to.

image.png


URL to post to

The wizard ends with a success page stating the POST endpoint to use and an example JSON based on your input fields. You can use this endpoint in combination with an API product token (settings - tokens) to start sending events to the CDP.

Once starting to send events to your CDP, check IPL to see if you events are entering correctly or solve any errors mentioned there based on our CDP codes.

If needed, more details on how to send events to our CDP can be found in our developer docs.

From the finish page you can either add more event types to your custom integration (max. 10) or go back to your integration overview.

image.png

From the integration details page you can find your API reference, but also navigate to the logging page where you can check your incoming events for this specific event.

If in a later stage you want to add more event types to your integration, you can do this from here by clicking on the 'New event type' button and follow the same wizard.

image.png

Events log

Using the above example, when posting to the endpoint provided with the JSON body as setup, you see the log line in your event logging and that is was processed successful. When opening the logline you can also navigate to the profile that was created based on this event.

image.png

group icon
Get support

Can’t find the answer you are looking for?
Ask for the help of our chatbot, or get in touch with our support team.

Contact Support
Is this region a better fit for you?
Go
close icon