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:
| Feature | Where | What It Does |
|---|---|---|
| Copilot Bridge | Profile → Apps | Routes your DMs to Copilot for AI lookups, deals, and enrichment |
| Settings → Integrations → Slack | Settings | Sends graph8 notifications and alerts to channels |
| Settings → Integrations → Roam | Settings | Syncs 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
| Platform | How It Works | Identifier |
|---|---|---|
| Message your connected phone number — replies route to Copilot | Phone number (digits only) | |
| Slack | DM the graph8 bot in your workspace | Slack user ID |
| Roam | Message in a connected group or DM | Roam user/group ID |
| iMessage | Text your connected phone number or email | Phone number or email |
Setting Up a Connection
- Go to Profile → Apps
- Open the Setup sub-tab
- Find the platform you want to connect under Messaging
- Follow the platform-specific flow below
After connecting, send a test message — Copilot replies within a few seconds.
- Click the WhatsApp card and enter your phone number (digits only, with country code)
- Click Connect
- 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
- Click Connect Slack
- Authorize the graph8 bot in your Slack workspace (OAuth flow)
- After authorization, pick your Slack user from the workspace user list
- 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
- Click Connect Roam
- Sign in to Roam and authorize graph8
- Select either a Roam group or a personal DM as your routing target
- 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
- Click Connect iMessage
- Enter your phone number or email address
- 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:
| Column | Description |
|---|---|
| Platform | WhatsApp, Slack, Roam, iMessage, MCP, or API key |
| Identifier | Phone number, user ID, group, or email |
| Connected | Date connected |
| Last Active | Last time a message routed through this connection |
| Status | Active 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
- Open the Copilot sidebar (any page in graph8)
- Switch to the History tab
- Filter by Bridge mode to see only bridge sessions
- 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.
| Platform | Verification |
|---|---|
HMAC-SHA256 signature on X-Hub-Signature-256 header (GOWA secret) | |
| Slack | HMAC-SHA256 signature with timestamp (Slack signing secret) |
| Roam | Svix HMAC (x-svix-signature, x-svix-timestamp, x-svix-id) |
| iMessage | Internal 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 Category | Examples |
|---|---|
| Search | Contact search, company search, deal search, inbox search |
| CRUD | Create contact, update deal stage, add to list, add to sequence |
| Enrichment | Single-contact enrichment, find people |
| Analytics | Pipeline forecast, campaign performance, sequence stats |
| Web research | Company web search, competitive lookups (Deep model tier only) |
| Actions | Run 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
| Aspect | Behavior |
|---|---|
| Per-user scoping | Each bridge connection is tied to one user — your queries see only data you have permission to access |
| Org isolation | Phone numbers map to exactly one org; cross-tenant message routing is impossible |
| Audit log | Every bridge action is logged at Settings → Activity with platform, message, tool calls, and credit cost |
| Message retention | Chat sessions retained 90 days by default; configurable in Settings → Compliance |
| Data deletion | Disconnecting 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
| Issue | Likely Cause | Fix |
|---|---|---|
| Messages don’t route to Copilot | Connection expired or webhook secret wrong | Check Profile → Apps → Connections for Expired status; reconnect |
| Got connected to the wrong org | Phone number routing maps to one org only | Disconnect from the wrong org first, then reconnect from the right org |
| Slack picker doesn’t show my user | Slack workspace email differs from graph8 email | Reconnect Slack and use the manual picker |
| WhatsApp messages echo back | GOWA webhook loop misconfigured | Contact admin — server-side webhook URL needs adjustment |
| Roam connection failed | Connected before March 2026 (old scopes) | Disconnect and reconnect to pick up new scopes |
| iMessage delivery delayed | BlueBubbles server lag | Self-hosted iMessage relies on Apple’s APNs; delivery can be slow during APNs outages |
| Slack OAuth fails | Bot was uninstalled from workspace | Have a workspace admin reauthorize the graph8 Slack app |
Related
- Copilot → — In-app AI assistant (same tools, in the dashboard)
- Voice AI Agents → — AI-powered phone agents
- Skills → — Reusable AI capabilities Copilot uses
- Integrations → — Workspace-level Slack notifications and Roam meeting sync