CRM integrations

Keep customer conversations moving into your CRM.

Connect SignalBX to Salesforce, HubSpot, or Zoho CRM with OAuth. Sync support contacts, attach conversation activity to linked CRM records, and turn configured buying signals into an accountable deal-stage update.

OAuth connections

Authorize Salesforce, HubSpot, or Zoho CRM without API-key setup.

Contact upsert

Create or update CRM contacts using email or phone identity.

Assigned-only sync

Limit a manual contact sync to customers with an assigned owner.

Field mapping

Map SignalBX contact fields to the CRM properties your team uses.

Conversation activity

Write linked inbound and outbound message text to CRM activity.

Buying-signal action

Move a linked deal to a configured stage when signals are present.

Token lifecycle

Refresh expiring access and revoke provider tokens on disconnect.

Sync visibility

Return created, updated, and skipped totals; retain last-run and error state.

One sync workspace

Control what reaches the CRM—and see what happened.

Each tenant keeps separate provider connections and settings. Teams can choose contact, conversation, and buying-signal behavior, then run a permissioned, rate-limited contact sync with clear results.

CRM integration workspace Illustrative data · tenant-scoped controls
Connected CRMSalesforce · production instance
Connection verifiedSync contacts
Created128new CRM contacts
Updated46existing CRM contacts
Skipped3missing email and phone
Last sync2mcompleted successfully
Recent recordsLatest run
LM

Leo Martin+33 •••• 8821Matched by phone

Updated
RS

Retail shopperNo email or phoneCRM contact not changed

Skipped

Conversation continuity

Give CRM owners the customer’s actual words.

When conversation sync is enabled and the SignalBX contact is linked to that provider, usable inbound or outbound message text becomes provider-native CRM activity.

  • Create a completed Salesforce Task or a contact-associated HubSpot or Zoho note
  • Use text, caption, or transcription from the canonical message
  • Keep messaging ingestion available even when a CRM side effect fails
Conversation to CRM activityIllustrative linked contact

Aarav MehtaWhatsApp · inbound

Linked contact

Can someone help me choose the right plan for our larger team?

Absolutely. I’ll share the options and arrange a follow-up with the account team.

Canonical messagesInbound + outbound text
Salesforce activitySignalBX WhatsApp message
Related to
Aarav Mehta
Type
Completed Task
Activity date
Message date
Body
Customer text
Delivery
Recorded
CRM ownerContext available

Deliberate contact identity

Upsert first. Keep the provider link after.

SignalBX searches the connected CRM by email when available, otherwise by phone. It creates or updates the contact, stores the provider contact ID, and uses that exact link for later conversation activity.

01

Candidate selectionAll eligible or assigned-only SignalBX contacts

Scoped
02

Identity requirementEmail first, otherwise phone

Search
03

Provider operationCreate a new contact or update the match

Upserted
04

Durable relationshipStore provider and provider contact ID

Linked

Configuration with intent

Make every CRM side effect explicit.

Contact sync, conversation notes, buying-signal updates, assignment filtering, and field mappings are independent tenant settings—not hidden assumptions.

syncContactsEnabled syncOnlyAssignedContacts syncConversationsEnabled syncBuyingSignalsEnabled fieldMappings
PATCH/api/v1/tenants/:tenantId/crm/salesforce
{
  "syncContactsEnabled": true,
  "syncOnlyAssignedContacts": true,
  "syncConversationsEnabled": true,
  "syncBuyingSignalsEnabled": true,
  "fieldMappings": {
    "contact": {
      "firstName": "FirstName",
      "lastName": "LastName",
      "email": "Email",
      "phone": "Phone",
      "externalId": "SignalBX_Contact_Id__c"
    },
    "buyingSignalDealStage": "Qualified"
  }
}

Illustrative Salesforce settings using supported configuration fields.

  • Tenant scoped
  • Permissioned
  • Provider specific

Three CRM providers

Use the CRM your customer-facing teams already trust.

Each integration follows the same SignalBX contract while writing the provider-native objects needed for contacts, conversation activity, and configured deal-stage changes.

SF

Salesforce

Search and upsert Contact records, create completed Task activity against the contact, and update Opportunity StageName for a linked deal.

OAuth · Contacts · Tasks · Opportunities
HS

HubSpot

Search and upsert contacts, create notes associated with the CRM contact, and update the dealstage property for a linked deal.

OAuth · Contacts · Notes · Deals
ZO

Zoho CRM

Search and upsert Contacts, create Notes related to the contact, and update the Stage of a linked Deal.

OAuth · Contacts · Notes · Deals

Support work becomes CRM context

The handoffs behind real customer operations.

New customer

A conversation creates a valuable contact.

Run contact sync to create a provider record with mapped name, email, phone, and SignalBX external ID fields.

CRM contact created
Known customer

The CRM contact already exists.

SignalBX searches by email or phone, updates the matching record, and retains its provider contact ID.

CRM contact updated
Account ownership

Only assigned contacts should sync.

Enable assigned-only filtering so the manual contact run selects customers with a SignalBX representative.

Candidate scope controlled
Conversation history

The account owner needs support context.

Linked inbound and outbound message text can become a Task or Note associated with the CRM contact.

Customer words preserved
Buying intent

A linked conversation shows a buying signal.

When AI intelligence signals, a CRM deal ID, and a target stage are all present, SignalBX can update that provider deal.

Configured stage applied
Expired access

The provider access token is near expiry.

SignalBX refreshes it with the stored refresh token before creating a provider client for the operation.

Connection renewed

CRM changes with guardrails

Connected, permissioned, and failure-aware.

CRM writes cross a system boundary. SignalBX makes authorization, credentials, sync scope, provider errors, and messaging availability explicit at that boundary.

Signed OAuth state
Short-lived signed state binds the OAuth callback to the tenant, provider, and initiating member.
Encrypted credentials
Access and refresh tokens pass through the credential codec before CRM integration persistence.
Serialized refresh
Expiring tokens are refreshed under a database lock so concurrent operations do not race token rotation.
Scoped permissions
Reading integrations, changing connections, and triggering sync use separate CRM permissions.
Rate-limited sync
Manual contact sync respects tenant CRM limits before making provider requests.
Visible outcomes
Last sync time, created and updated totals, connection status, and the latest error remain available.
Best-effort side effects
Conversation notes and buying-signal writes do not make canonical messaging or AI intelligence persistence depend on CRM availability.
Responsible disconnect
SignalBX attempts provider token revocation before removing the tenant’s integration record.

CRM integration questions

What teams need to know before connecting a CRM.

Which CRM integrations does SignalBX support?

SignalBX has OAuth integrations for Salesforce, HubSpot, and Zoho CRM. Each provider client supports contact upsert, contact-linked activity, a connection test, and a configured deal-stage update.

Is contact synchronization two-way?

No. The implemented contact sync selects eligible SignalBX contacts and creates or updates records in the connected CRM. It does not import CRM contacts back into SignalBX.

How does SignalBX decide whether to create or update a CRM contact?

SignalBX requires an email or phone. It searches by email when one is available, otherwise by phone. A match is updated; when no match exists, a new CRM contact is created.

Can contact fields map to our custom CRM properties?

Yes. Field mappings can override provider field names for the supported contact data, including first name, last name, email, phone, and the SignalBX external contact ID.

What conversation content is written into the CRM?

When enabled, SignalBX uses non-empty text, caption, or transcription from linked inbound and outbound canonical messages. Salesforce receives a completed Task; HubSpot and Zoho CRM receive contact-associated notes.

When can a buying signal change a deal stage?

The integration must enable buying-signal sync, the AI intelligence result must contain a supported signal list, the message must carry a CRM deal ID, and the field mappings must define the target buying-signal deal stage.

What happens if the CRM is temporarily unavailable?

Provider errors are recorded on the integration. Conversation-note delivery can use the durable worker path with retries and failure records, while canonical message storage remains independent of the CRM side effect.

Can every team member connect or synchronize a CRM?

No. CRM integration reads, management, and manual synchronization require the corresponding tenant-scoped CRM permissions.

The conversation should travel

Connect support activity to the customer record.

Sync the right contacts, keep linked conversation context visible, and give CRM owners a governed path from customer intent to their next action.