FluxyChat

Enterprise

CRM and helpdesk integrations

Connect Salesforce, Zendesk, HubSpot, or Intercom for contact sync, tickets, and agent handoff.

Native adapters for Salesforce, Zendesk, HubSpot, and Intercom — store connection configs per tenant, sync contacts/tickets, create tickets from chat, and hand off to in-room agents.

Configure from Settings → CRM or the admin REST API.

Save a connection

curl -X POST "$WORKER_URL/admin/crm/connections" \
  -H "Authorization: Bearer $ADMIN_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "zendesk",
    "apiKey": "your-api-token",
    "instanceUrl": "https://yourcompany.zendesk.com",
    "enabled": true
  }'

Supported providers: salesforce, zendesk, hubspot, intercom.

API keys are stored in KV and never returned in list responses (masked).

Sync contacts and tickets

curl -X POST "$WORKER_URL/admin/crm/sync" \
  -H "Authorization: Bearer $ADMIN_JWT" \
  -H "Content-Type: application/json" \
  -d '{"provider":"zendesk","direction":"bidirectional"}'

Directions: in, out, bidirectional.

Sync history:

curl "$WORKER_URL/admin/crm/sync/history" \
  -H "Authorization: Bearer $ADMIN_JWT"

Lookup contact

curl "$WORKER_URL/admin/crm/contacts/lookup?provider=zendesk&email=alex@example.com" \
  -H "Authorization: Bearer $ADMIN_JWT"

Create ticket from chat

curl -X POST "$WORKER_URL/admin/crm/tickets" \
  -H "Authorization: Bearer $ADMIN_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "zendesk",
    "subject": "Chat escalation — billing question",
    "description": "User asked about invoice #1234 in room room_support",
    "contactEmail": "alex@example.com",
    "priority": "high"
  }'

Agent handoff (bi-directional)

Link a CRM ticket to a FluxyChat room and agent:

curl -X POST "$WORKER_URL/admin/crm/handoff" \
  -H "Authorization: Bearer $ADMIN_JWT" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "zendesk",
    "ticketId": "ticket_abc123",
    "roomId": "room_support",
    "agentId": "agent_billing"
  }'

SDK (client-side demo)

For in-browser prototyping without Worker persistence:

import { createCrmIntegration } from "@fluxy-chat/sdk";

const crm = createCrmIntegration({
  provider: "hubspot",
  apiKey: "demo-key",
});
await crm.sync("bidirectional");

Production integrations should use the Worker /admin/crm/* routes above.

On this page