Building an Automation
This page walks through creating an automation from scratch — from naming it to previewing it safely before it runs for real.
Open the Editor
From the Automations list (/automations/), click New to open the editor, or Expand → Edit on an existing automation. The editor is a single panel with sections for the title, trigger, conditions, and action steps.
Step 1 — Name & Type
Give the automation a clear, action-oriented Title — this is what you'll see in the list (e.g. "Weekly client check-in", "Onboard new project").
Then pick an Automation type:
- Manually / from Claude — runs when you click Run, or when your AI assistant invokes it.
- On a schedule — runs on a recurring time you define.
- When something happens — event-based. (Shown in the picker but not yet active — see the overview.)
Optionally, scope the automation to a single Client. Leave it global (the default) to make it a reusable template that isn't tied to one client.
Step 2 — Configure the Trigger
What you configure here depends on the type:
- Manual — nothing to configure. You can still pass a client as context when you run it (or when the assistant runs it).
- Scheduled — choose a frequency and time (see Scheduling a Recurring Run).
Step 3 — Add Conditions
Conditions are optional guards. Add them at two levels:
- Automation-level — if these don't pass, the whole automation is skipped.
- Step-level — if these don't pass, just that step is skipped; later steps still run.
Each condition reads as field → operator → value, for example Client is Acme or Amount is over 100. All conditions on a level are combined with AND — every one must pass.
The available fields depend on the trigger, and the operators range from text matches (is, is not, contains) to numeric comparisons (is over, is under, is at least, is at most) and emptiness checks (is empty, is not empty). See the full list in Triggers, Conditions & Actions.
Step 4 — Build the Action Steps
Action steps are the heart of the automation — an ordered list of things to do. For each step:
- Pick a tool from the catalog (Create Task, Reply Ticket, Update Client, …).
- Map its inputs — every tool input can be a fixed value, pulled from the trigger context, or built from a template (see Field Modes below).
- Add step conditions (optional) — skip this step unless the data matches.
Drag steps by their handle to reorder them. Steps run top to bottom; later steps can rely on earlier ones having run.
Destructive steps need the unattended opt-in. Tools that create, update, reply, or delete are flagged destructive. For an automation that runs unattended (on a schedule), tick "Allow destructive steps to run unattended" or those steps are skipped. Read-only steps always run.
Field Modes
Each tool input can be filled one of three ways. The mode selector sits next to every field:
| Mode | Use it when | How it works |
|---|---|---|
| Fixed | The value never changes | Type a literal value (e.g. status = Closed). |
| Mapped | The value comes from the trigger | Pick a context field by its path (e.g. client.name). Optionally apply a transform and a default fallback if the field is missing. |
| Template | You're combining text and values | Write a string with { } placeholders that get filled at run time. |
Template syntax
In Template mode, wrap any context path in braces. At run time, ClientCove replaces each placeholder with the matching value:
Fulfill {product.name} for {buyer} (Amount: {amount})
With context { product: { name: "Widget" }, buyer: "Acme", amount: 250 } this resolves to:
Fulfill Widget for Acme (Amount: 250)
A few rules worth knowing:
- Whitespace inside braces is fine —
{ buyer }works the same as{buyer}. - A placeholder whose path has no value resolves to an empty string (no error, no broken run).
- Braces that don't look like a path are left untouched, so ordinary text with
{ }survives.
The tokens available in templates are the same context fields you can filter on — see Template Tokens.
Scheduling a Recurring Run
For a Scheduled automation, define the frequency:
| Frequency | What you set | Example |
|---|---|---|
| Hourly | Nothing — fires at the top of each hour | Every hour on the hour |
| Daily | A time (24-hour HH:MM) | 09:00 → every morning at 9 |
| Weekly | One or more days of the week + a time | Monday at 09:00, or Mon/Wed/Fri at 09:00 |
| Monthly | A day of month (1–28) + a time | The 15th at 14:00 |
When you enable the automation, ClientCove calculates its next run and shows it in the list. A background sweep runs every hour and fires any automations that are due.
No backfill. If your portal is asleep when a run was due, the automation doesn't pile up missed runs — the next run is always the next future slot. Day-of-month is capped at 28 so monthly schedules behave consistently in every month.
Save, Preview & Run
When the automation looks right:
- Save it. New automations start disabled (draft).
- Dry-run it from the list — this executes the full logic and returns a plain-English preview of each step without making any changes or bumping run counters. Always do this first.
- When the preview looks correct, flip the status toggle to enable it.
- Use Run to fire it on demand any time, or let the schedule take over.
Each run is logged with its trigger, the user it ran as, and the per-step results, so you can expand any automation to review its recent history.
Let your assistant run it. Once an automation is saved and enabled, your connected AI assistant can trigger it through the run_automation tool — useful for "kick off onboarding for this client" style commands. See MCP Server & AI Tools for connecting an assistant.