Automate with
Airtable
Airtable is a relational database that your whole team can use. NVS connects it to every other tool in your stack, feeding it data automatically and using it as the single source of truth for your operations.
Use Cases
When an Airtable record is approved for invoicing, a QuickBooks invoice is created, a Stripe payment link is generated, both IDs are written back, and a payment email is sent — all without touching a single tool manually.
Trigger
Record Updated
airtable.trigger
Airtable fires when any record is updated. The workflow checks whether action is needed.
IF
Status: Approved?
nvs.condition
Only records with status='Approved for Invoicing' proceed. Others exit immediately.
NO
Output
No Action
nvs.end
Record not yet approved. Workflow exits silently.
YES
Create QB Invoice
quickbooks.invoice
Invoice created in QuickBooks with line items from the Airtable record.
Create Payment Link
stripe.paymentlink
Stripe payment link generated and tied to the invoice amount.
Update Record
airtable.table
Airtable record updated with QB invoice ID and Stripe payment URL.
Output
Send Invoice Email
gmail.send
Client emailed with invoice PDF and direct Stripe payment link.
New feedback records are routed by star rating: 5-star reviews trigger a Slack celebration, 3-4 stars send a follow-up survey, and 1-2 stars escalate to support immediately.
Trigger
New Feedback Record
airtable.trigger
A new feedback entry triggers the routing and response pipeline.
Read Rating
nvs.set
Star rating value extracted and normalized from the Airtable record fields.
Switch
Rating
nvs.switch
Routes the record based on star rating tier.
5 stars
Post Win
slack.message
Slack post to #wins: 'Great review from {{name}}: {{quote}}'.
Output
Mark Processed
airtable.table
Record updated: processed=true, routed_to=slack.
3–4 stars
Send Survey
gmail.send
Follow-up survey email sent to gather more specific feedback.
Output
Mark Processed
airtable.table
Record updated: processed=true, routed_to=survey.
1–2 stars
Escalate
slack.message
Urgent Slack alert to #support with customer name and review text.
Output
Mark Processed
airtable.table
Record updated: processed=true, routed_to=escalation.
Raw text fields in Airtable are sent to Claude with a dynamic prompt, the structured JSON response is validated, and if extraction succeeds, the record is updated. Failed extractions get a Slack alert.
Trigger
Record Created
airtable.trigger
A new record with a raw_input field fires the AI extraction pipeline.
Get Prompt Template
airtable.table
Fetches the matching extraction prompt template for this record type.
Extract with AI
openai.gpt-4o
GPT-4o runs the dynamic prompt against the raw input, returning structured JSON.
Validate Output
nvs.code
JavaScript validates the JSON: checks required fields and data types.
IF
Validation Passed?
nvs.condition
Only clean, complete extractions get written back to Airtable.
YES
Output
Update Record
airtable.table
Extracted and validated fields written back to the Airtable record.
NO
Output
Alert Failure
slack.message
Slack alert: 'AI extraction failed for record {{id}} — review manually'.