Configure Sayify REST Hook triggers in Zapier, map flattened payload fields, and troubleshoot live Zap delivery.

Zapier Integration

Zapier connects Sayify to thousands of apps without custom code. Sayify uses Zapier REST Hooks, so a Zap receives an immediate POST whenever a subscribed event occurs.

Use Zapier when you want to create CRM contacts, send emails, update spreadsheets, create tasks, or route Sayify responses into another no-code workflow.


Requirements

Requirement Details
Sayify plan Workspace must include zapier_integration.
API key Create one from API Management in the Sayify app.
Zapier account A free Zapier account can test Zaps, but Zapier plan limits still apply.
Sayify Zapier app If Sayify is in preview, accept the invite link before searching for the app.

If the workspace plan does not include Zapier, authentication, sample data, subscription, and live delivery are blocked.


Configure Zapier

  1. In Sayify, open API Management.
  2. Create an API key for Zapier.
  3. In Zapier, create a new Zap.
  4. Choose Sayify as the trigger app.
  5. Choose a trigger:
    • New Response Started
    • New Response Submitted
  6. Select the Sayify form whose fields you want to map.
  7. Connect your Sayify account using the API key.
  8. Test the trigger to load sample fields.
  9. Add your Zapier action, such as HubSpot, Gmail, Google Sheets, Slack, Notion, or Airtable.
  10. Turn on the Zap.

When the Zap turns on, Zapier sends Sayify a target_url. If a form was selected, Sayify stores it as a form-specific Zapier integration destination and only POSTs events from that form to the Zapier hook.


REST Hook Lifecycle

Step What Happens
Auth test Zapier validates the API key and workspace plan.
Form list Zapier loads the workspace's forms for an exact-field dropdown.
Sample data Zapier requests flattened sample data for field discovery.
Subscribe Zapier registers a target_url for the selected event.
Live event Sayify sends the flattened payload to Zapier.
Unsubscribe Zapier deletes the hook when the Zap is turned off or removed.

Events

Trigger Event Key Timing Payload
New Response Started response.started When a respondent opens a form Session, respondent, workspace, use case.
New Response Submitted response.submitted After submission and AI enrichment Full response, contact, AI, custom fields, metrics, key points.

Use New Response Submitted for campaign automation, CRM updates, lead routing, and workflows that need extracted fields.


Payload Format

Zapier receives flattened JSON. Nested objects use __ between levels, and arrays become comma-separated strings.

Zapier field mapping is static per Zap. For exact fields, configure the trigger for one specific form. A workspace-wide Zap can only rely on common fields because each form can have different question keys, extraction fields, and use-case metrics.

Example:

{
  "event": "response.submitted",
  "session__link_name": "Lead Qualification",
  "contact__email": "alex@example.com",
  "responses__company_size": "51-200",
  "use_case": "lead_qualification",
  "use_case_metrics__lead_score": 88,
  "custom_fields__decision_process": "Finance approval required"
}

This format makes Zapier fields easier to map in downstream actions.


response.started Payload

{
  "event": "response.started",
  "timestamp": "2026-02-17T10:13:15.123Z",
  "session__uuid": "abc123-session-uuid-456",
  "session__link_name": "Lead Qualification",
  "session__link_slug": "lead-qualification",
  "session__link_uuid": "def789-link-uuid-012",
  "session__started_at": "2026-02-17T10:13:15.123Z",
  "respondent__ip_address": "192.0.2.1",
  "respondent__user_agent": "Mozilla/5.0",
  "respondent__location__country": "US",
  "respondent__location__city": "San Francisco",
  "workspace__uuid": "workspace-uuid-123",
  "workspace__name": "Acme Corp",
  "use_case": "lead_qualification"
}

response.started does not include answers or AI metrics because the respondent has not submitted yet.


response.submitted Payload

{
  "event": "response.submitted",
  "timestamp": "2026-02-17T10:13:30.794Z",
  "session__uuid": "abc123-session-uuid-456",
  "session__link_name": "Lead Qualification",
  "session__link_slug": "lead-qualification",
  "session__started_at": "2026-02-17T10:13:15.123Z",
  "session__completed_at": "2026-02-17T10:13:30.794Z",
  "session__duration_seconds": 85.79,
  "contact__name": "Alex Johnson",
  "contact__email": "alex@example.com",
  "contact__phone": "+14155551234",
  "contact__company": "Acme Corp",
  "metadata__total_questions": 4,
  "metadata__answered_questions": 4,
  "metadata__completion_percentage": 100,
  "ai_evaluation__clarity_score": 85,
  "ai_evaluation__completion_status": "complete",
  "ai_evaluation__insights__sentiment_score": 8,
  "ai_evaluation__insights__urgency_level": "medium",
  "ai_evaluation__insights__executive_summary": "The respondent is a strong fit and asked about implementation timing.",
  "responses__company_size": "51-200",
  "responses__company_size__question": "How large is your company?",
  "responses__company_size__response_type": "dropdown",
  "responses__current_solution": "We use spreadsheets today.",
  "responses__current_solution__question": "What are you using today?",
  "responses__current_solution__response_type": "voice_text_fallback",
  "use_case": "lead_qualification",
  "extracted_data__company_size": "Mid-Market",
  "custom_fields__decision_process": "Finance approval required",
  "use_case_metrics__lead_score": 88,
  "use_case_metrics__icp_fit": "Strong Fit",
  "use_case_key_points__buying_signals": "Asked about implementation timeline",
  "Metric:lead_score": 88,
  "Field:decision_process": "Finance approval required"
}

Field Reference

Field Pattern Description
event Event key, such as response.submitted.
timestamp Event timestamp.
session__<field> Session and form metadata.
contact__<field> Contact identity captured from the response.
respondent__<field> Browser, IP, and location metadata.
metadata__<field> Completion and question counts.
responses__<field_key> Answer value for a question.
responses__<field_key>__question Original question prompt.
responses__<field_key>__response_type Question response type.
responses__<field_key>__audio_url Audio URL when available.
responses__<field_key>__transcript Transcript when available.
ai_evaluation__<field> Overall AI analysis.
use_case Form use-case key.
extracted_data__<key> AI-extracted case data.
custom_fields__<key> Custom extraction fields.
use_case_metrics__<key> Dynamic use-case metrics.
use_case_key_points__<key> Dynamic key point groups.
Metric:<key> Legacy metric alias for Zapier field mapping.
Field:<key> Legacy extracted-field alias for Zapier field mapping.

Dynamic Use-Case Fields

Every form can produce a different set of metrics and key points.

Lead qualification example:

{
  "use_case": "lead_qualification",
  "use_case_metrics__lead_score": 88,
  "use_case_metrics__icp_fit": "Strong Fit",
  "use_case_metrics__buyer_intent": "Ready to Buy"
}

Support intake example:

{
  "use_case": "support_intake",
  "use_case_metrics__issue_category": "Billing",
  "use_case_metrics__urgency_level": "High",
  "use_case_key_points__reported_issues": "Invoice mismatch, failed payment"
}

Custom fields example:

{
  "custom_fields__account_id": "ACME-1042",
  "custom_fields__decision_process": "Finance approval required"
}

After changing a form's use case, questions, or custom extraction fields, retest the Zap trigger so Zapier discovers the latest fields.

Exact Form Fields

Sayify exposes form-specific field discovery for Zapier:

Endpoint Purpose
GET /api/zapier/links Returns forms for Zapier's form dropdown.
GET /api/zapier/hooks/sample/response.submitted?link_uuid=<form_uuid> Returns sample data with that form's exact responses__*, extracted_data__*, custom_fields__*, and use_case_metrics__* fields.
POST /api/zapier/hooks/subscribe with link_uuid Creates a form-specific Zapier subscription.

If the user edits questions, field keys, use case, or extraction schema later, retest the trigger in Zapier and remap any changed fields.


Mapping Fields in Zapier

Recommended mappings:

Destination Goal Useful Fields
Create CRM lead contact__name, contact__email, contact__company, use_case_metrics__lead_score, use_case_metrics__icp_fit.
Create support ticket contact__email, responses__<issue_field>, use_case_metrics__urgency_level, ai_evaluation__insights__executive_summary.
Send notification session__link_name, contact__email, ai_evaluation__insights__executive_summary.
Add spreadsheet row timestamp, session__link_name, response fields, metrics, custom fields.

Testing Before Launch

  1. In Zapier, test the Sayify trigger.
  2. Confirm the selected form is correct.
  3. Confirm sample fields include the values you need.
  4. Submit a real response from the campaign form.
  5. Confirm the Zap run includes use_case_metrics__* and custom_fields__* fields.
  6. Turn the Zap on.

For campaign launches, run at least one test per important form/use case combination.


Troubleshooting

Problem What To Check
Sayify app not found Accept the Sayify Zapier invite if the app is in preview.
API key rejected Confirm the key is active and belongs to the correct workspace.
Auth fails after key works elsewhere Confirm the workspace plan includes Zapier.
Trigger does not fire Confirm the Zap is on, the form is active, and the event is the one you subscribed to.
AI fields are empty Use response.submitted, submit a response that can be enriched, and wait for AI processing.
New custom fields do not appear Retest the trigger in Zapier after changing the form.
Fields belong to another form/use case Select the correct form in the Zap trigger and test the trigger again.
Duplicate actions Check whether you created multiple Zaps or multiple Zapier destinations for the same event.

Was this page helpful?
Report an issue →