Guides
Connect Thoughtly to Airtable so lead rows can trigger AI follow-up, pass call context, and receive structured outcomes, summaries, and handoff status automatically.
Last updated
Airtable is where a lot of revenue teams quietly run the work that does not fit cleanly in a CRMCRMThe system of record for leads, contacts, deals, and activity. Thoughtly reads from and writes to your CRM continuously.: partner lead queues, property tables, mortgage pre-application trackers, school inquiry lists, legal intake boards, and campaign-specific follow-up views. The problem starts when that base becomes the system of recordSystem of recordThe authoritative system where customer, lead, policy, loan, appointment, or account data is stored and updated., but the calling process still depends on a person exporting rows, dialing manually, and updating statuses after the fact.
A Thoughtly Airtable integration should make the base operational. New or updated records can triggerTriggerThe event or condition that starts an automated workflow, such as a new lead, missed call, CRM status change, calendar booking, or completed call. voice follow-up, Airtable fields can give the agent context, call outcomes can write back to the same row, and qualified leads can move into a human handoffHuman handoffThe moment an AI agent transfers context, call details, and the next step to a human rep, licensed specialist, or support team. view without another spreadsheet ritual.
This guide walks through the operating model: how to structure the Airtable base, map records into Thoughtly contacts and calls, pass row context into the agent, write outcomes back, and QA the workflowWorkflowAn automated, multi-step process — usually triggered by an event (form fill, new lead) and orchestrating one or more voice / SMS / email actions. before it touches production leads. The details below are intentionally practical. Cute automation demos are easy. Durable lead tracking is less cute, which is why it works.
Airtable is strongest when your lead workflow is relational, campaign-specific, or ops-owned. If Salesforce or HubSpot already owns the entire lifecycle, use the native CRM integration first and reserve Airtable for reporting or one-off workflows. If Airtable is where the team actually reviews rows every day, connect Thoughtly there instead of forcing the operation through a CRM nobody opens.
| Use case | Airtable role | Thoughtly role |
|---|---|---|
| Partner or aggregator leads | Stores incoming records, source details, ownership, and consent fields | Calls each eligible row quickly, captures fit, and writes disposition back |
| Real estate or mortgage intake | Tracks contacts, properties, loan scenarios, location, timeline, and linked activities | Uses row context in the conversation and routes qualified leads to the right rep |
| Education enrollment follow-up | Tracks programs of interest, inquiry dates, counselor ownership, and contact attempts | Calls or texts new inquiries, handles objections, and books counselor conversations |
| Campaign testing | Holds a small lead cohort before CRM rollout | Runs the test agent, logs outcomes, and exposes conversion patterns before production wiring |
| Lead handoff reporting | Powers views for hot leads, callbacks, bad numbers, and no-response records | Updates status, summary, transcript link, and next step after each call |
The important distinction: Airtable should remain the source of truth for the workflow you are automating. Thoughtly should not create a second shadow pipeline. It should read the row, act on the row, and write enough structured outcome data that the team can trust the base the next morning.
Most failed Airtable calling projects fail before the integration starts. The base looks understandable to the person who built it, but it does not make the state of a lead obvious enough for automation. Fix that first. A voice agentVoice agentAn autonomous, conversational interface that interacts with humans over the phone — answering, qualifying, and routing calls without human staffing. needs clear eligibilityEligibilityThe fit criteria that determine whether a prospect can move forward, such as service area, insurance coverage, loan type, location, age, or program requirements., contact details, context, and write-back fields.
A simple setup can run from one Leads table. A more durable setup usually separates Leads, Accounts or Households, Activities, and Owners. The exact model depends on your business, but avoid cramming every update into one long text field. Airtable is relational; use that advantage.
For smaller teams, one Leads table plus a clean set of call outcome fields is enough. Add linked tables when you need auditability, multiple activities per lead, or reporting by account, property, campaign, or application.
At minimum, each callable row needs a phone number, consent status, current lifecycle status, owner or routing signal, and enough context for the agent to sound prepared. For high-consideration consumer funnels, that context is usually intent, urgency, location or service areaService areaThe geography where a business can serve a prospect. Service-area checks prevent routing or booking leads a team cannot actually handle., eligibility details, preferred next step, and source.
| Field | Suggested type | Why it matters |
|---|---|---|
| Full name | Single line text | Lets the agent personalize the opener and lets humans identify the lead quickly |
| Phone | Phone number | Primary dial target; normalize country code before launch |
| Fallback channel and useful for booking confirmations | ||
| Lead source | Single select | Helps compare aggregator, paid, referral, and organic performance |
| Consent status | Single select or checkbox | Prevents outreach to records that should not be contacted |
| Do not contact | Checkbox | Hard stop for suppression logic |
| Status | Single select | Controls whether a row is New, Calling, Qualified, Callback, Nurture, Closed, or Suppressed |
| Owner | Collaborator or linked record | Routes hot leads to the right rep, producer, counselor, or loan officer |
| Service area or location | Single select or text | Lets the agent confirm fit before transferring or booking |
| Intent or need | Long text or single select | Tells the agent why the person raised their hand |
| Preferred callback time | Date/time | Supports respectful retries and scheduled follow-up |
| Last Thoughtly call ID | Single line text | Makes troubleshooting and audit lookup easier |
| Last outcome | Single select | Powers views and reporting |
| Last summary | Long text | Gives humans context without reading a transcript |
| Transcript link | URL | Preserves the full conversation record when available |
| Next step | Single select | Makes the handoff explicit: book, transfer, retry, nurture, suppress |
Keep the first version narrow. If the agent only needs six context fields to make a good call, do not map thirty. Every extra field is another place for stale data, confusing prompts, and mystery behavior to hide.
Thoughtly’s public integration page describes the Airtable workflow as OAuth-based: connect the Airtable account, choose the objects or records Thoughtly should read and write, pick the trigger, test against a real row, and then go live. The product docs currently mark the Airtable docs page as not yet available, so treat your workspace UI as the source of truth for exact labels if they differ. The operating pattern below is the stable part.
Use a dedicated integration user when your governance model allows it. If a personal Airtable account owns the connection, offboarding that person later can silently break the workflow. Yes, the least glamorous part of automation is account ownership. It is also the part that saves your Friday afternoon.
There are three common ways to decide when Thoughtly should call an Airtable lead: a new row, a status change, or a scheduled sweep. Pick based on the urgency of the lead sourceLead sourceThe channel, campaign, marketplace, referral partner, or form that generated a lead. Lead source often determines routing, compliance rules, and follow-up cadence. and how much human review you need before contact.
| Trigger pattern | Use when | Watch for |
|---|---|---|
| New row | Inbound form fills, marketplace leads, quote requests, or other high-intent records should be called immediately | Only use if consent and required fields are present at row creation |
| Status changes to Call Now | A human or upstream automation reviews the row before outreach | Status hygiene matters; lock down who can move rows into the callable state |
| Filtered view entry | Airtable formulas decide eligibility, such as consent true, phone present, and not contacted today | Formula logic must be documented or nobody will know why a row did not call |
| Scheduled sweep | You are running daily re-engagement, old inquiry cleanup, or lower-urgency campaigns | Pair with quiet hours, attempt limits, and suppression checks |
For true speed-to-lead workflows, avoid scheduled sweeps. A new insurance quote requestQuote requestAn inbound request for pricing or coverage information, common in insurance, mortgage, home services, solar, automotive, and other high-consideration funnels. or mortgage rate inquiry should not wait for the next batch. For aged-lead programs, a scheduled sweep is often safer because it lets you cap volume, respect time windows, and review the list before calls begin.
Even if you trigger from new rows, create a view that shows only rows eligible for Thoughtly outreach. This gives operators a visible control panel and gives QA a fast way to inspect what the automation sees.
Mapping has two jobs: identify the person to contact and give the agent enough context to run the conversation. For outbound call steps, Thoughtly automations can pass metadata as a JSON object for the call. Metadata is temporary and lives only for that call. Attributes persist on the Thoughtly contact and are better for facts you want to reuse across calls.
Use metadata for campaign-specific context such as lead source, program interest, property address, inquiry date, or script version. Use attributes for persistent traits such as region, preferred language, account type, eligibility tier, or long-term suppression dates.
{
"airtable_record_id": "recXXXXXXXXXXXXXX",
"lead_source": "mortgage_rate_form",
"intent": "purchase mortgage inquiry",
"service_area": "Austin, TX",
"preferred_next_step": "speak with loan officer",
"owner_name": "Maya Chen",
"owner_phone": "+12125550144",
"campaign": "june_purchase_inquiries"
}Do not pass the whole Airtable row because it is available. Pass the fields the agent needs to make a better decision. Long, messy metadata increases prompt noise and makes it harder to debug why an agent said something odd.
In Thoughtly agent prompts, metadata values can be referenced with {{metadata.VARIABLEVariableA named value the voice agent stores during a conversation — caller name, intent, qualifying answers — and uses to drive routing and post-call actions._NAME}}. Persistent contact attributes can be referenced with {{metadata.system.contact.attributes.ATTRIBUTE_NAME}}. Keep the references simple and test pronunciation with a real call before production.
For example, an agent might use the inquiry type and service area in its opening question:
You are calling about the lead's recent {{metadata.intent}}.
Confirm whether they are still looking in {{metadata.service_area}}.
If they are interested and eligible, offer to connect them with {{metadata.owner_name}}.Avoid making the agent read internal codes aloud. If Airtable uses values like MKT_AGG_04 or TX_PUR_HELOC, map those to human-readable labels before they reach the prompt. Leads do not need to hear your database naming conventions. Nobody does, really.
The automation should do more than dial a phone number. It should check eligibility, create or update a contact if needed, place the call with the right context, and handle failures in a way the Airtable base can show.
If your Airtable connector is not available in your workspace yet, you can still use the same architecture with Airtable Automation sending a webhookWebhookAn event-based integration that sends data from one system to another when something happens, such as a form submission, booked appointment, or completed call. to Thoughtly. Thoughtly supports incoming webhook triggers for automations and webhook-triggered automation endpoints. The payload should include a durable record ID so post-call write-back can find the original row.
Always pass the Airtable record ID into the call metadata. Phone numbers change, emails have typos, and names are not identifiers. The record ID gives your post-call workflow a reliable key for updating the exact row that launched the call.
{
"event_id": "airtable-recXXXXXXXXXXXXXX-2026-06-21T14:30:00Z",
"airtable_record_id": "recXXXXXXXXXXXXXX",
"contact": {
"first_name": "Sofia",
"phone": "+18001234567",
"email": "[email protected]"
},
"intent": "insurance quote request",
"consent_status": "consented"
}Airtable reporting only works if the agent captures structured outcomes. A nice transcriptTranscriptThe text record of a voice conversation, used for review, training, compliance audit, and search. is not enough. Decide which variables matter before you build the call flow, then configure the agent to collect them during the conversation.
| Variable | Example values | How Airtable uses it |
|---|---|---|
| call_outcome | qualified, callback, voicemail, no_answer, not_interested, bad_number, wrong_person, do_not_contact | Primary status and reporting field |
| lead_intent | quote, appointment, application, consultation, unsure | Segmentation and follow-up route |
| urgency | today, this_week, this_month, researching | Priority views and rep SLA |
| location_fit | true, false, unknown | Eligibility and service-area routing |
| consent_confirmed | true, false | Compliance/audit field when your process requires confirmation |
| preferred_next_step | transfer, booked_meeting, sms_link, callback, nurture | Determines what humans or automations do next |
| handoff_owner | owner ID or owner name | Routes the lead to the right person |
| summary | Plain-language call summary | Human-readable context in the Airtable row |
Use single-select fields in Airtable for outcomes wherever possible. Free-text outcomes turn dashboards into archaeology. A long summary field is useful, but the operational state should be structured.
Map the agent’s outcomes to the statuses your team already uses. A common pattern is:
For post-call workflows, Thoughtly’s docs recommend using Automations with the On Call Completed trigger instead of legacy post-call settings. That trigger exposes call data such as duration, outcomes, variables, transfers, voicemail detectionVoicemail detectionVoicemail detection is the ability to identify when a call reaches a voicemail greeting instead of a live person, then trigger the right message, callback, or alternate-channel follow-up., and transcript structure. Use it to update Airtable after each call.
| Airtable field | Write-back value |
|---|---|
| Last Thoughtly call ID | Call ID from the completed call |
| Last attempted at | Call start or completion timestamp |
| Attempt count | Increment by one |
| Last outcome | Normalized disposition from agent variables or call result |
| Status | Mapped lifecycle status such as Qualified, Callback, Nurture, Suppressed, or Retry |
| Last summary | Short summary for human review |
| Transcript link | Link to call history or transcript when available |
| Recording link | Link only when your compliance policy allows it |
| Next follow-up at | Callback time or next retry timestamp |
| Owner | Rep, producer, counselor, or operator assigned to continue |
| Suppress future outreach | True when the caller opts out, asks not to be contacted, or fails eligibility rules |
If you maintain an Activities table, create one activity row per call as well as updating the lead row. The lead row should show current state. The Activities table should preserve history. That distinction keeps the main table useful without losing audit detail.
Retries happen. Webhooks retry. Users double-click buttons. Automations get re-run during testing. Protect Airtable from duplicate activity rows by writing an idempotency key such as call ID or event ID. If the key already exists, update the existing activity instead of creating another one.
The integration is only useful if people can work from it. Create views that reflect operating decisions, not database trivia. A manager should be able to open Airtable and immediately see what needs attention.
| View | Filter logic | Owner |
|---|---|---|
| Ready for Thoughtly | Callable status, consent approved, phone present, not suppressed | Ops |
| Calling errors | Last outcome is integration_error, bad_number, or missing_required_field | Ops |
| Hot leads | Last outcome is qualified, transfer_requested, or booked | Sales or enrollment |
| Callbacks due today | Next follow-up at is today and status is callback | Rep or queue manager |
| Needs human review | Outcome is objection, edge_case, complaint, or summary contains uncertainty | Manager |
| Suppressed | Do not contact true or consent revoked | Compliance/ops |
| Campaign performance | Grouped by lead source, campaign, owner, and outcome | RevOps |
Resist the urge to make every view operational. Some views are for debugging, some are for reporting, and some are for daily work. Label them clearly so the team does not run the business from a QA scratchpad.
Do not test only the perfect lead row. Production data is allergic to perfection. Create a test view with good records, missing fields, invalid numbers, ambiguous consent, owners in different territories, and callback requests. Then run the full workflow in draft or sandbox mode before enabling production triggers.
Run at least five to ten internal test calls before using real leads. Then run a small production pilot before opening the full base. The goal is not to prove the happy pathHappy pathThe ideal conversation flow where every input matches expectations and the agent reaches the intended outcome with no detours. works. The goal is to find the weird paths while the blast radius is tiny.
If the base is the system of record, write back structured outcomes and preserve history. If you only export rows and re-import summaries, you have built a spreadsheet-shaped call center, not a workflow.
New rows often arrive incomplete. Use required field checks, consent fields, and a callable status before dialing. Speed matters, but calling bad records quickly is still bad. Just faster.
Airtable should not need to parse prose to know what happened. Capture a normalized outcome variable and map it to a single-select field. Summaries are for humans; statuses are for systems.
If humans receive hot leads, route them correctly. Pass owner context into the call and write ownership back after the call. Otherwise the agent can create qualified demand that lands in nobody’s queue. That is technically automation, but only in the way a leaf blower automates cleaning a desk.
If someone opts out, asks not to be contacted, is the wrong person, or fails contact eligibility, the Airtable row must reflect that. Suppression logic belongs in the base, not in someone’s memory.
Thoughtly’s public integration copy describes scoped OAuthOAuthAn authentication standard that lets Thoughtly connect to your CRM or app without storing your password. access, revocable tokens, encryption in transit and at rest for data passed to Airtable, and SOC 2 Type II and HIPAA-ready controls. That does not remove your responsibility to design the workflow safely.
For regulated industries such as insurance, mortgage, financial services, education, healthcare, and legal intake, align your Airtable fields with the compliance fields your team already audits: consent source, consent timestamp, state or jurisdiction, recording notice, DNC status, and opt-outOpt-outA recipient’s request to stop receiving calls or messages. Compliant systems must capture opt-outs and suppress future outreach where required. history.
Start with one workflow and one table. A good first project is a narrow inbound lead source where the team already trusts Airtable, the call script is clear, and the handoff path is obvious.
| Phase | What to do | Exit criteria |
|---|---|---|
| Day 1: base cleanup | Add eligibility, status, owner, context, and output fields | A test view shows only callable rows |
| Day 2: automation draft | Connect Airtable, map fields, pass metadata, and call internal test contacts | Calls launch with correct context and no unsafe rows are called |
| Day 3: write-back | Configure On Call Completed workflow and update Airtable outcomes | Each test call updates status, summary, attempt count, and transcript link |
| Days 4-5: pilot | Run 25-50 real leads from one source during staffed hours | Humans can work from Hot Leads and Callback views without manual cleanup |
| Week 2: expand | Add retry rules, activity history, notifications, and reporting views | Managers can see connect rate, qualified rate, callbacks, and failure reasons by source |
Once that works, expand to adjacent sources or additional tables. Do not wire every base on day one. Airtable makes it dangerously easy to build sprawling workflows. Thoughtly makes it easy to call every lead. Combine those powers carefully.
Yes, when Airtable is already how your team tracks leads, owners, statuses, and next steps. The key is to keep Airtable as the visible source of truth and use Thoughtly as the voice, SMS, and follow-up layer that updates it. For enterprise CRM processes with complex permissions, forecasting, and pipeline governance, use Salesforce, HubSpot, or your CRM as the primary system instead.
Do both if you need audit history. Update the lead row with the latest status, last outcome, summary, and next step. Create a separate Activity row for each call, text, email, or booking if you want a full timeline.
Pass only fields that improve the conversation or routing decision: name, phone, intent, location, service area, source, owner, eligibility details, prior status, and preferred next step. Avoid dumping the full Airtable record into metadata.
Use the Airtable record ID as the durable key for write-back, and use phone, email, or an external ID to match contacts. For Activity rows, store the Thoughtly call ID or webhook event ID and make retry behavior idempotent.
Yes. Airtable Automations can send a webhook payload into Thoughtly, and Thoughtly automations can use incoming webhook triggers. Include the Airtable record ID in the payload so the post-call workflow can update the original row.
Use a new-row trigger for high-intent inbound leads where consent and required fields arrive with the record. Use a status change such as Call Now when a human or upstream process should review the row first. Use scheduled sweeps for aged leads or lower-urgency campaigns.