Create Subscription From Template
Table of Contents
- Overview
- Use Cases
- Prerequisites
- Create a Template Schedule First
- Configuration
- Template Schedule
- User ID Override (optional)
- Duplicate Policy
- Anchor Recurrence to Trigger Date
- Recurrence Settings
- Run Created Subscription Immediately
- Skip First-Run Task IDs
- Input Script Task ID
- Task ID
Overview
The Create Subscription From Template task automatically creates a new schedule workflow for a user based on an existing template. This task is only available on trigger workflows (event hooks) — it cannot be added to schedule workflows.
When a trigger fires (e.g., a reservation is approved or created), this task clones a pre-configured template schedule and assigns it to the relevant user, optionally running it immediately.
Use Cases
- Monthly service subscriptions: When a user's request for a paid service is approved, automatically create a recurring monthly invoice schedule for that user.
- Membership management: When a new member completes their onboarding reservation, automatically enroll them in a recurring membership workflow that handles credential renewals, invoicing, and group membership updates.
- Recurring equipment access fees: When a user is approved to use a piece of equipment, create a schedule that invoices them monthly for ongoing access.
Prerequisites
Create a Template Schedule First
Before using this task, you must create a template schedule workflow that serves as the blueprint for new subscriptions:
- Go to Workflows > Schedules and create a new schedule workflow.
- Mark it as a Template — template schedules never run on their own; they exist solely to be cloned into actual subscriptions.
- Configure the tasks you want the cloned schedule to perform (e.g., create an invoice item, generate an invoice, send an email).
- Save the template. You do not need to configure recurrence on the template itself — the trigger task controls the recurrence of cloned schedules.
Configuration
Template Schedule
Select the template schedule workflow to clone. Only template schedules belonging to the same site are shown.
User ID Override (optional)
By default, the new schedule is created for the user associated with the triggering reservation or approval. To target a different user, enter their User ID here.
Duplicate Policy
Controls what happens when an active schedule with the same name already exists for the target user:
| Policy | Behavior |
|---|---|
| Create New | Always creates a new schedule, even if one already exists. |
| Skip If Exists | Silently skips creation if a matching schedule already exists. The task succeeds without error. |
| Fail If Exists | Halts the task with an error if a matching schedule already exists. |
Anchor Recurrence to Trigger Date
When enabled (the default), the trigger date automatically sets:
- The start date of the new schedule
- The day of the week (for weekly recurrence)
- The day of the month (for monthly recurrence)
- The day of the year (for yearly recurrence)
This means if the trigger fires on March 15th with monthly recurrence, the schedule will run on the 15th of every month.
When disabled, you must manually specify a fixed start date and recurrence day. The schedule uses those exact values regardless of when the trigger fires.
Note
Monthly anchors on the 29th, 30th, or 31st are stored as "last day of the month" to avoid issues with shorter months.
Recurrence Settings
- Period: Day, Week, Month, or Year
- Every: The interval (e.g., every 1 month, every 2 weeks)
- Hour to Run: The hour of the day (in site timezone) when the schedule should execute
When anchoring is enabled, the day-of-week, day-of-month, and day-of-year selectors are auto-filled from the trigger date and cannot be edited manually.
Run Created Subscription Immediately
When enabled, the newly created schedule runs its tasks once immediately after creation, in addition to its future recurring schedule.
For anchored schedules, the immediate run counts as the current recurrence cycle. For example, if a monthly schedule is created and run immediately on March 15th, the next scheduled run will be April 15th — not later in March.
For non-anchored (fixed) schedules, the immediate run is treated as a one-time extra execution. The saved schedule continues on its own fixed cadence independently.
Skip First-Run Task IDs
This field is only visible when Run Created Subscription Immediately is enabled.
Enter the Task IDs (one per line, or comma-separated) of any tasks within the template that should be skipped during the immediate first run only. These tasks will still run on all subsequent scheduled executions.
Example: Skipping the First Invoice
Suppose you have a monthly service that costs $50/month. The user pays for their first month as part of their initial request (e.g., via the request's invoice). You set up a template schedule with these tasks:
- Invoice Item — adds a $50 line item (Task ID:
monthly-fee) - Invoice — generates and sends the invoice (Task ID:
send-invoice) - Email — sends a confirmation to the user
If you run the schedule immediately upon approval, you don't want to double-charge the user for the first month they already paid for. Enter the following in Skip First-Run Task IDs:
monthly-fee, send-invoice
This skips the invoice item and invoice tasks during the immediate first run (since the user already paid via the request), but the confirmation email still sends. Starting from the next month, all tasks — including invoicing — run normally.
Important
The Task IDs entered here must exactly match the Task ID values configured on the tasks within the template schedule. If a Task ID does not match any task in the template, the task will halt with an error to alert you of the typo.
Input Script Task ID
For advanced use cases, you can dynamically override any of this task's fields using the output of a preceding Script task. Enter the Task ID of the script task whose output should be used as input.
The script can return any of the following keys to override the corresponding field:
{
"duplicate_policy": "create_new|skip_if_exists|fail_if_exists",
"recur_schema": { ... },
"relative_to_trigger_day": true,
"run_subscription_first_time_immediately": true,
"skip_first_time_task_ids": ["task-id-1", "task-id-2"],
"template_subscription_id": "...",
"user_id": "..."
}
All keys are optional — only the keys present in the script output will override the static field values.
Task ID
A unique identifier for this task, used to reference it from other tasks or scripts within the same workflow.