Skip to content
Zapier case study

Refill reminders, self-rescheduling check-ins and a five-message drip, run from Airtable over SMS

A US telehealth provider keeps its patients, orders and follow-up campaigns in Airtable and texts patients through Heymarket. Its Zaps were built to send refill-due reminders by plan type, monthly check-ins that reschedule themselves until the plan ends, welcome, address and missing-information texts, and a five-message drip for booked calls that stops when the lead orders. All of them are now off.

A US telehealth and prescription-medication providerTelehealthBuilt Aug–Nov 202513 Zaps in the account
Zaps, built August to November 2025
13
messages in the booked-call drip
5
plan types routed to different refill wording
2

The business

The provider runs plan-based programs, monthly and pre-paid, for prescription medication. Airtable is the system of record, with bases for patients, orders, app data and drip campaigns; Heymarket is the SMS channel, with a care inbox and approved message templates; booked calls arrive from Calendly into the drip base.

Most of the messaging is date-driven: a refill is due today, a check-in is due today, a drip message is due on a stored date. So most of the Zaps are scheduled batch jobs that find every matching record and loop over them, writing back to Airtable so nothing is sent twice.

The Zaps were built between August and November 2025. The account has since dropped to Zapier's Free plan and every Zap is off.

Audited 21 Oct 2026. 13 Zaps, all off. The plan is Free: a Pro trial expired and Zapier disabled the multi-step Zaps. None has run in the last 60 days, so task, run and error figures are 0 throughout.

What we built

01

Scheduled patient messages

Daily jobs and record triggers that text patients from approved templates and update Airtable so each message goes once.

  • Scheduled12 steps

    Refill-due reminder, worded by plan type

    • Schedule
    • Formatter
    • Airtable
    • Looping
    • Filter
    • Paths
    • Heymarket
    Trigger
    Schedule – every day at 11:00, weekends included
    What it does
    Every morning it finds every patient whose refill date is today, loops over them, and for each one with a phone number and a refill that is due or pending sends a refill text, using the standard refill template for standard plans and a different one for pre-paid plans, then updates the record.
    The tricky part
    Scheduled batch processing (a date lookup that returns every match, then a loop) with the message routed by plan type, and an Airtable write-back that stops repeat sends.
    Error handling
    Guard filter on phone number and refill status.
    Usage
    0.
    Status
    Off (disabled by the plan), version 1 plus a draft, last edited 17 Sep 2025
  • Scheduled12 steps

    Monthly check-in that reschedules itself

    • Schedule
    • Formatter
    • Airtable
    • Looping
    • Filter
    • Heymarket
    • Paths
    Trigger
    Schedule – every day at 11:00
    What it does
    Every patient whose next follow-up date is today gets the monthly check-in text. The next date is set a month on, unless that falls on or after the end of the patient's plan, in which case the sequence is closed.
    The tricky part
    A self-perpetuating schedule stored in Airtable, with date arithmetic and an end-of-plan stop condition.
    Error handling
    Guard filter on phone number.
    Usage
    0.
    Status
    Off, version 2, last edited 17 Sep 2025
  • Scheduledabout 8 steps

    Missing-information reminder

    • Schedule
    • Airtable
    • Looping
    • Paths
    • Heymarket
    Trigger
    Schedule – weekdays at 11:30
    What it does
    Orders flagged for an information reminder are looped over and routed by what is missing, such as an address, to the matching reminder template.
    The tricky part
    One job covering several kinds of missing information, each with its own wording.
    Error handling
    None stated.
    Usage
    0.
    Status
    Off, last edited 19 Sep 2025
  • 3 steps

    Welcome text a few hours after upload

    • Airtable
    • Delay
    • Heymarket
    Trigger
    Airtable – New or Updated Record in the app-data table, limited to an upload view
    What it does
    New patients get a welcome text five hours after their record is uploaded.
    The tricky part
    A view-limited trigger and a delay, so the text does not arrive the moment a record is imported.
    Error handling
    None stated.
    Usage
    0.
    Status
    Off, version 5, last edited 20 Aug 2025
  • 2 steps

    Address confirmation text

    • Airtable
    • Heymarket
    Trigger
    Airtable – New Record
    What it does
    A new record sends the address-confirmation template.
    The tricky part
    A simple notifier.
    Error handling
    None stated.
    Usage
    0.
    Status
    Off, version 3, last edited 19 Aug 2025
02

Booked-call follow-up drip

A five-message sequence for people who booked a call, paced by dates in Airtable and stopped automatically when the lead orders.

  • 6 steps

    Start the drip with message one

    • Airtable
    • Filter
    • Formatter
    • Delay
    • Heymarket
    Trigger
    Airtable – New Record, a booked call in the drip base
    What it does
    A new booked call waits until its send date, has its phone number formatted, and is sent the first drip template.
    The tricky part
    Delay Until a date stored on the record, rather than a fixed delay.
    Error handling
    Filter.
    Usage
    0.
    Status
    Off, version 3, last edited 9 Sep 2025
  • about 20 steps

    Messages two to five, driven by the record's state

    • Airtable
    • Filter
    • Delay
    • Formatter
    • Paths
    • Heymarket
    Trigger
    Airtable – New or Updated Record in the drip base
    What it does
    While the sequence is active and the fifth message has not gone, the Zap waits until the record's next send date, formats the phone number to US international format, and routes on the last message sent to the next template, then updates the message counter and the next date in Airtable.
    The tricky part
    A state machine in Airtable: each update re-triggers the Zap for the next step, Delay Until handles the timing, and an Active flag lets staff stop a sequence.
    Error handling
    Filter on the last message and the Active flag; phone-number validation.
    Usage
    0.
    Status
    Off, version 3, last edited 9 Sep 2025
  • 9 steps

    Stop the drip when the lead orders

    • Airtable
    • Paths
    • Filter
    Trigger
    Airtable – New Record in orders
    What it does
    When someone who booked a call places an order, their drip record is found by name, falling back to email, and updated so the sales follow-ups stop.
    The tricky part
    Two-key matching, name then email, to end a sequence when the lead converts.
    Error handling
    Filter on the email fallback.
    Usage
    0.
    Status
    Off, version 2, last edited 9 Sep 2025
03

Order checks

A flag on orders that need a closer look.

  • 3 steps

    Flag orders at set price points for review

    • Airtable
    • Filter
    Trigger
    Airtable – New Record in the app-data table
    What it does
    Orders at particular price points, which correspond to plan or dose tiers, are flagged on the record for clinical review.
    The tricky part
    Using the order amount as a proxy for the tier, so a person reviews the orders that need it.
    Error handling
    None stated.
    Usage
    0.
    Status
    Off, version 1 plus a draft, last edited 2 Sep 2025

Data handling

These Zaps handle patient contact details and prescription-refill dates. The audit viewed step configuration only: no run or patient data was opened, sample values were stripped before anything was recorded, and nothing about any patient appears on this page. A build like this belongs under the provider's own privacy and messaging-consent rules, which were outside the audit.

What the counters show

  • No Zap has run in the last 60 days, so there are no run, task or error counters to report.

  • The build covers the provider's whole SMS calendar from one Airtable system of record: refills by plan type, monthly check-ins until the plan ends, welcome, address and missing-information texts, and a five-step drip for booked calls.

What we would change

  • Every Zap is off and the account is on the Free plan, which does not run multi-step Zaps. Nothing on this page is sending messages today.

  • The drip re-triggers on any update to an active record, so the filter on the last message sent and the Active flag are what keep an unrelated edit from sending a message early. We would trigger on the next-date field alone.

  • The stop-on-order Zap matches leads by name before email, and two people with the same name would collide. We would match on email or phone first.

  • Error handling is limited to guard filters. We would add an alert for sends that fail, because a missed refill reminder is the costly failure here.

Four Zaps are not described: three test copies of the follow-up, refill and address Zaps, and one Zap that sent messages from new Airtable records but was never published.

Built with

  • Zapier
  • Airtable
  • Heymarket
  • Formatter
  • Looping
  • Paths

Page copy drafted with AI assistance. Skofi is accountable for it. Editorial policy

Start here

Have a Zapier account like this one?

We start by reading what is already there: every Zap, its counters and its failures. A short call is the fastest way to find out what yours needs.

Book a 15-minute callsaveez@skofi.tech

What happens on the call

  • 15 minutes, no deck
  • We map the process on the call
  • A written scope, or an honest no
Book a call