Integrations
Connect Shopify, your CRM, Google Sheets, Meta, LinkedIn, email, and SMS.
Complete reference for the Integrations section — every connector, exactly what each one needs, what it does once connected, and which direction data flows.
Hidden from agents and supervisors. There is no per-tab role gate beyond that; the backend authorises on organization membership.
For the fast path, use the Quick Start.
Section map#
Integrations is a single tabbed page at /integration/:tab, not one page per connector — which is why the tab bar stays put as you move between them. /integration redirects to /integration/overview.
| Tab | Path | Connection style |
|---|---|---|
| Overview | /integration/overview | — |
/integration/email | SMTP / IMAP credentials | |
| SMS | /integration/sms | Pick a Telnyx number |
| Sheets | /integration/sheets | OAuth |
| Salesforce | /integration/salesforce | OAuth |
| Zoho | /integration/zoho | OAuth |
| HubSpot | /integration/hubspot | OAuth |
| monday | /integration/monday | OAuth |
| Shopify | /integration/shopify | App Store OAuth, or a manual custom app |
| Meta Lead Ads | /integration/meta | Access token + webhook |
| Meta Messaging | /integration/meta-messaging | Tokens + webhook |
| LinkedIn Lead Gen | /integration/linkedin | Access token |
What is not available
Telegram, Slack, and Discord appear as options in one dropdown but have no tab, no overview card, and no working connection flow. They are not usable. Do not plan around them.
Overview#
Available Platforms cards the five messaging and email channels only:
| Platform | Description |
|---|---|
| WhatsApp Business | Connect your chat widget to WhatsApp Business API for seamless customer communication |
| Email Integration | Configure SMTP email settings to send emails through workflow nodes |
| Facebook Messenger | Reach customers on Messenger. Free inside the 24h session window; outside the window we send with a Meta MESSAGE_TAG (configured per event). |
| Instagram Direct Messages | Connect an Instagram Business account. In-window replies are free; outside the window, re-engagement requires the HUMAN_AGENT tag. |
| SMS Integration | Send and receive SMS on your phone numbers — used by workflow nodes, in-call tools, outbound triggers, and CRM ticket replies. |
Each card carries an integration count and Get Started. WhatsApp, Facebook, and Instagram are badged Meta Messaging.
Overview is not a catalogue of the whole section. Sheets, the four CRMs, Shopify, Meta Lead Ads, and LinkedIn are absent — go to their tabs directly.
Tiles: Available Platforms, Chat Widgets, Active Integrations. A Recent Integrations table follows with Platform, Name, Status, Messages, Actions, and per-row Deactivate / Activate / Edit / Delete.
Statuses across the section are ACTIVE, INACTIVE, ERROR, and CONFIGURING.
Sheets#
Spreadsheet Accounts — Connect Google or Microsoft accounts to power sheet-based workflows. Two sections: Google Accounts (Google Sheets integration) and Microsoft Accounts (Excel Online integration).
Add account redirects you to the provider to approve access. Nothing is typed. You may connect several accounts per provider, each storing its own refresh token.
Cards show the account name and email, Connected {date}, a status badge (Active, Error, Disconnected), and Disconnect — This will remove the stored refresh token. Any automations using this account will stop working.
A card may warn · Refresh token missing, which means the connection cannot renew itself and will fail silently later. Reconnect it.
Empty: No {Provider} accounts connected — Connect an account to use Google Sheets in your workflows.
These accounts are used by more than workflows. Data collection spreadsheet sync and calendar sync both draw from this same list — see Audience.
Connect with calendar sync in mind. Calendar access is granted at connection time, so an account connected without it must be disconnected and reconnected before it can sync a calendar. There is no way to add the permission to an existing connection.
Salesforce#
Connect your Salesforce CRM to sync contacts, leads, and opportunities with your chat and call workflows. Each org's OAuth refresh token is stored securely.
Add Salesforce account redirects you to Salesforce. Multiple Salesforce orgs can be connected.
What the tab advertises as included:
- Sync contacts and leads from Salesforce to your chat widget
- Auto-create or update Salesforce records from chat and call interactions
- Map custom Salesforce fields to data collection schemas
- Trigger Salesforce flows on chat events
Per-account settings:
| Setting | Notes |
|---|---|
| Auto-sync with Salesforce | When enabled, new contacts and tickets are pushed to Salesforce as Leads automatically. |
| Sync new tickets as Leads | |
| Sync new contacts as Leads | |
| Default Lead company | e.g. Acme Co (falls back to email domain) |
Direction is outbound: FloGPT pushes contacts and tickets into Salesforce as Leads. Each card reports Last sync or No syncs yet, plus Last error where one occurred — check that before assuming the sync is healthy.
Zoho, HubSpot, and monday#
These three share one interface, configured per provider.
| Provider | What it syncs | Ticket becomes |
|---|---|---|
| Zoho | Sync to Zoho CRM Leads / Contacts and Zoho Desk Tickets. | Ticket (Zoho Desk) or Lead (Zoho CRM) |
| HubSpot | Sync to HubSpot Contacts and Service Hub Tickets. | Ticket (Service Hub) or Contact only |
| monday.com | Mirror tickets and contacts as items on monday.com boards. | Board item |
All three connect over OAuth via Add {provider} account.
Shared per-account settings:
| Setting | Notes |
|---|---|
| Auto-sync with {provider} | New contacts, tickets, status changes, and notes are mirrored automatically. |
| Sync new tickets | |
| Sync new contacts | |
| Mirror status & priority changes | |
| Mirror private notes as comments | |
| What floGPT tickets become in {provider} | Per the table above |
| Default company | Falls back to email domain |
monday additionally requires a Ticket board id and a Contact board id — without them it has nowhere to create items. Get them from the board URL.
Unlike Salesforce, these are a bidirectional mirror: cards report both Last push and Last inbound.
Think before enabling Mirror private notes as comments. Internal notes in FloGPT are written for teammates; mirroring them into a shared CRM makes them visible to a wider audience than their authors assume.
Disconnecting warns: The stored refresh token will be removed. Automations using this account will stop syncing.
Shopify#
Shopify Integrations — Connect Shopify stores once here, then reference them from workflow nodes and call pipelines.
The normal path
Connect with Shopify opens the Shopify App Store. Install FloGPT, approve the read-only permissions — Shopify handles the OAuth — and the store appears as Connected via Shopify automatically, no credentials to copy. App-managed rows are read-only here and badged Managed by your Shopify install.
Cards show API Version, Granted scopes, and Available actions as chips. Those chips are what workflow nodes and call pipelines can actually do with the store, so check them when a Shopify action is missing from a node.
Empty: No Shopify stores connected — Install floGPT from the Shopify App Store to connect your store over OAuth and enable product lookup, order tracking, and customer info during AI conversations.
The manual path
Connect manually with a custom app exists for headless storefronts and is flagged accordingly: Advanced path for headless or non-Shopify storefronts. Most merchants should instead install floGPT from the Shopify App Store, which connects the store automatically over OAuth with no credentials to copy.
| Field | Notes |
|---|---|
| Name | Shown when picking an integration on a workflow node or pipeline. |
| Description | Optional internal note |
| Store domain | your-store.myshopify.com — Just the domain — no https:// prefix. |
| Client ID | From your Shopify custom app |
| Client secret | Encrypted at rest. Used to mint short-lived access tokens for storefront API calls. |
| API version | Defaults to 2026-01 if blank. |
Manual integrations add Validate (which verifies the credentials and fetches scopes), Edit, and Delete. After creating one, validate it before wiring anything to it.
A store that has been through a GDPR redaction shows Store data redacted as a tombstone rather than disappearing.
Deleting warns that Workflow nodes and pipelines using it will need to be re-linked.
See FloGPT for Shopify for the storefront widget, catalogue sync, and the in-conversation Shopify tools.
Meta Lead Ads#
Connect Facebook Pages to leadgen webhooks and sync leads into a data collection.
Connecting a Page
| Field | Notes |
|---|---|
| Name | e.g. Flogpt Lead Ads |
| User Access Token | Pages and forms will load automatically after entering a valid token. |
| Facebook Page | Loaded from the token |
| Lead Form | Loaded from the page |
The form checks the token's Required permissions for you: pages_show_list, business_management, leads_retrieval, pages_read_engagement, pages_manage_metadata, pages_manage_ads. Missing any and it says so — Some permissions are missing. Re-generate your token in Meta App Dashboard with all required scopes. Generate the token with all six from the outset; adding them later means a new token.
Then choose where leads land — Use existing data collection or Create new (A new collection with name, email, and phone columns will be created automatically) — and optionally map Phone number, Email, and Full name to specific columns.
Finishing in Meta
After creating the integration you are shown Webhook callback URL and Verify token — Integration created — paste these into your Meta App Dashboard. The integration does nothing until you do.
Then press Subscribe page to attach the page to the leadgen webhook.
Ongoing lead flow
Leads arrive inbound by webhook. Sync leads pulls manually and reports Sync complete — {added} added, {skipped} skipped. Cards show leads ingested and the last lead time.
Watch the token pills: Token expiring soon and Token expired appear ahead of and after expiry. An expired token silently stops lead capture, which is an expensive thing to notice late. Rotate token regenerates the verify token — remember to update Meta afterwards.
Leads captured here can fire outbound calls; see AI Calls.
Meta Messaging#
Configure WhatsApp Business, Messenger, and Instagram against your Meta apps. All three share the 24-hour customer-service session window — replies inside the window are free; outside the window WhatsApp uses approved templates (billable), Messenger uses MESSAGE_TAG, and Instagram requires HUMAN_AGENT.
Understand that window before configuring anything. Inside 24 hours of the customer's last message you can reply freely. Outside it, each channel has a different, restricted, and in WhatsApp's case billable mechanism.
| Sub-tab | Note |
|---|---|
| WhatsApp Business | Templates for first-touch sends + free session messages within 24h. |
| Messenger | Free inside the 24h window; outside, re-engage via MESSAGE_TAG. |
| Direct messages; outside-window re-engagement requires HUMAN_AGENT. |
WhatsApp Business
Two independent channels:
| Channel | Meaning |
|---|---|
| Outbound — notifications | Order updates, alerts and template sends |
| Inbound — replies | AI answers customer messages via a chat widget — requires a Reply Chat Widget |
| Field | Notes |
|---|---|
| Webhook URL | Read-only, with Copy and Reset |
| Phone Number ID * | e.g., 123456789012345 |
| Access Token * | From your Meta app |
| Verify Token * | You invent it; Generate creates one. Paste the same value into Meta |
| Business Account ID (WABA ID) | optional but required for templates |
| API Base URL | Advanced; defaults to the current Graph API |
The WABA ID is labelled optional and effectively is not. Without it you cannot sync templates, and without templates you cannot start a conversation or reply outside the 24-hour window at all.
Templates and spend
With a WhatsApp integration in place, a templates panel appears.
Approved Templates — Authored in Meta Business Manager. Synced from your WABA. Sync from Meta pulls them into a table of Name, Lang, Category, Status, Params. Templates are written and approved in Meta, not here.
Billing & Spend breaks estimated current-month spend into Authentication, Utility, Marketing, and Service (free), and offers a Monthly spend cap (USD) — Once exceeded, template sends are skipped automatically.
Set the cap. It is the only thing standing between a misconfigured campaign and an unbounded Meta bill — and note that exceeding it causes sends to be skipped, so set it high enough that legitimate traffic survives.
Send a test takes a Recipient, a Template, and pipe-separated Parameters (John|ORDER123), and reports the message id and approximate cost.
Messenger and Instagram
| Channel | Fields |
|---|---|
| Messenger | Page ID, Page Access Token, Verify Token, read-only Webhook URL, Re-engagement event mappings (MESSAGE_TAG per event) |
| Instagram Business Account ID, Access Token, Verify Token, read-only Webhook URL, Re-engagement event mappings (HUMAN_AGENT only) |
Both need the webhook URL and verify token pasted into Meta App Dashboard → Webhooks.
Each integration also has Enable auto-reply and Enable notifications, and cards report Sent, Received, and Failed with Deactivate, Activate, Sync, Test, Edit, and Delete.
LinkedIn Lead Gen#
Poll the LinkedIn Marketing API for new lead-gen form submissions and dispatch them to outbound triggers. Default sync cadence is every 5 minutes.
The prerequisite
This one has a real barrier before any configuration. You must be approved on LinkedIn's Marketing Developer Platform with access to the Lead Sync API and the Advertising API (optionally Sign In with LinkedIn using OpenID Connect). That approval process takes weeks. Start it before planning around this integration.
Connecting an account
| Field | Notes |
|---|---|
| Name | e.g. Acme B2B Demo Account |
| Organisation URN | urn:li:sponsoredAccount:1234567890 — From Campaign Manager. The full URN, including the urn:li: prefix. |
| Organisation name | Optional, for display |
| Access token | OAuth access token with leadgen + reporting scopes. Encrypted at rest. |
| Refresh token (optional — enables auto-renewal) | Supply it |
| API version | Defaults to 202403 |
Supply the refresh token. Without it the access token expires and lead capture stops until someone notices.
Ongoing polling
A cron polls every 5 minutes; Sync now runs it immediately. Cards show Total leads ingested, Subscribed forms, API version, Last sync, and token expiry, with pills for Token missing and Refresh missing.
Leads feed the outbound trigger system — see AI Calls — which is how a form submission becomes a phone call within minutes.
Email#
Configure SMTP email settings to send emails through workflow nodes.
Direction
| Option | Meaning |
|---|---|
| Outbound (SMTP) | Send from workflows / replies |
| Inbound (IMAP) | Auto-create tickets from mail |
| Both | One mailbox, both directions |
Quick Setup prefills host and port for Gmail, Outlook, Yahoo, or Amazon SES.
SMTP (outbound)
| Field | Notes |
|---|---|
| SMTP Host * | e.g. smtp.gmail.com |
| SMTP Port * | 587 (TLS), 465 (SSL), or 25 (unencrypted) |
| SMTP Username * | |
| SMTP Password * | For Gmail, use an App Password. Stored encrypted and never shown again. |
| From Email * | |
| From Name |
Use an app password, not your account password — with 2FA on the mailbox, the account password will simply fail.
IMAP (inbound)
The poller checks UNSEEN messages in INBOX and converts each one into a CRM ticket…
| Field | Notes |
|---|---|
| IMAP Host * | e.g. imap.gmail.com |
| IMAP Port * | 993 (SSL) is standard |
| IMAP Username * | Usually the same as your support mailbox address |
| IMAP Password * | |
| Poll Interval (seconds) | Minimum 10s. Gmail recommends ≥ 30s. |
| Use SSL/TLS (recommended) |
Because the poller acts on UNSEEN messages in INBOX, anything else reading that mailbox and marking mail as read will cause tickets to be missed. Give FloGPT its own mailbox, or a dedicated folder-free support address.
Whether inbound mail actually creates tickets is also governed by the Email channel in Support → Settings.
Test Connection verifies before you rely on it. Test sends a real message to an address you supply.
Where the organization is Shopify-managed and has an outbound email integration, an Email Notifications panel appears for Shopify order notifications — Email your customers as their order progresses.
SMS#
Send and receive SMS on your phone numbers — used by workflow nodes, in-call tools, outbound triggers, and CRM ticket replies.
| Field | Notes |
|---|---|
| Direction * | Outbound (Send only), Inbound (Auto-create CRM tickets from replies), Both |
| From Number * | A Telnyx number already on your workspace |
There is no API key here — The platform key authenticates send + receive — no API key required here.
The prerequisite is a number: Buy a Telnyx number under Calls → Phone Numbers first, then return here to wire it up for SMS. With none bought you see No Telnyx numbers available. Indian numbers are routed through MSG91 automatically.
Test prompts for an E.164 recipient — e.g. +1234567890.
Spend and delivery are reported in Insights → SMS.
Troubleshooting#
| Symptom | Usual cause |
|---|---|
| Sheets, CRM, or Shopify missing from Overview | Overview only cards the five messaging and email platforms — use the tabs |
| Telegram, Slack, or Discord in a dropdown | Not implemented; ignore them |
| Calendar sync says permission missing | The Google or Microsoft account was connected without calendar scope — disconnect and reconnect |
| · Refresh token missing on an account | The connection cannot renew; reconnect it |
| CRM sync silently stopped | Check Last error on the account card, and whether the refresh token is present |
| monday creates nothing | Ticket board id / Contact board id not set |
| Internal notes visible to more people than expected | Mirror private notes as comments is on |
| A Shopify action is missing from a workflow node | Check Granted scopes and Available actions on the store card |
| Manual Shopify integration not working | Press Validate to verify credentials and fetch scopes |
| No Meta leads arriving | Webhook URL and verify token not pasted into Meta, or Subscribe page never pressed |
| Meta leads stopped arriving | The user access token expired — watch the Token expiring soon pill |
| Cannot sync WhatsApp templates | Business Account ID (WABA ID) is missing |
| WhatsApp template sends being skipped | The Monthly spend cap was exceeded |
| Cannot message a customer at all | You are outside Meta's 24-hour window and have no approved template |
| LinkedIn connection rejected | Marketing Developer Platform approval for Lead Sync and Advertising APIs is required |
| LinkedIn leads stopped | No refresh token, so the access token expired |
| Gmail SMTP authentication fails | Use an App Password, not the account password |
| Inbound email creates no tickets | Another client is marking mail read, or the Email channel is paused in Support → Settings |
| SMS From Number list empty | Buy a Telnyx number under Calls → Phone Numbers first |
Related#
- Integrations quick start
- Support — which channels create tickets
- Audience — spreadsheet sync and calendars using Sheets accounts
- Chat — workflow nodes that call these integrations
- AI Calls — outbound triggers fired by lead sources
- Insights — SMS volume and spend
- Setup — WhatsApp and Teams as alert channels
- FloGPT for Shopify