An appointment-reminder workflow is tied to a calendar, and that calendar is account-specific — which is exactly why a plain copy stops working. Here is how to move the whole reminder sequence into another account with its calendar and timing rewired.
Appointment-reminder sequences are among the automations agencies rebuild most often. Nearly every client with a calendar needs one, and they look almost identical from account to account — so it is frustrating that GoHighLevel gives you no clean way to carry the one you have perfected into the next account. Native duplication copies a workflow only inside the sub-account it already lives in, and the sticking point for a reminder flow is its calendar: that link is account-specific and does not survive a plain copy. This guide explains the calendar dependency, then shows how to save the workflow once and deploy it into each account with the calendar matched for you.
A reminder workflow usually starts from a calendar event. Its trigger is "Appointment" or "Customer Booked" on a particular calendar, and from there it runs a short sequence of waits and messages: a confirmation the moment someone books, a reminder the day before, another an hour out, and often a follow-up if the appointment is marked no-show. It may also add a tag, update a custom field, or move an opportunity so the pipeline reflects the booking. It is small by step count, but every step leans on records that live inside the account it was built in.
The reference that matters most in a reminder workflow is the calendar itself. GoHighLevel stores the calendar on the trigger as an id — a string unique to the account it was created in — not as the name you read in the builder. Two accounts can each have a calendar called "Discovery Call" and still hold completely different ids for it.
So when you take the raw workflow into a second account, that calendar id points at nothing. The destination has its own calendars with their own ids, so the trigger references a calendar that does not exist there. The workflow looks intact in the editor, but its starting trigger is dangling and in practice never fires — one of the most common reasons a copied workflow goes quiet.
The good news is that everything between the trigger and the finish line travels intact. The wait steps — one day before, one hour before, whatever offsets you set — are part of the workflow build, so they come across unchanged; you do not re-enter a single timing value. The message actions come across too, with their text and the exact order you arranged them in.
What does not travel is the sending infrastructure underneath those messages. A from-address, a sending domain, a phone number and its A2P registration all belong to the destination account, not to the workflow. The reminder steps arrive wired correctly, but the SMS and email they send go out through whatever the new account has connected. Before you switch the workflow on, confirm the destination has a verified phone number and a sending domain, or the steps will run and the messages will not leave.
ExportGHL Workflows treats the move as three steps — save, check, then deploy — so one perfected reminder workflow becomes something you deploy into each account rather than rebuild every time.
Because the workflow sits in your library, putting the same reminders into the next account is just another deploy — you save it once and deploy it as many times as you manage accounts, without re-saving anything.
The cross-account remap is what lets the calendar trigger survive the move. On a cross-account deploy, ExportGHL automatically reads the calendar the trigger points at, takes its name, and looks for a calendar with the same name in the destination. Find a match and it rewrites the trigger's id to the destination calendar's id, so a booking on that calendar starts the reminders exactly as it did in the source.
It does the same for every other account-scoped reference at once — the tags it adds, the pipeline and stage it moves opportunities to, the custom fields it updates, the user it assigns — each matched by name against the destination and rewritten. The cleanest result comes from checking that the destination calendar is named the same as the source before you deploy.
Remap only rewrites what it can confidently match. If the destination has no calendar with the same name — because the calendar has not been built yet, or it is named differently — ExportGHL does not guess, and it does not quietly point the trigger at the nearest calendar it can find. It flags the calendar as unmapped and deploys the workflow as a draft instead of publishing it broken.
A draft never runs, so there is no window where bad reminders fire. You have two clean options: create or rename a calendar in the destination to match the source name and redeploy, or open the draft, pick the correct calendar on the trigger by hand, and publish. Either way the reminders end up pointed at a real calendar before anything goes live.
The full end-to-end move, including accounts that are not your own, is covered in copy a workflow between accounts. Your first workflow is free with no card, then you continue on pay-as-you-go credits that never expire or a one-time Toolkit licence — see pricing.
No credit card. Save your appointment-reminder workflow once and deploy it into each account, with the calendar matched for you.
Start free