ClickSend

ClickSend is an SMS, MMS, and multichannel communications platform. Datafly Signal delivers your identified visitors server-side into a ClickSend contact list as Contacts, so they can receive SMS and email campaigns. Because the contact list lives in your own ClickSend account, name, email, and phone are delivered in plaintext (your CRM, your data); phone numbers are normalised to E.164.

This connector targets contact enrollment, not transactional message sending. It upserts a Contact on identity-bearing events (sign-up, identify) and drops browsing-only events.

Prerequisites

  • A ClickSend account with API access.
  • An existing contact list in ClickSend (Dashboard > Contacts > Lists). Note its numeric List ID.
  • Your account username and API key (Dashboard > Developers > API Credentials).

Configuration

FieldRequiredDescription
Account UsernameYesYour ClickSend account username. Used as the HTTP Basic auth username.
API KeyYesYour ClickSend API key. Used as the HTTP Basic auth password.
Contact List IDYesThe numeric ID of the ClickSend contact list to enroll contacts into.

Configure in Signal

  1. In Signal, open Integrations and add ClickSend.
  2. Enter your Account Username, API Key, and Contact List ID.
  3. Attach the integration to a pipeline and select the Default preset.
  4. Save and deploy the pipeline.

The Default preset enrolls contacts on Signed Up and Identify. All other events are dropped.

API Endpoint

Signal sends one HTTP request per enrolled contact:

POST https://rest.clicksend.com/v3/lists/{list_id}/contacts
Authorization: Basic base64(username:api_key)
Content-Type: application/json

Authentication is HTTP Basic: your account username and API key. {list_id} is your configured Contact List ID. A contact must have at least one of email or phone_number; events without either are not delivered.

Identity Signals

ClickSend keys contacts within a list on email / phone_number, so repeated deliveries for the same visitor target the same contact. Signal maps:

  • email — trimmed and lowercased.
  • phone_number — normalised to E.164 (ClickSend requires E.164).

PII is sent in plaintext because the contact list is in your own ClickSend account. ClickSend has no hashed-input surface for contact creation.

Event Mapping

Signal eventClickSend action
Signed UpCreate / upsert contact in list
IdentifyCreate / upsert contact in list

Contact fields are mapped from visitor traits: first_name, last_name, email, phone_number, organization_name, and address fields (address_city, address_state, address_postal_code, address_country). Marketing consent is written to custom_1 as marketing_opt_in / marketing_opt_out / marketing_unknown.

Datafly.js example

datafly.track('Signed Up', {
  method: 'email'
}, {
  traits: {
    email: 'Jane.Doe@example.com',
    phone: '+1 (415) 555-0132',
    first_name: 'Jane',
    last_name: 'Doe',
    company: 'Acme Inc'
  }
});

Resulting ClickSend payload

{
  "email": "jane.doe@example.com",
  "phone_number": "+14155550132",
  "first_name": "Jane",
  "last_name": "Doe",
  "organization_name": "Acme Inc",
  "custom_1": "marketing_opt_in"
}

Testing

  1. Fire a Signed Up event (with email or phone) from a page running your Signal tag.
  2. In Signal, open the Event Debugger and confirm the event delivered to ClickSend with a 2xx response.
  3. In the ClickSend Dashboard, open Contacts > Lists, select your list, and confirm the contact appears with the expected email / phone / name.

Troubleshooting

SymptomCauseFix
401 / 403Wrong username or API keyRecheck credentials in Dashboard > Developers > API Credentials. The password is the API key, not your login password.
404Unknown List IDConfirm the Contact List ID exists in Dashboard > Contacts > Lists.
400 — contact rejectedNo email or phone, or invalid phoneEnsure each enrolled visitor has an email or phone trait; phone must resolve to E.164.
Contact not appearingEvent droppedOnly Signed Up and Identify are delivered. Browsing events are dropped by design.