Configure Slack, Google Sheets, Zapier, and custom webhooks for real-time response delivery, automation, and approved destination pushes.
Integrations
Integrations send Sayify response data to the tools your team already uses. You can notify Slack, append rows to Google Sheets, trigger Zaps, or POST structured JSON to your own webhook endpoint.
Use this page as the starting point. Each integration guide includes setup steps, payload shape, gating, testing, and troubleshooting.
Choose the Right Integration
| Integration | Best For | Payload Shape | Delivery |
|---|---|---|---|
| Slack | Team notifications and triage | Slack Block Kit message | Queued async message |
| Google Sheets | Spreadsheet logging and reporting | Flattened row with dynamic columns | Queued async append |
| Zapier | No-code workflows across thousands of apps | Flattened key-value fields | REST Hook POST to Zapier |
| Custom Webhooks | Custom backend, CRM, data warehouse, internal automation | Nested JSON event payload | Signed HTTP POST with retries |
Where Integrations Can Run
Sayify supports three delivery patterns:
| Pattern | Where to Configure | What Happens |
|---|---|---|
| Global integration | Integrations page | Receives matching events across the workspace when marked as global/default. |
| Form-level integration | Form Builder > Automation > Always-On Integrations | Receives matching events for one form. Use this for form-specific routing. |
| Workflow or destination push | Workflow rules or Destinations approval flow | Sends only when a condition matches or a reviewed item is approved. |
For most teams, start with a global integration, then add form-level routing only where forms need different behavior.
Events
| Event | Sent To | Timing | Includes AI and Extracted Fields |
|---|---|---|---|
response.started |
Slack, Zapier, custom webhooks | When a respondent opens a form and a session begins | No |
response.submitted |
Slack, Google Sheets, Zapier, custom webhooks | After submission and AI case enrichment | Yes |
destination_item.approved |
Google Sheets, Zapier, custom webhooks, Slack destination pushes | When reviewed destination data is approved | Approved destination payload |
response.submitted deliberately waits for enrichment so downstream systems receive custom fields, use-case metrics, key points, and AI summaries when available.
Plan and Access Gates
| Integration | Plan Feature | Notes |
|---|---|---|
| Custom Webhooks | Available by default | Use HTTPS endpoints in production. |
| Slack | slack_integration |
The app will show an upgrade prompt if the workspace plan does not include Slack. |
| Google Sheets | google_sheets_integration |
Requires Google OAuth and a selected spreadsheet. |
| Zapier | zapier_integration |
Required for Zapier auth, sample data, subscribe, and live triggers. |
If a feature is not available on the current plan, Sayify skips delivery and does not queue a delivery log for that integration.
Shared Response Data
Every integration is built from the same response event data. The format differs by destination:
- Webhooks receive nested JSON.
- Zapier receives flattened
__-delimited keys. - Google Sheets receives flattened keys as columns.
- Slack receives a human-readable Block Kit message.
Common data includes:
| Data | Description |
|---|---|
| Contact | Name, email, phone, company, and respondent status when captured. |
| Session | Session UUID, form name, slug, start/completion time, and duration. |
| Responses | Per-question answer value, prompt, response type, audio/transcript where available, and per-answer AI evaluation. |
| Metadata | Total questions, answered questions, completion percentage, and average response time. |
| AI evaluation | Overall clarity, completion status, sentiment, urgency, persona, action required, and executive summary. |
| Use-case metrics | Dynamic metrics generated for the form's use case, such as lead score or priority. |
| Custom fields | Fields configured in the form's extraction schema and custom fields produced by AI extraction. |
| Key points | Use-case-specific highlights, risks, buying signals, themes, or other extracted point groups. |
Different use cases produce different metric and variable keys. Do not assume only lead qualification fields exist.
Dynamic Fields by Use Case
Sayify does not hardcode one integration schema for all forms. A lead qualification form may produce lead_score, icp_fit, and buyer_intent; a support form may produce urgency_level, issue_category, and action_required; a custom form may produce your own extraction fields.
Flattened integrations expose these as:
{
"use_case": "lead_qualification",
"use_case_metrics__lead_score": 88,
"use_case_metrics__icp_fit": "Strong Fit",
"custom_fields__decision_process": "Finance approval required"
}
For another form, the keys can be different:
{
"use_case": "support_intake",
"use_case_metrics__issue_category": "Billing",
"use_case_metrics__urgency_level": "High",
"custom_fields__account_id": "ACME-1042"
}
When configuring Zapier or Google Sheets, run a fresh test after changing use case, extraction fields, or question field keys so the destination discovers the latest fields.
Setup Checklist
- Confirm the workspace plan includes the integration you want.
- Create or connect the destination from Integrations.
- Choose subscribed events.
- For Slack, pick a channel. For Google Sheets, pick a spreadsheet and sheet tab. For webhooks, add your endpoint URL and optional signing secret.
- Test the integration.
- Submit a real test response from a form that has the use case and custom fields you expect.
- Check the integration delivery logs if anything does not arrive.
Integration Guides
| Guide | What It Covers |
|---|---|
| Slack Integration | OAuth install, channel selection, message content, private channel access, and troubleshooting. |
| Google Sheets Integration | OAuth install, spreadsheet selection, row structure, dynamic columns, and reconnect steps. |
| Zapier Integration | API key auth, REST Hook subscription, flattened payloads, field mapping, and Zap testing. |
| Webhook Integration | Endpoint setup, nested payloads, signatures, retries, delivery logs, and test receiver examples. |
Troubleshooting Flow
If an integration does not fire:
- Check the workspace plan gate for that integration.
- Confirm the destination is enabled.
- Confirm the destination is subscribed to the event.
- Check whether it is global or assigned to the correct form.
- Review filters or workflow rules that may have skipped delivery.
- Submit a new test response and inspect delivery logs.
- For
response.submitted, wait for AI enrichment to complete before expecting AI fields downstream.