Configure Sayify to append enriched response data, AI metrics, custom fields, and approved destination items to Google Sheets.

Google Sheets Integration

The Google Sheets integration appends Sayify response data to a spreadsheet. Use it for reporting, campaign tracking, lead review, support queues, and lightweight exports.

Rows are built from the same enriched response.submitted payload used by Zapier. Sayify flattens nested data into column names such as session__link_name, responses__budget, and use_case_metrics__lead_score.


What Google Sheets Receives

Event Behavior
response.submitted Appends one row per submitted response after AI enrichment.
destination_item.approved Appends approved destination payloads when a reviewed item is pushed to the integration.

Google Sheets does not receive response.started; it is designed for completed rows with response and AI data.


Requirements

Requirement Details
Sayify plan Workspace must include google_sheets_integration.
Google account You must authorize Sayify with Google OAuth.
Spreadsheet access The connected Google account must be able to access the selected spreadsheet.
Sheet tab A target sheet tab must exist. Sayify defaults to Sheet1 when possible.

Configure Google Sheets

  1. Open Integrations in Sayify.
  2. Choose Google Sheets.
  3. Click Connect Google Sheets.
  4. Approve the Google OAuth prompt.
  5. Return to Sayify.
  6. Pick the target spreadsheet.
  7. Pick the sheet tab.
  8. Save the integration.
  9. Use Test to append a test row.

The integration can be global or assigned to a specific form from Form Builder > Automation > Always-On Integrations.


Spreadsheet Permissions

Sayify uses Google OAuth with Drive file access. The connected Google account must have permission to the spreadsheet you select.

If a spreadsheet does not appear:

  1. Open the spreadsheet in Google Drive with the connected account.
  2. Confirm the account can edit it.
  3. Reopen the Google Sheets integration in Sayify.
  4. Reconnect if the token expired or access changed.

Row Format

Sayify builds Google Sheets rows in three steps:

  1. Build the nested response.submitted payload.
  2. Flatten it using Zapier-style __ keys.
  3. Append a row using those flattened keys as columns.

Example flattened row data:

{
  "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__duration_seconds": 85.79,
  "contact__name": "Alex Johnson",
  "contact__email": "alex@example.com",
  "responses__company_size": "51-200",
  "responses__company_size__question": "How large is your company?",
  "responses__current_solution": "We use spreadsheets today.",
  "ai_evaluation__insights__executive_summary": "The respondent is evaluating a more scalable process.",
  "use_case": "lead_qualification",
  "use_case_metrics__lead_score": 88,
  "use_case_metrics__icp_fit": "Strong Fit",
  "custom_fields__decision_process": "Finance approval required"
}

Column Order

Sayify puts stable metadata columns first, dynamic response columns next, and any remaining fields after that.

Common leading columns:

Column Description
event Usually response.submitted.
timestamp Delivery timestamp.
session__uuid Response session UUID.
session__link_name Form name.
session__link_slug Form slug.
session__started_at Session start time.
session__duration_seconds Completion duration.
respondent__ip_address Respondent IP address.
respondent__location__country Country when available.
respondent__location__city City when available.
workspace__name Workspace name.

Dynamic columns include:

Column Pattern Description
responses__<field_key> Answer value for a form question.
responses__<field_key>__question Original question prompt.
responses__<field_key>__response_type Response type such as text, rating, dropdown, or voice.
responses__<field_key>__sentiment_score Per-answer AI sentiment when available.
responses__<field_key>__executive_summary Per-answer AI summary when available.
use_case_metrics__<key> Use-case metrics such as lead score, ICP fit, or urgency.
custom_fields__<key> Custom extraction fields configured for the form.
extracted_data__<key> AI-extracted values from the case.
use_case_key_points__<key> Key point arrays converted to comma-separated strings.
Metric:<key> Legacy metric alias.
Field:<key> Legacy extracted-field alias.

Headers and New Fields

When the first row is appended, Sayify can create headers from the available flattened payload. If later submissions contain new fields, those keys may appear as new columns depending on the existing sheet state and append behavior.

To keep reporting clean:

  1. Finalize your form field keys before launching a campaign.
  2. Submit one test response per important use case.
  3. Confirm the sheet has the expected columns.
  4. Avoid renaming field keys during an active campaign unless you are ready for new columns.

Dynamic Use-Case Fields

Different forms produce different metrics:

{
  "use_case": "lead_qualification",
  "use_case_metrics__lead_score": 88,
  "use_case_metrics__buyer_intent": "Ready to Buy"
}
{
  "use_case": "support_intake",
  "use_case_metrics__issue_category": "Billing",
  "use_case_metrics__urgency_level": "High"
}

Google Sheets stores whichever fields are present in the payload. It does not require every use case to share the same schema.


Assign Google Sheets to a Form

  1. Open the form in Form Builder.
  2. Go to Automation.
  3. Open Always-On Integrations.
  4. Select the Google Sheets integration.
  5. Save the form.

Use separate Google Sheets integrations when different forms should write to different spreadsheets or tabs.


Filters and Workflow Rules

You can filter Google Sheets delivery so only matching submissions append rows. Common examples:

Goal Setup
Log only qualified leads Filter on lead_score or qualification_status.
Log only urgent support requests Filter on urgency or action required.
Route different forms to different sheets Assign integrations per form in Form Builder.

Destination approval flows can also push approved data to Google Sheets after a reviewer confirms extracted fields.


Testing

Use Test from the integration page to verify that Sayify can append a row. Then submit a real form response to verify:

  • Dynamic response fields appear.
  • AI summary appears.
  • Use-case metrics appear.
  • Custom fields appear.
  • The row lands in the expected spreadsheet and sheet tab.

Troubleshooting

Problem What To Check
Connect fails Confirm the workspace plan includes Google Sheets and server OAuth credentials are configured.
Spreadsheet is missing Confirm the connected Google account has access. Reconnect if needed.
Token expired Reconnect Google Sheets from the integration page.
Rows are missing AI metrics Use response.submitted and wait for AI enrichment. Test with a form that actually produces metrics.
Wrong sheet tab Reopen the integration and select the correct tab.
New columns appear unexpectedly A question field key, use case, or custom extraction field changed.

Was this page helpful?
Report an issue →