Skip to integration content

How to integrate Unify with Google Sheets

To integrate Unify with Google Sheets, send a Play webhook to a receiver that maps prospect fields into a Sheets API append request. The receiver manages Google authorization and writes to a selected spreadsheet and range. Inspect the returned update details and the actual row before treating the handoff as complete.[1][3]

By UnifyDocumentation reviewed
Connection
Via webhook + endpoint
Spreadsheets
Tool
Google Sheets
Receiver → Sheets API
Data flow
Unify → Custom receiver → Google Sheets
JSON payload

At a glance

  1. Agree on an explicit column order and separate reviewer-owned fields
  2. Choose append for new handoffs or design a separate matching update
  3. Assign a person to interpret and act on each row

When this workflow makes sense

Start with the decision your team needs to make, then choose the connection that supports it.

A sheet is useful when a person needs to review a manageable set of records before the next action. Define the review decision and its owner before adding rows. Separate incoming facts from notes and approval fields so another delivery cannot be mistaken for a fresh human decision.

A good fit when

Teams that already review prospect handoffs in Google Sheets and can maintain the receiving automation.

Reconsider the plan when

A large shared spreadsheet can become an unclear system of record. Decide whether a CRM, database, or dedicated review app better matches the process.

Design the handoff

Use this framework to agree on the input, the next action, and who owns the result.

Suggested workflow design, based on the documented capabilities below.

StageDecision to make
ColumnsAgree on an explicit column order and separate reviewer-owned fields
WriteChoose append for new handoffs or design a separate matching update
ReviewAssign a person to interpret and act on each row
CheckCompare the stored row with the intended input

Explore the scenarios

Choose the situation that fits your team and work through the proposed plan.

Open a scenario to explore its plan. Checklists track your selections in this page only.

Build a prospect review queue

A small operations team reviews selected prospects in a sheet.

The decision that matters

Make the review action clear before adding columns.

  1. Choose the required prospect columns
  2. Append one fictional record
  3. Ask the owner to inspect the row and review fields
Your validation checklist
0 of 3 checks marked by you
Review repeated prospect deliveries

The same prospect can be selected more than once.

The decision that matters

Decide whether another row represents another handoff.

  1. Define append versus update behavior
  2. Send a controlled repeat
  3. Inspect the rows and existing reviewer notes
Your validation checklist
0 of 3 checks marked by you

Illustrative workflow, not a preconfigured automation. Complete these checks in your own account.

Connect your tools to Unify

Set up your integration or walk through it with our team

Define success before launch

Inspect the data and the intended outcome separately. Connection status is only the first check.

Expected, not tested

The selected sheet contains the intended fictional prospect row with the correct column mapping.

Compare the API update details with the intended sheet and row. Receiver acceptance alone does not prove a Sheets write.

Documentation-based reference. This workflow has not been tested end to end. Use a record or event you control before enabling live activity.

Questions answered

Common decisions when connecting Unify and Google Sheets.

Can a Unify webhook write into Google Sheets?

A custom receiver can turn the outbound request into an authorized Sheets API write. This article describes that implementation rather than a native connector.[1]

Why use a receiver?

The receiver can map the body, manage Google credentials, and track completion outside Unify’s short request window.[2]

Does append update an existing prospect?

No. Append adds rows after the detected table. Matching and updating an existing prospect is a separate design.[3]

How can I keep text from becoming a formula?

Use RAW for this feed. USER_ENTERED follows the parsing behavior used when values are entered in the interface.[4]

How do I know where data was written?

Inspect the append response’s updates and confirm the intended row in the spreadsheet.[3]

Limits & decisions

Check these boundaries before designing a live workflow around the connection.

  • Requires an implemented receiver and Google authorization
  • Append is not an upsert or a duplicate-prevention guarantee
  • A spreadsheet review decision does not automatically sync back to Unify
  • No live spreadsheet was changed

What the connection supports

Understand the connection, the data involved, and the behavior that matters for a Unify + Google Sheets workflow.

Connection flowVia webhook + endpoint
Prospect data to an owned destination

POST JSON to a receiver, then append a mapped row

Documented behavior at a glance
DecisionWhat to know
Writespreadsheets.values.append adds values after a logical table[3]
MappingA ValueRange carries the row arrays[3]
Input modeRAW preserves input values without parsing them as user-entered expressions[4]
AccessOAuth scopes and spreadsheet access govern the write[5]

Technical setup reference

References and requirements for the Google Sheets connection.

Connection requirements and setup checklist

Before connecting

  • A Unify Play with a Webhook action
  • An HTTPS receiver with an owner, input validation, and a durable job store
  • A controlled test record and a deliberate policy for repeat delivery
  • Google API authorization with access to the chosen spreadsheet
  • A spreadsheet ID, a named sheet, and agreed column order
  1. Define the row contract

    Choose the spreadsheet, sheet tab, and column order. Keep human review columns separate from fields supplied by the Play. Agree whether each row is a new handoff or one prospect’s current state.[3][4]

  2. Authorize the worker

    Configure Google authorization and a documented Sheets scope. Confirm that the acting identity can edit the selected file. An API key alone does not grant write access to a private spreadsheet.[5]

  3. Build the append request

    The worker calls POST /v4/spreadsheets/{spreadsheetId}/values/{range}:append. Map the object into a values array in the intended column order. Choose valueInputOption=RAW to keep supplied strings from being interpreted as formulas.[3][4]

  4. Connect the Play

    Set POST, JSON, and your receiver’s key header in Unify. Inspect Expand preview. Save accepted work before acknowledging it, keeping the receipt within the documented 8-second deadline.[1][2]

  5. Inspect the row and a repeat

    Compare the append response’s updates with the visible row. Send a controlled repeat and inspect your application’s repeat policy. Append does not perform a business-key upsert.[3]

Request configuration

Method
POST
URL pattern
https://YOUR_APP.vercel.app/api/unify-to-sheets
Headers
Content-Type: application/json
X-Unify-Webhook-Key: YOUR_WEBHOOK_SECRET
Authentication
Use a custom X-Unify-Webhook-Key header in the Play and validate it inside your receiver. This header is an example contract you implement, not a built-in provider credential. Keep destination authorization and token renewal in the worker.

Choose JSON as the body format. Unify sets Content-Type automatically. The receiver must respond within Unify’s 8-second timeout; request responses are not passed to later Play steps.[2]

Replace URL placeholders with the actual receiver URL from your account or deployed application. These example URLs are not working endpoints.

Example handoff payload

Start with a fictional prospect. Validate the resolved values before using a real record.

Inspect the sample payload and field mapping
Example request body
{
  "event": "prospect_handoff",
  "prospect_name": "Alex Morgan",
  "prospect_email": "alex@example.com",
  "company_name": "Example Company",
  "company_domain": "example.com"
}

Fictional data. Replace sample values before using a real Play.

The keys are an example handoff format, not required Unify field names. Use the field mapping to distinguish record data from fixed settings. Select available fields in your Play and inspect Expand preview; do not replace configuration values with prospect data.[2]

Payload fieldValue to send
eventA fixed label you choose for this workflow
prospect_nameUse {{ person.first_name }} and {{ person.last_name }} for the prospect name
prospect_emailUse {{ person.email }}; decide how to handle missing values
company_nameUse {{ company.name }}
company_domainUse {{ company.domain }}

The example object goes to your receiver. The worker converts its fields into a two-dimensional values array; object key order is not a column-mapping contract. The A1 range identifies the logical table used for append.

Troubleshooting

Start with the stage where the expected data or action stops appearing.

The API denies access

Check the acting identity, authorized scope, and file permissions. Confirm the worker is using the intended spreadsheet ID.[5]

Values appear in unexpected columns

Inspect the values array and A1 range. Append locates a logical table within the range, rather than updating a row by prospect email.[3][4]

A repeat creates another row

Append adds values after the existing table. If one row per prospect is required, implement an explicit matching and update design instead.[3]

Sources & review

Official documentation reviewed on September 15, 2026.

Technical claims link to primary documentation from Unify and the destination tool. Scenarios, field choices, and recovery plans are editorial implementation examples. Documentation review is separate from execution testing.

Documentation reviewed; end-to-end execution not tested. No named technical reviewer has signed off on these articles yet.

Content updated: . Report a correction to Unify with the tool name, source URL, and behavior you observed.

  1. [1] Unify: Webhook action
  2. [2] Unify: Webhooks in Plays
  3. [3] Google: Append spreadsheet values
  4. [4] Google: Read and write cell values
  5. [5] Google: Sheets authorization scopes

Get started with Unify

Create your account or book a demo with our team