Skip to content

Copilot Bridge

Copilot Bridge lets you interact with graph8’s AI Copilot from your everyday messaging apps — ask questions, look up contacts, run enrichment, and get insights without opening the graph8 dashboard. Bridge gives you the full Copilot tool set directly inside your existing workflow.

Bridge vs. Workspace Integrations

Don’t confuse Copilot Bridge with workspace-level Slack/Roam integrations. They use the same platforms but do different jobs:

FeatureWhereWhat It Does
Copilot BridgeProfile → AppsRoutes your DMs to Copilot for AI lookups, deals, and enrichment
Settings → Integrations → SlackSettingsSends graph8 notifications and alerts to channels
Settings → Integrations → RoamSettingsSyncs meeting transcripts and recordings into the inbox

Both can be active at the same time. Bridge is per-user and personal; the Settings integrations are workspace-wide.

Supported Platforms

PlatformHow It WorksIdentifier
WhatsAppMessage your connected phone number — replies route to CopilotPhone number (digits only)
SlackDM the graph8 bot in your workspaceSlack user ID
RoamMessage in a connected group or DMRoam user/group ID
iMessageText your connected phone number or emailPhone number or email

Setting Up a Connection

  1. Go to Profile → Apps
  2. Open the Setup sub-tab
  3. Find the platform you want to connect under Messaging
  4. Follow the platform-specific flow below

After connecting, send a test message — Copilot replies within a few seconds.

WhatsApp

  1. Click the WhatsApp card and enter your phone number (digits only, with country code)
  2. Click Connect
  3. Send a message to graph8’s WhatsApp number to verify the connection

WhatsApp uses graph8’s self-hosted GOWA server for delivery. Your phone number is added to a routing index so messages from that number always land in your org’s bridge.

Slack

  1. Click Connect Slack
  2. Authorize the graph8 bot in your Slack workspace (OAuth flow)
  3. After authorization, pick your Slack user from the workspace user list
  4. DM the graph8 bot to start chatting

The Slack OAuth flow grants the bot access only to direct-message channels — not to public channels or other DMs. The bot identifies you by Slack user ID, so swapping workspaces requires reconnecting.

Roam

  1. Click Connect Roam
  2. Sign in to Roam and authorize graph8
  3. Select either a Roam group or a personal DM as your routing target
  4. Messages in the selected group/DM route to Copilot

If you connected Roam before March 2026, disconnect and reconnect to pick up the latest scopes.

iMessage

  1. Click Connect iMessage
  2. Enter your phone number or email address
  3. Send a test iMessage to graph8’s iMessage contact

iMessage delivery uses a self-hosted BlueBubbles server. The connection is identified by the phone number or email you registered.

What You Can Do

Bridge gives you the same capabilities as the in-app Copilot — same tools, same access, same context.

Lookups & Research

  • “What do we know about Acme Corp?” — pulls company enrichment, recent signals, deal status
  • “Show me my top 5 leads from this week” — filters your CDP by recency + score
  • “Has anyone at Stripe replied to my outreach?” — searches inbox by company

Actions

  • “Enrich this email: [email protected] — runs waterfall enrichment
  • “Add Jane Smith to the Q2 Outbound list” — modifies a graph8 list
  • “Summarize the Acme deal” — pulls deal context, notes, recent meetings
  • “Draft a follow-up to my last email with Acme” — uses inbox history + context

Status Updates

  • “How’s the Q2 campaign performing?” — pulls campaign analytics
  • “What’s my pipeline this quarter?” — deal forecast summary
  • “Show me unread inbox threads” — surfaces inbox items needing attention

Managing Connections

View all active connections in Profile → Apps → Connections.

Connections Tab

The Connections sub-tab lists every active connection across all surfaces:

ColumnDescription
PlatformWhatsApp, Slack, Roam, iMessage, MCP, or API key
IdentifierPhone number, user ID, group, or email
ConnectedDate connected
Last ActiveLast time a message routed through this connection
StatusActive or expired

Disconnect

Click Disconnect next to any connection to remove it. Disconnect is immediate:

  • Your messages stop routing to Copilot
  • Chat history is preserved
  • The connection record is deleted

Reconnect

If a platform’s OAuth token expires, the connection shows as Expired. Click Reconnect to refresh credentials without losing chat history.

Chat History

Every bridge conversation is saved as a persistent chat session in graph8.

Where to Find It

  1. Open the Copilot sidebar (any page in graph8)
  2. Switch to the History tab
  3. Filter by Bridge mode to see only bridge sessions
  4. Click any session to see the full message history

Sessions are organized per-platform — your WhatsApp history is separate from your Slack history.

Privacy

Bridge sessions are scoped to your user — only you can see your bridge chat history. Admins cannot access individual users’ bridge conversations without explicit elevation.

Webhook Security

Each platform uses its own signature verification. graph8 rejects webhook payloads that fail verification.

PlatformVerification
WhatsAppHMAC-SHA256 signature on X-Hub-Signature-256 header (GOWA secret)
SlackHMAC-SHA256 signature with timestamp (Slack signing secret)
RoamSvix HMAC (x-svix-signature, x-svix-timestamp, x-svix-id)
iMessageInternal password validation (BlueBubbles server)

Webhook secrets are configured at the org level. If you self-host any of these (GOWA for WhatsApp, BlueBubbles for iMessage), keep secrets rotated and stored in a secret manager.

Tool Availability

Bridge exposes the full Copilot tool set:

Tool CategoryExamples
SearchContact search, company search, deal search, inbox search
CRUDCreate contact, update deal stage, add to list, add to sequence
EnrichmentSingle-contact enrichment, find people
AnalyticsPipeline forecast, campaign performance, sequence stats
Web researchCompany web search, competitive lookups (Deep model tier only)
ActionsRun a Skill, send an email, draft a message

Tools that require explicit confirmation (like sending an email or modifying a deal) prompt you to approve in the chat thread before running.

Privacy and Audit

AspectBehavior
Per-user scopingEach bridge connection is tied to one user — your queries see only data you have permission to access
Org isolationPhone numbers map to exactly one org; cross-tenant message routing is impossible
Audit logEvery bridge action is logged at Settings → Activity with platform, message, tool calls, and credit cost
Message retentionChat sessions retained 90 days by default; configurable in Settings → Compliance
Data deletionDisconnecting a platform removes the connection record but preserves chat history (deletable separately from Copilot history)

Auto-Match (Coming Soon)

A future enhancement will auto-match users to bridge connections by comparing their platform email (e.g. Slack workspace email) with their graph8 PropelAuth email. This removes the manual user-picker step. Until it ships, you’ll continue to select your Slack user / Roam group manually during setup.

Best Practices

  • One platform per use case — don’t bridge all four if you only message in one. Each connection costs credits when it routes a message
  • Test after setup — send a “hello” message to confirm routing works before relying on it
  • Reconnect quarterly — Slack and Roam OAuth tokens can expire; refresh proactively to avoid mid-conversation failures
  • Use Slack for team contexts — Slack DMs preserve conversational threading better than WhatsApp/SMS
  • Use WhatsApp/iMessage for mobile-first workflows — when you’re away from a desktop, these are faster than opening the dashboard

Troubleshooting

IssueLikely CauseFix
Messages don’t route to CopilotConnection expired or webhook secret wrongCheck Profile → Apps → Connections for Expired status; reconnect
Got connected to the wrong orgPhone number routing maps to one org onlyDisconnect from the wrong org first, then reconnect from the right org
Slack picker doesn’t show my userSlack workspace email differs from graph8 emailReconnect Slack and use the manual picker
WhatsApp messages echo backGOWA webhook loop misconfiguredContact admin — server-side webhook URL needs adjustment
Roam connection failedConnected before March 2026 (old scopes)Disconnect and reconnect to pick up new scopes
iMessage delivery delayedBlueBubbles server lagSelf-hosted iMessage relies on Apple’s APNs; delivery can be slow during APNs outages
Slack OAuth failsBot was uninstalled from workspaceHave a workspace admin reauthorize the graph8 Slack app