How to Set Up Auto Schedules
Run automations on a recurring clock schedule — daily, weekly, or monthly — targeting a CRM audience, an external data feed, or a fixed payload.
Auto Schedules let you run an automation on a repeating clock schedule — every morning at 9am, every Monday, the first of each month, or any custom cadence you define. Unlike automations (which fire in response to an event) and auto queues (which work through contacts one by one over time), a schedule fires across your whole source at once, on a fixed recurrence.
You will find Auto Schedules at https://app.trustpager.com/auto/schedules.
How it differs from automations and auto queues
- Automations — event-driven. They fire when something happens (opportunity stage changes, form submitted, etc.).
- Auto Queues — contact-driven sequences. A contact enrols and works through a series of steps over time.
- Auto Schedules — clock-driven broadcasts. At the scheduled time, TrustPager resolves your source and fires your automation once for each row it produces.
Create a schedule
- Go to https://app.trustpager.com/auto/schedules and click New Schedule.
- Give it a name and an optional description.
- Choose the Automation to run — this is the automation that will fire for each row your source produces when the schedule triggers. Make sure the automation is already built and tested before wiring it to a schedule.
- Set the source data (see below).
- Set the recurrence (see below).
- Save. The schedule is inactive by default — activate it when you are ready for it to start firing.
Set your source data
The Source Data panel (right-hand side of the schedule detail page) controls what fires the attached automation each time the schedule runs. There are three source types.
Audience
The automation fires once for each CRM record that matches your filter. There are four audience types:
- Contacts — all contacts, or a filtered subset (by tag, source, location, etc.).
- Opportunities — open opportunities in a pipeline, optionally filtered by stage, owner, or custom fields.
- Users — team members in your workspace.
- Tasks by assignee — contacts filtered by their assigned tasks.
You can preview the current audience before activating. Open the schedule detail page and use the Preview source button. It resolves the filter live and shows you a count and a sample without firing anything.
External feed
TrustPager polls a URL you provide on each cron fire and creates an automation run for every new record in the feed. This is the right source type when your leads or records live in an external system that can expose a JSON endpoint — a CRM, a property portal, a form platform, or anything that can serve a flat list.
Feed URL
The feed must return a flat, top-level JSON array of objects — for example:
[
{ "id": "123", "name": "Jane Smith", "email": "jane@example.com" },
{ "id": "124", "name": "Tom Brown", "email": "tom@example.com" }
]Nested shapes (e.g. { "results": [...] }) are not supported — the feed must be a top-level array.
Most feed URLs include a secret access token embedded directly in the URL. Do not share or screenshot your feed URL — treat it like a password. Anyone with the URL can read your feed data.
Unique ID field
Set this to the field name in your feed that uniquely identifies each record (e.g. id, enquiry_id, listingId). TrustPager uses this field to deduplicate: a record whose unique ID has already been seen will not fire the automation again, even if it reappears in the feed on a later poll.
A record is only marked as seen after its automation run dispatches successfully. If a run fails, the record will be retried on the next fire.
First run
The first time the schedule fires against an external feed, you choose what happens:
- Seed only (default) — TrustPager reads the current feed, marks every record as already seen, and imports nothing. From the next fire on, only records whose unique ID was not in that initial seed are imported. Use this when your feed contains historical data you do not want to backfill.
- Import everything now — TrustPager imports all current feed records on the first fire and deduplicates from the next fire on. Use this when you want to bring in everything the feed currently contains.
The Preview source panel will tell you explicitly which mode is active before the first fire and will show that it will seed and import nothing if Seed only is selected.
Conditions (optional)
You can filter which feed rows get imported by adding Only import rows where... conditions — for example, Email is not empty, or status equals active. Rows that do not match are counted as skipped in the Preview source output and are not imported.
Token names and field mapping
Each feed row becomes the trigger data for one automation run. The field values from the row are available as {{tokens}} inside any action in the attached automation — Create Lead, Send Email, Apply Tags, Set Custom Field, and so on.
Token names are sanitised from your feed's field names: the name is lowercased and any run of non-alphanumeric characters is replaced with a single underscore. For example:
EnquiryIDbecomes{{enquiryid}}Listing Categorybecomes{{listing_category}}Opportunity $becomes{{opportunity}}
Rather than guessing the sanitised names, use the Preview source button to see the exact {{token}} names available from your feed, then reference those names directly in your action config.
Preview source
The Preview source panel for an external feed shows:
- Fetched — total records returned by the feed URL.
- New — records whose unique ID has not been seen before (these would fire the automation).
- Skipped by filters — records that did not match your conditions.
- Already seen — records whose unique ID was seen on a previous run.
It also lists all the available {{token}} names from the feed so you can wire them into your actions before going live.
Fixed values
The automation fires once per schedule run with a single fixed payload you define. There is no per-row iteration — every fire sends the same data. Use this for scheduled jobs that do not need per-record data (for example, a daily internal report trigger or a recurring ping to an external system).
Set the recurrence
Schedules run on a standard cron-style recurrence. You can use the friendly time picker (set a time and pick days of the week) or enter a cron expression directly if you need a more custom cadence.
Common examples:
- Daily at 9am: every day, 09:00
- Every Monday at 8am: Monday only, 08:00
- Weekdays at 5pm: Mon–Fri, 17:00
- Custom (monthly on the 1st at 9am): cron expression
0 9 1 * *
All times are interpreted in your chosen timezone (defaults to Australia/Sydney). Set the correct timezone when creating the schedule — it cannot be assumed from your browser.
Use Preview Cron to validate your expression and see the next 5–10 planned fire times before you activate anything.
Optional limits
You can optionally set:
- End date — the schedule stops firing after this date.
- Max runs — the schedule deactivates automatically after this many fires.
Leave both blank for an ongoing, unlimited schedule.
Activate and monitor
Toggle the schedule active from https://app.trustpager.com/auto/schedules. The next fire time is shown on the schedule card — refresh after activating to confirm it has been calculated.
Each time the schedule fires, a run record is created. Open the schedule detail page to see the full run history — when it fired, how many rows were in the source, and whether any errors occurred.
To trigger a schedule immediately without waiting for the next cron fire — for testing or a one-off catch-up — use the Fire Now button from the detail page. This bypasses the end date and max runs limits.
Troubleshooting
- Schedule not firing — confirm it is set to active. Check that the automation attached to the schedule is also enabled.
- Audience is empty — use Preview source to check your filter. An empty source will cause the schedule to fire with no actions taken (no error is raised).
- Wrong timezone — times are always stored and evaluated in the timezone you set on the schedule, not your browser timezone. Edit the schedule and update the timezone field if needed.
- Automation errored — individual automation failures appear at https://app.trustpager.com/auto/errors. The schedule itself will continue to fire on subsequent runs.
- Feed returning zero new records — open Preview source and check the Already seen count. If all records are already seen, the feed has no new data since the last run. If Fetched is 0, the feed URL may be unreachable or returning an empty array — test the URL directly in your browser.
- Feed shape not supported — the feed must return a flat top-level JSON array. If your endpoint returns a nested object (e.g.
{ "results": [...] }), the feed will not parse correctly. Check with your data source whether a flat-array endpoint is available. - Token names not matching — token names are sanitised (lowercased, non-alphanumeric runs replaced with underscores). Use Preview source to see the exact sanitised names before wiring them into actions.