This post is a follow up to Custom Task Type tutorial I wrote in December. In that post, we looked in detail at how we leverage Custom Task Types together with custom connectors to integrate with a 3rd party service with no code required. In this post, we will do more of the same, using a different provider as an example – both to demonstrate the same process with a different configuration, and to enable you to try this on your own. While we used our partner Syniverse as an example in the first post, we will use another provider, ClickSend. As I noted after I originally published the first part of this tutorial, it is not possible to get a free developer account with Syniverse anymore, but at the time of this writing, you can do so with ClickSend, and check out their capabilities, especially if you have customers using their services already.
If you haven’t read the first part of this tutorial yet, I encourage you to do so, as I’ll skip some of the detail in this post:
https://communities.sas.com/t5/SAS-Customer-Intelligence/Tutorial-Configuring-SAS-Customer-Intellige...
SMS Service Example
For the purposes of this tutorial, like in our original post, we will configure a connector for ClickSend, which provides a variety of messaging services, including SMS. We will also configure a new SMS custom task type, and see how it is used by marketing user, either standalone or in activity map.
If you want to configure this as a working example in your environment, you will need a ClickSend access credential. If you’d like to get one, as well as further explore ClickSend offering and capabilities, you can get a developer account at: https://dashboard.clicksend.com/signup
Configuring the Connector
We will start by configuring a new connector and connector endpoint that will invoke ClickSend messaging API.
We can name the connector and provide contact details, which are used for any alerts. For public APIs provided by third party platforms, we likely won’t need to use Access point routing, as that mostly applies to communication with internal systems that are now publicly accessible.

Then we configure the endpoint details. These will come from ClickSend. We will need the service endpoint URL and HTTP method, which is POST in this case.
For reference purposes, we can look at ClickSend API documentation:
https://help.clicksend.com/article/x4l2mb16p9-how-to-send-an-sms-online
https://developers.clicksend.com/docs/rest/v3/?shell#send-sms
We will use their SMS endpoint in this example: https://rest.clicksend.com/v3/sms/send

For Authorization, ClickSend uses Basic Auth scheme, and users can get the credentials from their console at: https://dashboard.clicksend.com/account/subaccounts . Subaccounts screen, Developers section of the Dashboard, API Credentials menu item, will look like this:

We use the credentials in Authorization section of CI360 connector endpoint configuration. We will select Basic Auth as authorization type and use API Key from the ClickSend dashboard as password.

Finally, we need to provide the API request format, which again we can get from provider’s documentation, and then map data generated and populated by SAS CI360 to vendors API payload.

Mapping involves pairing up variables we specified in the request body above (such as mobile_num) to elements in standard CI360 outbound system event JSON payload.

This is where it is useful to understand CI360 outbound event structure. For the purposes of our tutorial, we need only two data elements:
- message_text will come from the Plain Text creative used in our SMS task, and thus will be stored in a string variable with JSON path $.impression.creativeContent
- mobile_num will also be string variable and will come from Delivery / Outbound Data tab of our task, and will be stored in string variable with JSON path $.outboundProperties.properties.mobile_num
Any variable defined in Outbound Data section of a custom task will be available under JSON path $.outboundProperties.properties.
Creating the Custom Task Type
Once we have configured the connector endpoint, we can create the Custom Task Type for that endpoint. Select the endpoint and click “New custom task type”. We can also create a custom task type from Custom Task Types section of General Settings.

Configure the look and feel of our new task. This is where you can provide the name, user friendly description and icon and color for the task. In case we are building vendor specific task (e.g., Facebook or WhatsApp) it is a good idea to match vendor primary color, which can be done by using custom color functionality of the color picker and entering color RGB value.
The event name is required, and it is the name of the event that is generated when a task of this type is executed, just like any other task in the system.
We are choosing to show the Content tab in our new task - for SMS task we want this enabled as we need to include text creative with the message.

The next step is to configure data elements that need to be provided when the SMS task is being executed, and these are straight-forward: we need to know who the recipient of the message is. We are using ClickSend test functionality for this tutorial, so originating number does not need to be specified, and a default shared number will be used to send the SMS by ClickSend.
For each element we define, we need to indicate whether it’s required or not, and whether the data contained falls under PII. Anything marked as PII will be made available to the connector framework (as will non-PII data), but PII data will not be stored or tracked in CI360 after the execution is completed.

Some data attributes can be defined as dropdown lists, as we covered in original tutorial.
Using the new SMS task
With our new SMS custom task type configured and activated, we can try it out. As soon as it’s marked active, it will become available on New Task screen.

From there, marketing users can just use it like any other task – selecting content to use, defining delivery attributes, targeting and properties if desired, or specifying a triggering event. For SMS messages, we will use a plain text creative and we can personalize the message using merge tags just like in any other task.

On the delivery tab, we need to only provide a single delivery attribute: a recipient mobile number.

The customer’s mobile number can come in the form of a merge tag, either using a triggering event attribute or a customer profile attribute stored in CI360.

And that's all there is to it, the task is ready to be published and executed - either as part of an activity map or triggered by an event.
Conclusion
You now saw twice how creating a brand-new task for use in CI360 involves just a handful of screens once you have all the necessary information.
Hopefully, this tutorial together with the first part I wrote in December, gives you a good step-by-step example of how we can use Custom Task Types to configure integrations with 3rd party systems that are easy to use for marketing users.