Hi @Laura Ciriello,
Welcome to the Community.
You're on the right track with your automation idea! Since Zapier can't delay actions for more than 30 days mid-Zap, the best approach is to break your workflow into two Zaps. The first Zap triggers when a new invoice is created in ServiceTitan, waits 30 days, sends a "due soon" email, and stores the invoice info using Storage by Zapier or Google Sheets. The second Zap runs daily, checks if any stored invoices are overdue and unpaid, and sends a reminder every 10 days until paid. Alternatively, you could use Looping + Delay within one Zap if reminders can be limited. Either way, using filters, lookup steps, and a simple tracking system will help manage overdue notifications efficiently.
Feel free to ask if you need further help or have additional questions. We're here to assist you.
Hi @Laura Ciriello 👋
How did you get on with this, did the approach Jammer suggested do the trick?
Keep us updated on how it’s going, want to make sure you’ve got everything you need! 🙂
Thanks for checking back in with me. I’ve been trying what feels like everything to get this zap to work the way I want it to but I genuinely don’t know if it is possible. The biggest problem I am running into right now is that I need to make it polling all the time so that if the balance is paid off, it stops (meaning Jammer’s workflow probably wouldn’t work). I thought about using webhooks for this, but for the quantity of scraping that would be happening, I’d like to avoid spending money on a third party website scraper if I don’t have to. I’m not sure if I can even make it function for individual invoices (using webhooks) as their locations on ServiceTitan would be changing rather frequently. If you have any questions or suggestions, I would be more than happy to answer or try them. If it helps to know, I have the highest level subscription for Zapier so I can use any of the builtin Zapier features for workarounds. Thank you in advance for any help or suggestions you can give.
Happy to lend a hand with this @Laura Ciriello! Hmm, how about we try a different approach 🤔
What you could do is whenever a new invoice is generated in ServiceTitan, have the Zap add a calendar event for the due date in something like Google Calendar for example. Then, you can have another Zap that triggers 1 day before the due date event, checks the current payment status of the invoice and sends an “invoice due soon” email if it’s still not paid. To handle the subsequent reminders, you could have a third Zap that triggers on the day of the due date event, checks to see the current payment status, creates a follow-up calendar event in 10 days time and if it’s not triggered on the same date as the invoice’s due date it then sends a reminder email. This third Zap would continue to create follow-up events every 10 days relating to each specific invoice until the invoice is marked as paid.
Zap 1 - creates the initial due date event
- Trigger: New Invoice (ServiceTitan) triggers when a new invoice is created
- Action: Create Detailed Event (Google Calendar) creates event on the due date for the invoice using the Invoice ID for the Event summary and the customer’s email for the description (as the Search Invoices action only seems to return the customer ID and name).
Zap 2 - sends an “invoice due soon” email
- Trigger: Event Start (Google Calendar) set to trigger 1 day before the event
- Action: Search Invoices (ServiceTitan) searches for the invoice using invoice ID stored in the event details
- Action: Only continue if... (Filter by Zapier) set to only continue if the invoice is still unpaid
- Action: Send Email (Gmail) sends a “invoice due soon” email to the customer
Zap 3 - creates a follow-up event in 10 days time and sends a payment reminder if invoice is still unpaid
- Trigger: Event Start (Google Calendar) set to trigger on the day of the event
- Action: Search Invoices (ServiceTitan) searches for the invoice using invoice ID stored on the event details
- Action: Only continue if... (Filter by Zapier) set to only continue if the invoice is still unpaid
- Action: Create Detailed Event (Google Calendar) creates event in 10 days time (you can use date modifiers like +10d to set the event to be in 10 days time)
- Action: Only continue if... (Filter by Zapier) set to only continue if the invoice due date is not today, to prevent a reminder going out the day after the “invoice due soon” email is sent
- Action: Send Email (Gmail) sends “payment overdue” reminder
If you’ve not worked with Filters in Zaps before I’d recommend checking out these guides to learn more:
Do you think that sort of approach could work for your needs here? If you run into any issues in setting that up just let me know!
Thanks for your idea! I tried that a couple days ago and while it worked, I realized that for it to run the scale we’d need it to and with a few additions we needed to make it more suitable for our needs, the project would take up too many tasks for our account to handle. I am looking into other solutions now and if you can think of any other ideas, I’d be more than happy to try them. My leading idea right now is to use a webscraper and webhooks to pull the data we need, lowering the stress it’d put on Zapier and our task limit, but we’ve noticed some potential problems that could arise with that so we’re not 100% set on that idea. Thanks again for your continued support! We really appreciate it.
You’re right, @Laura Ciriello. That would indeed have been a bit task-heavy!
Instead, perhaps you could try storing a record of all the invoices in Zapier Tables. Suggesting tables here since Zapier Tables actions wouldn’t impact your task usage (see our What does not count toward task usage? guide for more details).
With this approach you would trigger when a new record is added or Updated, and would have different paths for when an invoice is “Due today”, “Overdue 10 days”, “Upcoming 1 days” and run different actions as needed. Paths, also wouldn’t affect your task usage so you’d only use a task for each email that is sent.
I did some testing in tables and was able to get a formula to output whether an invoice was upcoming or overdue by X number of days or due today:

You’d want to select the relevant due date field in your table in place of the INVOICEDUEDATEFIELDHERE text in the following formula code:
IF(
ISNULL(INVOICEDUEDATEFIELDHERE),
"",
IF(
ROUND(
DATEDIFF(UTCNOW(), INVOICEDUEDATEFIELDHERE, "day"),
0
) = 0,
"Due Today",
IF(
INVOICEDUEDATEFIELDHERE < UTCNOW(),
CONCAT(
"Overdue ",
ROUND(
ABS(DATEDIFF(UTCNOW(), INVOICEDUEDATEFIELDHERE, "day")),
0
),
" days"
),
CONCAT(
"Upcoming ",
ROUND(
ABS(DATEDIFF(UTCNOW(), INVOICEDUEDATEFIELDHERE, "day")),
0
),
" days"
)
)
)
)
Which should then output “Due today”, “Overdue X days”, “Upcoming X days” accordingly:

You can learn more about the different formula functions available to use in Tables here: Functions and operators available in Zapier Tables
The Zap itself would look like this:

With this, the Zap would only continue to send an email when a record matches the path conditions, if it doesn’t then no task usage would be incurred.
You’d also need to have a Zap update the invoice record in the table when the invoice is paid e.g. New Payment (Service Titan) trigger, Find Record (Zapier Tables) and Update Record (Zapier Tables). But since triggers and Zapier Tables actions don’t count towards your task usage this would use 0 tasks every time it runs. 😎
The above should be good for the “almost due” and first “overdue” email reminders. While you could set up additional paths for 20 days, 30 days, 40 days etc., the number of paths you can have in a Zap isn’t infinite. Is there a final cut off date for reminders? How long would you let an invoice to go before taking more action than just sending another email? Just wondering if there’s a better way to handle recurring the reminders if there’s not cut-off date—potentially a code step? 🤔
Looking forward to hearing from you!
I think this idea has lots of potential, so thank you for sharing it with me! Unfortunately, once I started building the zap, I realized that we only have the Pro level subscription for Tables and so I can’t use formulas unless I upgrade. Is there a way we change this workflow to work without the formulas in Tables or will we just have to find a new workflow to try? Thanks!
You’re welcome @Laura Ciriello! With that Pro level subscription you’ve got, it should be possible to use Formula fields. Looks like it’s available with both Pro and Advanced Tables plans:

That said, it would be possible to create a similar approach using an app like Airtable instead of Tables, but with that you’d then incur task usage for the equivalent Airtable actions in the Zap. Also, as Airtable’s Free plan is limited to 1,000 records you’d need to take out a paid plan with them if you exceeded that amount.
Alternatively, does ServiceTitan have any in-built functionality to be able to repeatedly notify you of overdue invoices by email, at the desired intervals? If it does, and those email notifications would contain the necessary details, then you could forward those emails to an app like Email Parser which can extract information from emails (see: Trigger Zaps from new parsed emails). The Zap would trigger on the parsed email, find any additional details needed from ServiceTitan, then send out the email reminder to the customer.
Hope that helps to point you in the right direction. Let us know if you get stuck or have any more questions at all.