Skip to integration content

How to integrate Unify with Supabase

To integrate Unify with Supabase, POST prospect JSON from a Play to an Edge Function you deploy. The function verifies the caller and writes validated fields to your chosen Postgres table. Keep request authentication, database access, and the rules for updating an existing prospect explicit.[1][3][5]

By UnifyDocumentation reviewed
Connection
Custom webhook
Developer platforms
Tool
Supabase
Edge Function
Data flow
Unify → Edge Function → Supabase Postgres
JSON payload

At a glance

  1. Separate webhook authentication from database authorization
  2. Define the allowed write before connecting the Play
  3. Inspect the saved record and repeat behavior

When this workflow makes sense

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

A prospect record can be useful to an internal application before it is ready for a sales action. For example, a team may want a review queue that combines incoming facts with a human decision. Decide which fields represent Unify data and which belong to the reviewer. A later handoff should not silently erase the work already done by a person.

A good fit when

Teams building a prospect review or operations interface on Supabase and able to maintain an Edge Function and its access rules.

Reconsider the plan when

If no one owns the table schema, database permissions, or repeat behavior, define those responsibilities before connecting live Play traffic.

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
RecordChoose the destination table and the person or company identity it represents.
AccessAuthenticate the incoming request before granting it a narrowly defined write.
UpdateKeep prospect facts separate from review status and human notes.
ValidationInspect the saved row, invalid requests, and the effect of a repeated sample.

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.

Populate an application review queue

A prospect needs human qualification in a Supabase-backed interface.

The decision that matters

Separate received facts from reviewer judgment so the next handoff does not erase an existing decision.

  1. Define prospect columns and separate review fields
  2. Implement an authenticated Edge Function with a limited write
  3. Inspect the fictional row from the intended reviewer’s interface
Your validation checklist
0 of 3 checks marked by you
Preserve a decision on repeated intake

The same prospect can arrive while the reviewer is already working on it.

The decision that matters

Choose the identity and allowed update fields before enabling repeats. A contact refresh should not reset a review by accident.

  1. Define the uniqueness rule for the record
  2. Save a sample and add a reviewer note
  3. Send the sample again and inspect the stored facts and note
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

An authenticated request creates or updates the intended prospect record, while invalid requests leave the table unchanged.

Inspect the stored values, intended access behavior, and function logs. A 2xx response without a checked write result is not evidence that the row was saved.

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 Supabase.

How does Unify send data to Supabase?

A Play posts JSON to your deployed Edge Function. Your function validates the request and performs the database operation you implement.[3]

Does disabling verify_jwt make the webhook secure?

No. Disabling the gateway JWT check lets requests reach the handler. The proposed custom-header design must authenticate the caller inside that handler before any privileged action.[4]

Should I put a Supabase service credential in the payload?

Keep database credentials in the function environment. Use a separate receiver secret for the proposed Unify request so the prospect payload contains data rather than database credentials.[6]

Will Row Level Security always protect this write?

It depends on the client and role used in the function. An administrative client can bypass Row Level Security. Deliberately limit what the endpoint is allowed to write.[5]

Will a Supabase database webhook receive the Unify event?

This design receives HTTP through an Edge Function. Supabase Database Webhooks send requests in response to database changes; they are a different direction of integration.[8]

Limits & decisions

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

  • Requires a deployed function and application-specific database schema
  • The custom secret check is code you must implement and test
  • Authentication, authorization, and record uniqueness solve different problems
  • Database changes do not automatically flow back into Unify
  • No live Supabase function or write has been tested

What the connection supports

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

Connection flowCustom webhook
Authenticated prospect intake

POST / JSON, then an explicit database write

Documented behavior at a glance
DecisionWhat to know
ReceiverAn Edge Function handles incoming HTTP requests[3]
Gateway authenticationverify_jwt and handler-level authentication are separate controls[4]
Database accessEdge Functions can connect to Supabase Postgres through a client[5]
CredentialsFunction secrets make server-side configuration available to the handler[6]
DiagnosisFunction logs and invocation details help locate failures[7]

Technical setup reference

References and requirements for the Supabase connection.

Connection requirements and setup checklist

Before connecting

  • A Unify Play with a Webhook action
  • A Supabase project with permission to deploy Edge Functions
  • A destination table, an agreed record identity, and a developer responsible for database access
  • A separate secret for this receiver, kept in function secrets and Unify authentication settings
  1. Define the application record

    Choose the table and the fields this handoff may write. For a review queue, keep received prospect facts separate from reviewer notes and status. Decide how an existing record should be matched before choosing insert or update behavior.[5]

  2. Create an authenticated function

    Deploy an Edge Function named unify-webhook. For the proposed custom-header method, configure verify_jwt = false for that function and implement X-Unify-Webhook-Key validation in the handler. Missing or wrong secrets must fail before database access. This example does not assume Unify provides a provider-specific webhook signature.[3][4]

  3. Keep database credentials on the server

    Store the receiver secret and any privileged database credentials in function secrets. Use the database client with access appropriate to the operation. Administrative access can bypass Row Level Security, so enforce the permitted destination and fields in code.[5][6]

  4. Connect the Unify request

    Use the deployed function URL, POST, JSON, and API Key (Header) with the receiver secret. Inspect Expand preview and send the fictional sample. Map validated payload properties to the actual table columns.[1][2][3]

  5. Check persistence and repeats

    Inspect function logs and the resulting row. Test an invalid credential, a missing field, and a repeated sample. Acknowledge a completed write within the sender deadline, or persist a job before accepting longer work.[2][5][7]

Request configuration

Method
POST
URL pattern
https://YOUR_PROJECT_REF.supabase.co/functions/v1/unify-webhook
Headers
Content-Type: application/json
X-Unify-Webhook-Key: YOUR_WEBHOOK_SECRET
Authentication
Suggested custom authentication: implement a check for X-Unify-Webhook-Key in your receiver and store the expected value as a server-side secret. In Unify, choose API Key (Header), use that header name, and enter the matching value. The header name is chosen for this example; the platform does not validate it automatically. For this custom-header design, set verify_jwt = false only for the receiving function and verify the secret in its handler before accessing data. Disabling the JWT gateway check alone does not authenticate a webhook.

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 }}

Use an explicit mapping from the sample prospect properties to your application columns. Choose a unique identity at the database level when duplicates must be prevented; a read-before-insert check alone can race with another request.

Troubleshooting

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

The function returns 401 before my code runs

Check the function-specific verify_jwt setting. A custom API key header is not a Supabase user JWT. If disabling the gateway check for this design, first make sure the handler enforces its own authentication.[4]

The request arrives but the row is missing

Inspect the returned database error, column types, and the credentials used by the function. Review Row Level Security and permissions for that role instead of assuming webhook receipt grants write access.[5][7]

An update overwrites review work

Limit writable columns to incoming facts. Preserve reviewer notes and status unless changing them is an explicit part of the application contract. Inspect the update result with a repeated fictional record.[5]

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] Supabase: Edge Functions
  4. [4] Supabase: Securing Edge Functions
  5. [5] Supabase: Connecting functions to Postgres
  6. [6] Supabase: Function secrets
  7. [7] Supabase: Function logging
  8. [8] Supabase: Database Webhooks

Get started with Unify

Create your account or book a demo with our team