Replicating 50 Airtable automations into the new platform. Last updated April 2, 2026 (late night session).
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 10 | Repair Completed → Log Date | status_repair = 'Completed' | Sets date_completed = NOW() | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 11 | Parked/Completed → Unprioritized | status_project in (Parked, Completed) | Sets priority_level = 'Unprioritized' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 12 | RFQ Email Sent → Update Status | rfq_sent_date is set | Sets status_project = 'RFQs Sent' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 13 | In Process | status_repair = 'In Progress' | Sets status_project = 'In Process' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 14 | Quote Entered → Update Status | quote_amount set (was NULL) | Sets status = 'Quotes Received' + logs quote_received_date | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 16 | Approval Email Sent → Status | approval_sent flag set | Sets status = 'Waiting On Approval' + logs time_woa | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 17 | Schedule Confirmation | schedule_date_time set + was WOS | Sets status_project = 'Scheduled' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 18 | Visit Active → Update Project | status_repair = 'In Progress' + was Scheduled | Sets status_project = 'In Progress' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 19 | Schedule Request Update | waiting_on_schedule_date set | Sets status_project = 'Waiting On Schedule' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 22 | Project Status Sync | status_repair = 'Completed' | Syncs status_project to 'Completed - Invoice' | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 2 | Link Communication to Month | Record created | Links communication to matching month record | Internal | NewDelivered | PL/pgSQL BEFORE INSERT trigger on member_communication |
| 9 | Project/Repair Dates | Record updated | Logs timestamps for status changes, in-progress, WOE, WOA | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 29 | Find Visit to Link Repair | Record created | Finds most recent visit for property and links it | Internal | NewDelivered | PL/pgSQL AFTER INSERT trigger on repairsprojects |
| 40 | Assigned To Update | Tech assignment changes | Logs assigned_time when tech changes | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on visits |
| 41 | Visit Updated Timestamp | Record updated | Updates updated_at on visit changes | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on visits |
| 48 | VSR → Scheduled | schedule_date_time set + sub_contractor | Sets status to 'Scheduled' for vendor sub-contractor repairs | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger on repairsprojects |
| 21 | Parking Automation | Park field toggled | Park: save priority, set Parked. Unpark: restore priority, set status by sub-contractor flag | Internal | NewDelivered | PL/pgSQL BEFORE UPDATE trigger with 4-branch logic |
| 35 | Reschedule Notification | Visit rescheduled | 7 actions: look up member, create comm, link to visit + member, send email, update tracking | Internal | NewDelivered | Trigger.dev task "reschedule-notification" + Resend |
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 3 | Draft Email - Contract | Button click | Creates draft in member_communication, links via junction | Internal | NewDelivered | POST /api/contracts/[id]/draft-email |
| 4 | Contract Created → Add PM & Home Review | Record created | Auto-creates service line items and links via junction | Internal | NewDelivered | PL/pgSQL AFTER INSERT trigger on contracts |
| 5 | Create Contract from Member | Button click | Creates contract record linked to property | Internal | NewDelivered | Already existed: /api/members/[id]/contracts |
| 23 | Create Property from Member | Button click | Creates property + links via properties__members junction | Internal | NewDelivered | POST /api/members/[id]/properties |
| 24 | New Member → Create Property | Record created | Auto-creates property and links to member on insert | Internal | NewDelivered | PL/pgSQL AFTER INSERT trigger on members |
| 31 | Home Manager Update | Record updated | Updates property HM, creates change log communication | Internal | NewDelivered | POST /api/members/[id]/home-manager-update |
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 1 | Send Email | email_status = 'Sent' | 3-way conditional: project context, contract attachment, or plain | Gmail | NewDelivered | Trigger.dev task "send-email" + Resend |
| 7 | Visit Reminders | Scheduled (7-day, 2-day) | Sends reminder emails before visits | Gmail Script | NewDelivered | Trigger.dev cron "visit-reminders" + Resend (email only, SMS via Lambda TBD) |
| 32 | Approval Automations | Record updated | 7-action: create comm, link to repair + member, update status, send email, log | Internal | NewDelivered | Trigger.dev task "approval-automations" + Resend |
| 33 | New Waiting on Approval | Status changes | Sends approval request email | Gmail | NewDelivered | Trigger.dev task "waiting-on-approval-email" + Resend |
| 47 | Project Reminders | Daily at 9 AM ET | 4-branch: 3/7/10 day WOA reminders + 3-day RFQ vendor follow-up | Internal | NewDelivered | Trigger.dev scheduled cron "project-reminders" + Resend |
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 8 | New Repair Created (14 actions) | Record created | Sets defaults, links to property/member, initializes status and dates | Internal | NewDelivered | Trigger.dev task "new-repair-init" |
| 15 | Add Product (12 actions, 6 branches) | add_product flag set | 6-way branch: creates product from in-repair, form, or fallback fields, resets flags | Internal | NewDelivered | Trigger.dev task "add-product" |
| 20 | PM Workflow (14 actions, 7 branches) | pm_workflow_triggers updated | Central engine: approval emails, vendor RFQs, schedule visits, work completed | Internal | NewDelivered | Trigger.dev task "pm-workflow" with 7-way switch |
| 46 | Property Inactive → Cancel Visits | Property marked inactive | Finds all future non-canceled visits and bulk-cancels them | Internal | NewDelivered | Trigger.dev task "cancel-future-visits" |
| 49 | Sales Emails (23 actions!) | Button click | Multi-email sales sequence: welcome, differentiator, value prop + comm records | Gmail | NewDelivered | Trigger.dev task "sales-emails" + Resend. Full 23-action logic pending script capture. |
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 43 | Visit Created → Acuity | Record created | Creates appointment in Acuity Scheduling | Acuity Script | NewDelivered | Trigger.dev task "create-acuity-appointment" |
| 44 | Reschedule Acuity | Record matches condition | Updates appointment in Acuity | Acuity Script | NewDelivered | Trigger.dev task "reschedule-acuity-appointment" |
| 45 | Cancel Appointment → Remove Date | Record matches condition | Cancels Acuity appointment + conditional email | Acuity Script | NewDelivered | Trigger.dev task "cancel-acuity-appointment" |
| 50 | Automated Scheduling Push to Acuity | Record matches condition | 25-second delay before Acuity reschedule trigger | Acuity Script | NewDelivered | Trigger.dev task "scheduling-delay" (wait.for 25s) |
| 36 | Reschedule Calendar Update | Record matches condition | Updates Google Calendar event (currently via Zapier webhooks) | Google Cal Script | Blocked | Needs Google Calendar OAuth setup to replace 30+ Zapier webhooks |
| 37 | 2-Way Calendar Sync | Record matches condition | Bidirectional Google Calendar sync (1,539 runs/mo via Zapier) | Google Cal Script | Blocked | Needs Google Calendar OAuth setup to replace 30+ Zapier webhooks |
| 25 | Onboard Client in QBO | Record matches condition | Creates client in QuickBooks Online | QuickBooks | Planned | Trigger.dev + QuickBooks API |
| 26 | First Visit Automation | Record matches condition | Creates records on first visit + QB | QuickBooks | Planned | Trigger.dev + QuickBooks API |
| 27 | Annual Trigger | Record matches condition | Annual billing workflow + QB | QuickBooks | Planned | Trigger.dev + QuickBooks API |
| 28 | Contract Signed → Create Visits | Button click | Creates visit records from contracted services + email notification | QuickBooks Script | Planned | Script captured. Needs QuickBooks API for billing portion |
| 30 | Remove Email from Gorgias Rule | Record updated (HM change) | Updates Gorgias routing rules | Gorgias Script | NewDelivered | Trigger.dev task "gorgias-rule-update" |
| 38 | 2-Way User Search (was Zapier) | Email match needed | Matches email to hfhs_team member, assigns tech to visit. Zapier eliminated. | Internal | NewDelivered | Trigger.dev task "match-user-to-team" (direct DB query, no Zapier) |
| 6 | Generate Contract PDF | generate_pdf flag set | Sends contract data to Documint via Zapier for PDF generation | Script | Planned | Script captured. Needs Documint API integration or @react-pdf/renderer |
| 39 | Update Assigned To | Record updated | Matches emails to team members, updates visit assignment | Script | NewDelivered | Trigger.dev task "update-assigned-to" |
| # | Name | Airtable Trigger | What It Does | Integration | Status | Resolution |
|---|---|---|---|---|---|---|
| 34 | Project Wins (15 actions) | Scheduled (recurring) | Daily 3pm: projects won L24h + sales report by rep/market | Cron Script | NewDelivered | Trigger.dev cron "project-wins-report" + Resend |
| 42 | Recurring Every 15 Minutes (2 active scripts) | Every 15 minutes | PM assignment from HM + priority level ranking (2 other scripts disabled in Airtable) | Cron Script | NewDelivered | Trigger.dev cron "recurring-maintenance" |