ClickSend

ClickSend is an SMS, email and multichannel messaging platform. Datafly Signal adds your identified visitors to a ClickSend contact list server-side (REST v3 POST /lists/{list_id}/contacts), ready for SMS and email campaigns.

Why route ClickSend through Datafly Signal

  • Events come from your server, not the browser. They reach ClickSend even when a tracker blocker or a failed page unload would have dropped a client-side call.
  • Delivery is queued and retried. Signal buffers to Kafka and retries on 429 or a transient failure rather than dropping the event; a permanent rejection goes to the dead-letter queue with the vendor’s reason.
  • One consent decision governs every destination. ClickSend is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Get your ClickSend credentials

Get your API credentials

In the ClickSend dashboard open Developers > API Credentials. Copy your username and API key.

Create or choose a contact list

Open Contacts > Lists and note the numeric list ID (it is in the list URL).

Configuration

FieldRequiredDescription
api_usernameYesYour ClickSend account username (the email/username you log in with). Used as the HTTP Basic auth username.
api_keyYesYour ClickSend API key. Find it in the ClickSend Dashboard under Developers > API Credentials. Used as the HTTP Basic auth password.
list_idYesThe numeric ID of the ClickSend contact list to enroll contacts into. Find it in Dashboard > Contacts > Lists (in the list URL or via GET /lists).

Management UI setup

  1. Go to Integrations in the sidebar and open the Integration Library tab.
  2. Find ClickSend under Marketing Automation and click Install.
  3. Choose a preset, enter the fields above and click Install Integration.

Management API setup

curl -X POST http://localhost:8084/v1/admin/integration-catalog/clicksend/install \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "ClickSend",
  "variant": "default",
  "config": {
    "api_username": "your_api_username",
    "api_key": "your_api_key",
    "list_id": "your_list_id"
  },
  "delivery_mode": "server_side"
}'

What Signal sends

An example request, rendered from the default preset for sign_up:

POST https://rest.clicksend.com/v3/lists/123456/contacts
 
{
  "address_city": "Bath",
  "address_country": "GB",
  "address_postal_code": "BA1 1AA",
  "address_state": "Somerset",
  "custom_1": "sign_up",
  "custom_2": "google",
  "email": "neill@example.com",
  "first_name": "Neill",
  "last_name": "Mcfixture",
  "organization_name": "Acme Ltd",
  "phone_number": "+447700900123"
}
FieldSource
emailThe email from identify() traits, trimmed and lower-cased.
phone_numberThe phone from traits in E.164 (+447700900123); a national number is completed from the visitor’s country or locale.
first_name, last_name, organization_nameFrom traits (company for the organisation).
address_city, address_state, address_postal_code, address_countryFrom the address trait; the country is upper-cased.
custom_1The Signal event that created the contact (sign_up, generate_lead …).
custom_2The sign-up method, subscription source, lead type, insurance type or dealer, per event.

ClickSend messages the contact directly and has no hashed-identifier option, so email and phone are sent in plain text to your own ClickSend account. An event with neither an email nor a phone is dropped: ClickSend rejects a contact without an email, phone or fax.

Presets

PresetSignal event → vendor event
Defaultsign_up → contact_create, newsletter_subscribed → contact_create, generate_lead → contact_create
Retailsign_up → contact_create, newsletter_subscribed → contact_create
Insurancegenerate_lead → contact_create, quote_requested → contact_create, lead_submitted → contact_create, sign_up → contact_create
Automotivegenerate_lead → contact_create, test_drive_booked → contact_create, dealer_contacted → contact_create, sign_up → contact_create

Events not listed are not sent. Each preset is a starting point: add, rename or remove mappings on the installed integration.

Notes and limits

  • ClickSend’s create-contact call adds a new contact every time; it is not an upsert. The presets therefore map one-off events (sign-up, newsletter sign-up, lead forms) and not identify or purchases, which repeat. Use ClickSend’s Remove duplicates on the list if a visitor signs up twice.
  • Cookie-banner consent is not SMS or email consent. Gate the integration on the consent category you use for marketing messages, and record messaging opt-in in ClickSend.

Marketing-automation integrations have no consent category by default. Assign the marketing category when you install ClickSend, so an event is delivered only when the visitor has granted it. Cookie-banner consent is not email or SMS opt-in: keep messaging opt-in in ClickSend.

Verify it’s working

  1. Open the integration in the Signal Management UI and watch Live Events while you trigger a mapped event.
  2. Confirm a 2xx response from ClickSend.
  3. Find the contact in ClickSend and check the event or record arrived.

Troubleshooting

SymptomResolution
401 UnauthorizedCheck the username and API key (Developers > API Credentials).
404 Not FoundThe list ID does not exist in this account.
Nothing sent for an eventThe visitor had no email or phone in identify() traits.