Freshdesk

Creates Freshdesk contacts server-side through the Freshdesk REST API v2, so support agents see new customers before their first ticket.

Why route Freshdesk through Datafly Signal

  • Profiles are updated from the server, not the browser. Events reach Freshdesk even when a tracker blocker or a failed page unload would have dropped a client-side call, so the profile reflects what actually happened.
  • One consent decision governs every destination. Freshdesk is gated by the same consent state as the rest of your stack, so a withdrawal applies everywhere at once.

Prerequisites

Find your API key

In Freshdesk, open your profile settings; the key inherits your agent role, so use an agent allowed to create contacts.

Note your subdomain

The part before .freshdesk.com in your portal URL.

Configuration

FieldTypeRequiredDescription
domaintextYesYour Freshdesk subdomain: the part before .freshdesk.com in your portal URL (e.g. for yourcompany.freshdesk.com enter ‘yourcompany’).
api_keysecretYesFound under Profile Settings in your Freshdesk agent portal (right-hand side). The key inherits the agent’s role permissions, so use a key belonging to an agent allowed to create and update contacts.

Signal setup

  1. Navigate to Integrations in the sidebar and open the Integration Library tab.
  2. Find Freshdesk, click Install and fill in the fields above.
  3. Pick the preset for your use, then review the mappings in the blueprint editor.

API endpoint

POST https://{domain}.freshdesk.com/api/v2/contacts
Authorization: Basic base64({api_key}:X)

Example request:

{"name": "Jane Doe", "email": "jane.doe@example.com", "phone": "+447700900123", "job_title": "CTO",
 "unique_external_id": "crm-user-7"}

The presets turn on the strict output contract: only the fields the blueprint maps are sent.

Event mapping

Default preset (default)

Create a Freshdesk contact when a visitor signs up or submits a lead: name (else the email, else the phone), email, phone (E.164), job title and the Signal user ID as unique_external_id. Sent in plain text because Freshdesk agents work from the contact record. Freshdesk’s API creates but does not upsert: a repeat email is a 409, recorded as a failed delivery, so identify is mapped but disabled. Events with neither an email nor a phone are not sent.

Signal eventSent to the vendor asEnabled
sign_upcreate_contactyes
generate_leadcreate_contactyes
identifycreate_contactno (mapped, disabled)

Identity and personal data

name (mandatory in Freshdesk) is the name trait, else first and last name, else the email, else the phone. Email (trimmed, lower-cased), phone (E.164), job title and the Signal user ID as unique_external_id complete the contact. These are sent in plain text because agents work from the contact record. Events with neither an email nor a phone are not sent.

Map the integration to the consent category your organisation uses for CRM or sales data. Signal does not write cookie consent into the CRM: no subscription status, do-not-disturb flag, list or tag is set from it, because a cookie banner choice is not a permission to email or call someone.

Known limitations

  • Freshdesk creates contacts but does not upsert them: a repeat email or external ID is a 409, recorded as a failed delivery. The identify event is therefore mapped but disabled.
  • Custom fields must exist in Freshdesk before they can be mapped.

Troubleshooting

SymptomCause and fix
409 ConflictThe contact already exists; expected for a returning visitor.
400 on custom_fieldsThe custom field is not defined in Freshdesk.