Review, refine, and approve extracted data before it reaches your CRM, Slack, or Google Sheets — your quality gate between AI extraction and external delivery.
Destinations
Destinations are smart review tables that sit between your AI‑extracted data and your external tools. Instead of sending raw, unverified data straight to your CRM or spreadsheet, Destinations give you a structured place to review, correct, and approve it first.
Think of it as quality control for your data pipeline.
Why Destinations?
When someone fills out your form, Sayify's AI automatically extracts structured data — names, emails, budgets, scores, and more. But AI isn't perfect. A misspelled email or a wrong budget figure can cause real problems downstream.
Destinations solve this by adding a simple, powerful review step:
| Without Destinations | With Destinations |
|---|---|
| AI extracts data → instantly pushed to CRM | AI extracts data → reviewed by your team → pushed to CRM |
| Typos and errors reach your tools | Errors are caught and corrected first |
| No audit trail of what was sent | Full history of who reviewed what and when |
| All‑or‑nothing delivery | Approve the good leads, reject the bad ones |
:::tip When to use Destinations
Destinations shine when data accuracy matters — lead qualification, client intake, support triage, or any workflow where you need a human eye before data leaves Sayify.
:::
How It Works — The Big Picture
Here's the complete journey of a response through the Destinations system:
┌─────────────────────────────────────────────────────────────────┐
│ THE DESTINATIONS FLOW │
└─────────────────────────────────────────────────────────────────┘
① COLLECT ② EXTRACT ③ ROUTE
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Respondent │────────│ AI Engine │────────│ Workflow │
│ fills form │ │ extracts │ │ Rule routes │
│ │ │ name, email │ │ to review │
│ │ │ budget, etc │ │ table │
└──────────────┘ └──────────────┘ └──────┬───────┘
│
▼
④ REVIEW ⑤ APPROVE ⑥ DELIVER
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Your team │────────│ Click │────────│ Data pushed │
│ reviews the │ │ "Approve" │ │ to Slack, │
│ data, fixes │ │ when ready │ │ Sheets, CRM │
│ any errors │ │ │ │ webhook │
└──────────────┘ └──────────────┘ └──────────────┘
Let's walk through each step in detail.
Step 1: Creating a Destination Table
A Destination is essentially a review table — like a spreadsheet with specific columns, tied to a purpose.
Automatic Creation
When you create a form with a specific use case (Lead Qualification, Client Intake, or Support Triage), Sayify automatically creates a default Destination table for you. The columns are auto‑generated from your form's extraction schema.
For example, if your Lead Qualification form extracts email, budget, and company_size, your Destination table will have those exact columns ready to go.
Manual Creation
You can also create Destinations manually from the Destinations page in your sidebar. This gives you full control over:
| Setting | What it controls |
|---|---|
| Name | A human‑friendly label (e.g., "Qualified Leads Q2") |
| Use Case | General, Lead Qualification, Client Intake, or Support Triage |
| Columns | What data fields appear in the table |
| Linked Integrations | Where approved data gets sent (Slack, Sheets, webhooks, etc.) |
| Access Control | Who on your team can view, edit, or approve items |
Column Types
Each column in your Destination table has a type that determines how it's displayed and validated:
| Column Type | Best For | Example |
|---|---|---|
| Text | Names, emails, descriptions | "Jane Doe", "jane@acme.com" |
| Number | Scores, budgets, quantities | 85, $50,000 |
| Enum | Fixed categories you define | "Hot", "Warm", "Cold" |
| Date | Timestamps, deadlines | "2026‑04‑24" |
| Boolean | Yes/no fields | / |
| Status | Stage or lifecycle tracking | "Contacted", "Signed" |
| User | Team member assignment | "Alex M." |
Column Sources
Columns pull their data from different places automatically:
| Source | What it reads |
|---|---|
| Extracted Data | AI‑extracted values from form responses (name, email, budget) |
| Use‑Case Metrics | Calculated scores like lead score, urgency level |
| Case Attribute | Case status, priority, sentiment, category |
| Contact Field | Phone number, company, title from the contact record |
| Manual Entry | Left blank — your reviewer fills it in during review |
Step 2: Routing Cases to Your Table
Once your Destination table exists, cases need to be routed into it. This happens automatically via Workflow Rules.
How Routing Works
┌─────────────────────────────────────────────────────┐
│ WORKFLOW RULE EXAMPLE │
├─────────────────────────────────────────────────────┤
│ │
│ IF: lead_score >= 60 │
│ AND: sentiment = "positive" │
│ │
│ THEN: Route to → "Qualified Leads" table │
│ │
└─────────────────────────────────────────────────────┘
You set up routing rules in your form's Automation settings. When a new response comes in and the AI analysis is complete, the workflow engine evaluates your rules and routes matching cases to the right Destination table.
:::note Routing is idempotent
If a case has already been routed to a Destination, it won't create a duplicate — the system skips it automatically. Each case can appear at most once per Destination table.
:::
What Happens During Routing
When a case is routed to your Destination:
A snapshot is taken — The system captures the current values of all your column fields at that moment. This preserves the data as it was when routing happened, even if the original case is updated later.
Confidence scores are preserved — For AI‑extracted fields, the confidence level (how sure the AI was) is stored alongside the value. Low‑confidence values can be flagged for extra attention during review.
Contact information is linked — If a contact record exists for the respondent, it's automatically linked to the Destination item.
An audit event is logged — A "Routed to Destination" event appears in the case's activity timeline for full traceability.
Step 3: Reviewing Items
This is where the magic happens. Open your Destination table and you'll see a clean, spreadsheet‑like view of all routed items.
The Review Table
Each row in your table represents one case, with columns showing the extracted and computed values. Items arrive with a Pending Review status.
Item Statuses
| Status | Badge | Meaning |
|---|---|---|
| Pending Review | Blue | Just arrived — waiting for someone to look at it |
| Approved | Green | Reviewed and confirmed — ready for delivery |
| Rejected | Red | Reviewed and declined — won't be sent anywhere |
| Needs Info | Yellow | Something's missing — flagged for follow‑up |
Editing Values
During review, your team can edit any value directly in the table. This is perfect for:
- Correcting a misspelled email address
- Adjusting an AI‑estimated budget
- Adding notes or categorisation
When a value is edited, Sayify keeps track of:
- The original value (what the AI extracted)
- The corrected value (what the reviewer entered)
- Who made the edit and when
This means you always have a complete audit trail, even after corrections.
Filtering & Search
Use the filter bar at the top to quickly find items:
| Filter | Options |
|---|---|
| Status | Pending Review, Approved, Rejected, Needs Info |
| Search | Free‑text search across all values |
| Assigned To | Filter by team member assignment |
Assigning Items
You can assign items to specific team members for review. This helps distribute the workload and ensures accountability.
Step 4: Approving & Rejecting
When you're satisfied with an item's data, you have two options:
Approve
Click Approve to confirm the data is accurate and ready for delivery. This:
- Sets the status to Approved
- Records who approved it and when
- Triggers automatic delivery to all linked integrations (Slack, Google Sheets, webhooks, etc.)
Reject
Click Reject to decline the item. This:
- Sets the status to Rejected
- Records who rejected it and when
- Does not send anything — the data stays in Sayify and is never pushed externally
Bulk Actions
Need to process many items at once? Select multiple rows and use the bulk action bar to Approve All or Reject All in one click.
:::warning Approval is the trigger
Data is only sent to your integrations after explicit approval. There is no automatic delivery of unreviewed data. This is by design — your team is always the final gatekeeper.
:::
Step 5: Automatic Delivery to Integrations
When you approve an item, Sayify automatically sends the reviewed data to every integration linked to that Destination.
Delivery Flow
┌───────────────────────────────────────────────────────────────┐
│ APPROVE → PUSH PIPELINE │
└───────────────────────────────────────────────────────────────┘
You click "Approve"
│
▼
┌─────────────────────────┐
│ Build approved payload │
│ (uses reviewed values) │
└────────────┬────────────┘
│
┌────────────┴────────────┐
│ For each linked │
│ integration: │
└────────────┬────────────┘
│
┌───────────────┼───────────────┐
│ │ │
▼ ▼ ▼
┌───────────┐ ┌───────────┐ ┌───────────┐
│ Webhook │ │ Slack │ │ Google │
│ POST to │ │ Message │ │ Sheets │
│ your URL │ │ posted │ │ row │
│ │ │ to your │ │ appended │
│ │ │ channel │ │ │
└───────────┘ └───────────┘ └───────────┘
What Gets Sent
The payload includes your reviewed and corrected values — not the raw AI output. So if your reviewer fixed an email from jane@acme.con to jane@acme.com, the corrected version is what reaches your CRM.
The data sent also includes helpful metadata:
| Field | Content |
|---|---|
| Your column values | The reviewed data (email, budget, lead score, etc.) |
| Contact info | Name, email, phone, company from the contact record |
| Review metadata | Who approved it, when, which Destination it came from |
Supported Integrations
| Integration | How it delivers | What you see |
|---|---|---|
| Webhook | HTTP POST to your URL | Full JSON payload with all values |
| Zapier | Triggers your Zap | Flat key‑value data Zapier can map to any app |
| Slack | Block Kit message | Formatted card in your chosen Slack channel |
| Google Sheets | Row append | New row added to your spreadsheet |
Retry & Reliability
If a delivery fails (network issue, server error), Sayify automatically retries with increasing delays. Each integration is tracked independently — if Slack succeeds but your webhook fails, only the webhook is retried. Nothing gets delivered twice.
Access Control
Destinations have fine‑grained access control to keep your data secure and your team organised.
Permission Levels
| Level | Can view items | Can edit values | Can approve / reject |
|---|---|---|---|
| Viewer | |||
| Editor | |||
| Reviewer | |||
| Admin / Owner |
You can assign access levels per Destination, so your sales team might have full control over "Qualified Leads" while your support team has their own "Support Triage" table.
:::note Workspace Viewers
Users with the Viewer role at the workspace level can only see Destination tables — they cannot create, edit, or approve anything.
:::
Dashboard Analytics
Your Dashboard includes a Destination Pipeline widget that shows:
| Metric | What it tells you |
|---|---|
| Total Routed | How many cases have been sent to Destinations |
| Pending Review | How many items are waiting for review right now |
| Approved | How many items have been approved and delivered |
| Rejected | How many items were declined |
| Push Success / Fail | How many integration deliveries succeeded or failed |
This gives you an at‑a‑glance view of your review pipeline health — so you can spot backlogs before they become problems.
Tips for Getting the Most from Destinations
Start with auto‑created tables — When you set a use case on your form, a default table is created automatically. Use it as a starting point and customise later.
Set up routing rules early — Go to your form's Automation settings and add a "Route to Destination" action. This ensures every relevant case lands in your review table without manual effort.
Use "Needs Info" for incomplete data — Don't reject an item just because one field is missing. Mark it as "Needs Info" so your team knows to follow up.
Review daily in batches — Open your Destination table each morning, sort by newest, and use bulk approve / reject to process items efficiently.
Link your integrations before the first approval — Connect your Slack channel, Google Sheet, or webhook before you start approving items. That way, approved data flows to the right places immediately.
Use column types wisely — Enum columns with predefined options ("Hot", "Warm", "Cold") make reviewing faster than free‑text fields, because reviewers just pick from a list.
Check confidence scores — AI‑extracted values with low confidence may need extra attention. Use these scores to prioritise your review effort.
Frequently Asked Questions
Can I route one case to multiple Destinations?
Yes! You can set up multiple workflow rules that route to different tables. For example, route high‑score leads to "Qualified Leads" and low‑score ones to "Nurture Pipeline".
What happens if I edit the original case after routing?
Nothing changes in the Destination table. Destination items are snapshots — they preserve the values at the time of routing. This ensures historical integrity.
Can I re‑approve a rejected item?
Not directly. If an item was rejected by mistake, you would need to re‑route the case. This is intentional to maintain a clean audit trail.
Is there a limit on columns?
You can have up to 30 columns per Destination table. If you're approaching 20, you'll see a gentle warning.
Do all plans include Destinations?
Yes — Destinations are included on all Sayify plans. However, specific integration types (Slack, Google Sheets, Zapier) may require the corresponding plan feature to be enabled.
What's Next?
- Inbox — Where all your cases live before routing.
- Alerts — Set up automatic rules that trigger routing and notifications.
- Webhooks — Learn how to configure webhook integrations.
- Key Concepts — Review all platform building blocks.