ClickSend Cloud Mode Integration

Send events to ClickSend using RudderStack cloud mode.

After you have successfully instrumented ClickSend as a destination in RudderStack, follow this guide to correctly send your events to ClickSend in cloud mode.

Find the open source transformer code for this destination in the GitHub repository.

Identify

You can use the identify call to create a new contact or update an existing one in ClickSend.

A sample identify call is shown:

rudderstack.identify("userId123", {
  "email": "alex@example.com",
  "firstName": "Alex",
  "lastName": "Keener",
  "phone": "1234567890",
  "address": {
    "city": "New York",
    "country": "USA",
    "pinCode": "123456"
  },
  "integrations": {
    "All": true
  },
  "externalId": [{
    "type": "CLICKSEND_CONTACT_LIST_ID",
    "id": "<dummy-id>"
  }]
}
});

Supported mappings

RudderStack maps the following identify fields to the corresponding ClickSend properties:

RudderStack event/propertyClickSend event/propertyNote
message.traits.phone
context.traits.phone
Required, if fax_number and email are absent.
phone_numberPhone number in E.164 format.
traits.email
context.traits.email
Required, if fax_number and phone_number are absent.
email-
traits.fax_number
context.traits.fax_number
Required, if email and phone_number are absent.
fax_number-
CLICKSEND_CONTACT_LIST_ID from externalId RequiredSent as a part of the API URL.Rudderstack uses this list_id to create contacts in it.
traits.firstName
context.traits.firstName
first_name-
traits.address
traits.address_line_1
context.traits.address
context.traits.address_line_1
address_line_1-
traits.address_line_2
context.traits.address_line_2
address_line_2-
traits.address.city
context.traits.address.city
address_city-
traits.address.state
context.traits.address.state
address_state-
traits.address.address_postal_code
context.traits.address.address_postal_code
address_postal_code-
traits.country
context.traits.country
address_country-
traits.organization_name
context.traits.organization_name
organization_name-
traits.lastName
context.traits.lastName
last_name-
CLICKSEND_CONTACT_ID from externalIdcontact_idUse this property to send the contact_id if you want to update an existing contact.
If absent, Rudderstack creates a new contact which can lead to the duplication.

Track

You can use the track call to send text messages to ClickSend.

A sample track call to trigger an SMS campaign for the entire list:

rudderanalytics.track(
  "event1", {
    "name": "new campaign",
    "body": "message",
    "from": "alex@example.com",
    "from_email": "keener@sample.com"
  }, {
    externalId: [{
      type: 'CLICKSEND_CONTACT_LIST_ID',
      id: '12345',
    }, ],
  }
  () => {
    console.log("track call");
  }
);

A sample track call to send SMS to a single contact:

rudderanalytics.track("event1", {
    "name": "new campaign",
    "body": "message",
    "from": "alex@example.com",
    "from_email": "keener@sample.com",
    "custom_string": "test string"
  },
  () => {
    console.log("track call");
  }
);

Supported mappings

RudderStack maps the following track fields to the corresponding ClickSend properties:

RudderStack propertyClickSend propertyNote
externalId.clicksend.From
config.defaultSenderEmail
Required
fromSender ID.
context.traits.phone
Required
toRecipient’s phone number in E.164 format.
properties.body
Required
bodyYour message.
properties.channel
config.channel
channelMethod of sending the text message. For example, wordpress, php, c#, etc.
properties.schedule
config.schedule
scheduleSchedule time in UNIX format. Set it as 0 for immediate delivery.
properties.custom_stringcustom_stringYour reference which is passed back with all the replies and delivery reports.
externalId.clicksend.list_idlist_idList ID if sending to a whole list. You can use this instead of context.traits.phone.

If using this, ensure that a particular list does not exceed 20000 contacts.
context.traits.countrycountryISO alpha-2 character country code. For example, US - It is used to format the recipient number if it’s not in international format.
properties.from_emailfrom_emailEmail address to send the reply. If omitted, the reply is emailed back to the user who sent the outgoing SMS.

Questions? Contact us by email or on Slack