Start inputs
Daily contract renewal check
Passed by the calling system
Operations & Compliance package
A daily check of your contract register: owners are reminded 60, 30 and 7 days before each notice deadline and asked to renew, renegotiate or terminate.
About this package
Contract renewal reminders keeps notice deadlines from slipping past. Every morning it reads the active rows of the Contracts data table and works out, for each one, the date by which notice must be given (end date minus the notice period) and how many days are left.
At 60, 30 and 7 days the contract owner gets a reminder email that says whether the contract renews automatically or expires. From 30 days out the check marks the contract "Decision requested" and starts the Contract renewal decision sub-workflow, which gives the owner a User Task to renew, renegotiate or terminate, with the new end date and value pre-filled. The decision is written back to the contract row and confirmed by email. Contracts whose deadline has passed without a decision are logged as warnings.
Adapt the Contracts table to your register (or keep it as the register), the reminder windows in the Reminder window switch, and the time of the daily run. Owners can be routed per contract with the optional owner user id column.
Daily at 07:00 (UTC). You can also start it any time from the Run dialog, the API or the CLI.
Runs on a schedule (daily, weekly, monthly) in your time zone.
The flow
Daily check
The schedule fires at 07:00 and lists every active contract, earliest end date first.
Work out the notice deadline
For each contract the deadline is the end date minus the notice period; the check counts the days left from today (or the "as of" date).
Remind the owner
At exactly 60, 30 and 7 days the owner gets a reminder email with the end date, value and what happens if nobody acts.
Ask for a decision
From 30 days out the contract is marked "Decision requested" and the Contract renewal decision sub-workflow starts, once per contract.
Renew, renegotiate or terminate
The owner records the decision with the new end date, value and notes; the contract row is updated and the owner gets a confirmation.
Flag missed deadlines
Contracts past their notice deadline without a decision are logged as warnings in the run.
Forms
The inputs a caller passes when it starts a run, and the forms people complete when the process needs a decision.
Start inputs
Passed by the calling system
User Task · Contract renewal decision
Renew, renegotiate or terminate {{contract.contract_name}} ({{contract.counterparty}})
From your code
Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.
REST
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
-H "Authorization: Bearer $USERTASKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"workflow_id":"<workflow id>","variables":{"as_of":"2026-11-02"}}'CLI
usertasks workflows inputs <workflow id> # the start form: keys, types, required
usertasks workflows run <workflow id> --input as_of=2026-11-02 --waitWhat's included
| Type | Name | Details |
|---|---|---|
| Email template | Contract notice reminder | Sent to the contract owner 60, 30 and 7 days before the notice deadline. |
| Email template | Renewal decision recorded | Confirms the owner's renewal decision and what happens next. |
| Data table | Contracts | Your contract register: one row per active agreement with its end date, notice period, owner and renewal stage. The daily check reads it and the Contract renewal decision workflow writes the outcome back. |
| Workflow | Contract renewal decision | 10 steps — Started by the daily contract check 30 days before a notice deadline: the owner decides to renew, renegotiate or terminate, and the contract row is updated. |
| Workflow | Daily contract renewal check | 18 steps — Every morning: reads the active contracts, works out the days to each notice deadline, emails the owner at 60, 30 and 7 days and starts a Contract renewal decision 30 days out. |
Contracts · 8 sample rows
Contract IDContractCounterpartyOwnerOwner emailOwner user id (optional)Start dateEnd dateNotice period (days)Auto-renewsAnnual valueCurrencyStatusRenewal stageDecision notes
Requirements
Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.
Workflow “Contract renewal decision” assigneesRequired
Install
Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.
curl -fLO https://usertasks.com/gallery/contract-renewal-reminders-1.0.0.utpkg
usertasks packages inspect contract-renewal-reminders-1.0.0.utpkg # offline: checksum, hashes, signature
usertasks packages install contract-renewal-reminders-1.0.0.utpkg --dry-run
usertasks packages install contract-renewal-reminders-1.0.0.utpkg # prompts for each requirement
usertasks packages install contract-renewal-reminders-1.0.0.utpkg --keep-incomplete --yes # in CI; finish with:
usertasks packages complete contract-renewal-reminders -f values.yamlVerify the download
shasum -a 256 contract-renewal-reminders-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.
Versions
Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work
More packages
Operations & Compliance
Monthly SOC 2 / ISO 27001 evidence run: automated controls are pulled from your systems, owners of manual controls are asked for a link, all logged for the auditor.
Needs:REST APIAssigneesEmail
Operations & Compliance
A monthly campaign: employees confirm they have read the policies due for them, with reminders, escalation to compliance and an audit trail of attestations.
Needs:Directory / HR systemREST APIAssigneesEmail
Operations & Compliance
Handle access, erasure and other privacy requests: statutory deadline, identity check, search of CRM, billing and support, erasure, and a DPO-approved reply.
Needs:REST APIAssigneesEmail