Totango
Totango is a customer success platform. Datafly Signal sends product-usage activities and account attributes server-side through Totango’s SDR HTTP API, so health scores, SuccessPlays and usage segments reflect real usage without a browser tag.
Why route Totango through Datafly Signal
- Records come from your server, not the browser. They reach Totango even when a tracker blocker or a failed page unload would have dropped a client-side call, and no form integration or browser tag is needed.
- 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. Totango is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.
Get your Totango credentials
Find your Service ID
In Totango open Settings and copy your Service ID (for example SP-1234-01).
Generate an SDR token
In Settings > SDR Tokens generate a token.
Confirm your data centre
US services use https://sdr.totango.com/pixel.gif, EU services https://sdr-eu1.totango.com/pixel.gif.
Configuration
| Field | Required | Description |
|---|---|---|
service_id | Yes | Your Totango Service ID. Found in Totango under Settings > SDR Settings (or Personal Access Token and Service ID). Looks like SP-1234-01. |
api_token | Yes | SDR security token (Settings > SDR Tokens), sent as the api-token parameter. Required: a blank token was sent as a literal placeholder. |
data_center | Yes | The SDR endpoint for your Totango service’s data centre: https://sdr.totango.com/pixel.gif (US) or https://sdr-eu1.totango.com/pixel.gif (EU). Required: the request is sent to this URL. |
default_module | No | Module (product area) for an activity whose event sets none. The presets set a module for every event they map; this applies to events you add. Defaults to Web. |
Management UI setup
- Go to Integrations in the sidebar and open the Integration Library tab.
- Find Totango under CRM and click Install.
- Choose a preset, enter the fields above and click Install Integration.
Management API setup
curl -X POST http://localhost:8084/v1/admin/integration-catalog/totango/install \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Totango",
"variant": "saas",
"config": {
"service_id": "your_service_id",
"api_token": "your_api_token",
"data_center": "your_data_center"
},
"delivery_mode": "server_side"
}'What Signal sends
An example request, rendered from the saas preset for subscription_started:
GET https://sdr-eu1.totango.com/pixel.gif?api-token=sdr-token&sdr_a=Subscription+Started&sdr_m=Billing&sdr_o=acct-42&sdr_o.Contract+Value=279.98&sdr_o.Plan=Pro&sdr_o.Status=Paying&sdr_odn=Acme+Ltd&sdr_s=SP-1234-01&sdr_u=0f8fad5b-d9cb-469f-a165-70867728950e| Field | Source |
|---|---|
sdr_s | Your Service ID. |
sdr_o | The account: the group() ID, else the event’s account_id, else the user ID (for accounts of one). |
sdr_u | Your product user ID. Required: an event without one is not sent. |
sdr_odn | The account display name (account_name, else the company trait). |
sdr_a | The activity: the event’s Totango name (Logged In, Subscription Started …); for feature_used, the feature’s name. |
sdr_m | The module (product area): set per event; else the Default Module setting, else Web. |
sdr_o.Status, sdr_o.Plan, sdr_o.Contract Value | Account attributes on trial and subscription events. Contract Value is Totango’s named attribute for MRR or ARR, a plain number. |
api-token | Your SDR token. |
Totango’s HTTP API carries every field in the URL query string, and URLs are logged by every proxy and server on the way, so Signal sends no email, name or phone to Totango. Users are keyed by your product user ID, which the API accepts as the user identifier.
Presets
| Preset | Signal events |
|---|---|
B2B / SaaS (saas) | page, sign_up, login, feature_used, onboarding_completed, plan_viewed, trial_started, trial_converted, subscription_started, subscription_upgraded, subscription_downgraded, subscription_cancelled, integration_connected, invitation_sent, report_viewed, export_completed, support_ticket_created |
Default (default) | page, sign_up, login, feature_used |
Events not listed are not sent. Each preset is a starting point: add, rename or remove mappings on the installed integration.
Notes and limits
- If your Totango users are keyed by email today, activities from Signal create users keyed by the product user ID. Align on one identifier before switching.
- Totango returns HTTP 200 with a 1x1 GIF whether or not the request was well formed; check the account timeline.
Consent
Assign the consent category you use for this processing when you install Totango, so an event is delivered only when the visitor has granted it. Signal never writes a cookie-banner choice into Totango’s contact permissions (no consent field is sent): consent to cookies is not consent to be emailed, called or messaged. Record communication opt-in and opt-out in Totango.
Verify it’s working
- Open the integration in the Signal Management UI and watch Live Events while you trigger a mapped event.
- Confirm a 2xx response from Totango.
- Find the record in Totango and check it arrived.
Troubleshooting
| Symptom | Resolution |
|---|---|
| No activity on the timeline | Check the Service ID and that the endpoint matches your service’s data centre. |
| Usage fragmented across accounts | Send a stable account ID with group() or account_id. |
401 / 403 | The SDR token is wrong. |