⚠Auto-generated documentation — This content was generated with AI assistance and is currently under review. Information may be incomplete or inaccurate. When in doubt, contact our support team.
Connectors
Connectors are pre-built integrations that let your workflows send messages, notifications, and data to external services without writing integration code.
Available Connectors
Messaging
| Connector | What it does |
|---|
| Slack | Send messages to Slack channels via incoming webhook |
| Discord | Post messages to Discord channels via webhook |
| Telegram | Send messages via Telegram Bot API |
| Twilio SMS | Send SMS messages via Twilio |
Google Suite (OAuth, one-click setup)
| Connector | What it does |
|---|
| Google Drive | Search for files and folders in Google Drive |
| Google Sheets | Read, write, append rows, and create spreadsheets |
| Google Calendar | List, create, update, and delete calendar events |
| Gmail | Send emails, search inbox, and read messages |
Google connectors use one-click OAuth: just click "Connect Google Account" and authorize. No API keys needed. Your workflows reference connectors by name, and the platform handles authentication, token refresh, and API protocol details automatically.
Email
| Connector | What it does |
|---|
| SendGrid | Send transactional emails via SendGrid API |
| Resend | Send transactional emails via Resend API |
Productivity
| Connector | What it does |
|---|
| GitHub Issues | Create issues in GitHub repositories |
| Linear | Create issues in Linear projects |
| Notion | Create pages in Notion databases |
Data & Operations
| Connector | What it does |
|---|
| Supabase | Insert rows into Supabase tables |
| PagerDuty | Create incidents via PagerDuty Events API |
| Generic Webhook | Send HTTP requests to any URL with custom headers |
Setting Up a Connector
- Go to Integrations in the sidebar
- Click the Connectors tab
- Find the connector you want in the Available Connectors grid
- Click Add Connector on the card
- In the install panel, click "How to get these credentials" to see step-by-step instructions
- Fill in the required configuration fields
- Click Test to verify the connection works
- Click Install Connector
Getting Credentials (Per-Connector Guides)
Each connector requires different credentials. Here's where to find them:
Slack Webhook
| Field | Where to find it |
|---|
| Webhook URL | api.slack.com/apps > Your App > Incoming Webhooks > Add New Webhook |
- Go to api.slack.com/apps and sign in
- Click Create New App > From scratch, name it, and pick your workspace
- In the left sidebar, click Incoming Webhooks and toggle it ON
- Scroll down and click Add New Webhook to Workspace
- Choose the channel to post to and click Allow
- Copy the Webhook URL (starts with
https://hooks.slack.com/services/...)
Discord Webhook
| Field | Where to find it |
|---|
| Webhook URL | Channel Settings > Integrations > Webhooks |
- Open Discord and go to the channel you want to post to
- Click the gear icon (Edit Channel) next to the channel name
- Go to Integrations > Webhooks
- Click New Webhook, give it a name, then click Copy Webhook URL
Telegram Bot
| Field | Where to find it |
|---|
| Bot Token | Telegram > @BotFather > /newbot |
| Chat ID | Bot API getUpdates endpoint |
- Open Telegram and search for @BotFather
- Send
/newbot and follow the prompts to name your bot
- BotFather will reply with a bot token — copy it
- To get a Chat ID: add your bot to a group, send a message, then visit
api.telegram.org/bot<YOUR_TOKEN>/getUpdates
- Find the
chat > id value in the response — this is your Chat ID
SendGrid Email
| Field | Where to find it |
|---|
| API Key | app.sendgrid.com > Settings > API Keys |
| From Email | Must be a verified sender in SendGrid |
- Sign up or log in at app.sendgrid.com
- Go to Settings > API Keys > Create API Key
- Choose Restricted Access, enable Mail Send permissions, and create
- Copy the API key (starts with
SG.) — you won't see it again
- Go to Settings > Sender Authentication and verify your sender email
Resend Email
| Field | Where to find it |
|---|
| API Key | resend.com > API Keys |
| From Email | Must use a verified domain |
- Sign up or log in at resend.com
- Go to API Keys in the sidebar and click Create API Key
- Copy the key (starts with
re_) — you won't see it again
- Go to Domains and add + verify your sending domain
GitHub Issues
| Field | Where to find it |
|---|
| Personal Access Token | github.com/settings/tokens |
| Owner | Your GitHub username or organization name |
| Repo | The repository name |
- Go to github.com/settings/tokens and click Generate new token
- For classic tokens: select the repo scope. For fine-grained tokens: select the repository and enable Issues: Write
- Copy the token (starts with
ghp_ or github_pat_)
Linear Issue
| Field | Where to find it |
|---|
| API Key | linear.app/settings/api |
| Team ID | Team settings URL (UUID in the URL) |
- Go to linear.app/settings/api and click Create key
- Copy the API key (starts with
lin_api_)
- To find your Team ID: go to your team settings page — the UUID is in the URL
Notion Page
| Field | Where to find it |
|---|
| Integration Token | notion.so/my-integrations |
| Database ID | Database URL (UUID between workspace name and ?v=) |
- Go to notion.so/my-integrations and click New integration
- Name it, select the workspace, and click Submit
- Copy the Internal Integration Token (starts with
ntn_)
- Open the Notion database you want to use, click ... > Add connections and add your integration
- Copy the Database ID from the URL:
notion.so/<workspace>/<DATABASE_ID>?v=...
Supabase Insert
| Field | Where to find it |
|---|
| Project URL | Supabase Dashboard > Settings > API |
| Service Role Key | Supabase Dashboard > Settings > API (under Project API keys) |
| Table Name | The table you want to insert into |
- Log in to app.supabase.com and open your project
- Go to Settings > API in the sidebar
- Copy the Project URL (e.g.
https://xxxx.supabase.co)
- Under Project API keys, copy the service_role key (bypasses RLS — keep it secret)
| Field | Where to find it |
|---|
| Routing Key | PagerDuty > Services > Integrations > Events API v2 |
- Log in to your PagerDuty account
- Go to Services > Service Directory and select (or create) a service
- Click the Integrations tab > Add Integration
- Select Events API v2 and click Add
- Copy the Integration Key (also called Routing Key)
Generic Webhook
No specific credentials required — just your target URL and any authentication tokens your API needs.
The Generic Webhook connector supports custom HTTP headers via a key-value editor:
- Click + Add to add a header row
- Enter the header name and value
- Click the circle icon to toggle sensitive masking (hides the value)
- Custom headers are merged into the request alongside the Authorization header
This is useful for APIs that require custom headers like X-API-Key, X-Webhook-Signature, or vendor-specific headers.
Using Connectors in Workflows
Once configured, reference connectors in your workflow markdown:
### 4. Notify team on Slack
Send the analysis summary from step 3 to the #engineering channel
using the Slack connector.
The AI compiler sees your installed connectors (including their API schemas) and generates the correct HTTP request configuration automatically. You don't need to specify URLs, headers, or body formats.
How AI Uses Connector Schemas
When you compile a workflow, the AI sees:
- The connector's HTTP method and URL pattern
- Required headers (authentication, content type)
- Body template with placeholder fields
- Runtime input descriptions (what each field means and expects)
This means the AI generates correct API calls matching the connector's schema, instead of guessing.
Connectors vs. MCP Servers
| Connectors | MCP Servers |
|---|
| Setup | One-click config in dashboard | Deploy a server, register URL |
| Scope | Predefined actions (send message, send email) | Custom tools with any parameters |
| Best for | Notifications, simple integrations | Complex API interactions, custom logic |
Rule of thumb: Use connectors for simple "send a message" actions. Use MCP servers when you need bidirectional communication or complex tool interactions.
Testing Connectors
Each connector has a Test button that sends a sample request to verify your configuration. Test before using in a workflow to catch issues early (wrong webhook URL, expired API key, etc.).
Self-Healing Connector Steps
When a connector step fails at runtime (e.g., malformed datetime for Google Calendar, missing spreadsheet ID for Sheets), CFFBRW's AI recovery automatically diagnoses the issue. The recovery AI sees the connector's expected parameters, your workflow input values, and exactly what request was sent, so it can fix the problem and retry the API call without recompiling.
You'll see a blue "Adapted" badge on steps that were recovered. No action needed on your part.
Important: Recompile After Changes
When you install, update, or remove a connector, recompile any workflows that use it. The compiled plan caches the connector configuration at compile time. Changing a connector doesn't automatically update existing plans.