# Jobs and workflows

> Turn SerpDad's steps into pre-built jobs or custom workflows, with templates, triggers, a block catalogue, run approval, standing approvals, versions, run history and outputs to Slack, Linear, Asana, Trello and signed webhooks.

**In short:** A workflow is a chain of blocks that a trigger starts. A job is a pre-built workflow you turn on for many clients by answering three questions. Both follow the same money rules: every spending block shows an estimate, and nothing spends without an approval.

## Jobs and workflows

| | Jobs | Workflows |
|---|---|---|
| What it is | A ready-made workflow for a common outcome | A chain of blocks you arrange yourself |
| Setup | Answer three questions and turn it on | Use the editor, or start from a template |
| Where | **Jobs > All jobs**, **Pick a job**, **Clients** | **Jobs > Advanced**: All workflows, Templates, Runs |

A client is a project in your workspace.

## Jobs

Open **Jobs > Pick a job**. Each card shows the outcome, what the job makes, how often it runs, and its monthly cost range per client on your keys.

| Job | How often | What it does |
|---|---|---|
| Weekly articles | Every week, on the day you pick | Picks the next pages for each client (3 a week by default), writes briefs and drafts, and asks your approver to sign off. Signed drafts go to each client's WordPress as drafts. |
| Refresh pages that are losing traffic | Every week | Finds pages whose clicks fell 20% or more over the last 28 days (defaults) and asks your approver to review up to 5 refreshes a month per client. Nothing is refreshed until the approver starts it. |
| Send each client a monthly report | On the day of the month you pick (the 1st by default) | Prepares a report for each client and gives a person a task to check and send it. Your agency sends it. |
| Turn new Google searches into pages | Every week | Finds new Google searches that no page covers and asks your approver to approve up to 4 new pages a month per client. Nothing is fetched until the approver approves. |

The Weekly articles card says "Publish N articles a week to WordPress". SerpDad creates WordPress drafts only. It never publishes.

1. Select a job.
2. Answer the three questions: which clients, then the job's own two settings.
3. Turn it on. You approve the spend.

Each job has its own monthly spend limit, on top of the workspace's monthly spend cap. Tasks a job creates appear in **Home > My work**. The **Clients** page shows each client's job runs, open tasks and spend this month.

## Workflows

| Term | Meaning |
|---|---|
| Version | A frozen copy of a workflow. Only a published version runs. Old versions never change. |
| Draft | The editable copy. The banner says when it has changes not yet published. |
| Trigger | The one block that starts a run |
| Block | One step with typed inputs, outputs and settings |
| Branch | A path out of a block, such as "Is true" and "Is false" |
| Engine group | The engine blocks, in a fixed order, ending with the plan check |

Workflow statuses are Active, Draft only and Archived. The editor is read-only below 768 px wide.

## Templates

**Use template** copies a template into your workspace as a draft.

- Keyword pile to page plan (the default for every project)
- Monthly re-run
- E-commerce category pages
- Local service areas
- SaaS docs and use cases
- Publisher: find decaying posts
- Affiliate comparison pages
- Keyword pile to signed articles
- Keyword pile to WordPress drafts
- Approved outline to finished article
- Weekly AI visibility
- Agency monthly client report

## Triggers

| Trigger | Starts a run when |
|---|---|
| Manual | A person presses Run |
| Schedule | Each hour, day, week or month, at a set time in your time zone |
| New keywords imported | An import adds new keywords to a chosen project |
| Rank change | A rank check finds pages that moved more than 3 places or 8% |
| Search Console drop or rise | The nightly sync finds pages that moved past your line against the 28 days before |
| New competitor page | A rank check finds a new URL from a watched domain in a tracked top 10 |
| Webhook | Your system sends a signed keyword list to the workflow's secret URL |
| Outline approved | A person approves a page's outline |

## Block catalogue

**Data:** Import keywords, Keywords from Ahrefs, Import from Google Sheets, Keyword research, Search Console data, Crawl site, Find decaying pages, New Search Console searches, Read site pages.

**Engine group**, always in this order: Fetch SERPs, Search volume, Cluster by SERP overlap, Score scope and format, Route around owned pages, Park weak pages, Labs secondary keywords.

**Decide:** Filter, If/else, Split by format, Human review, Approval, Wait.

**Write:** Generate brief, Quote capture, Draft, Verify, Voice pass, Fact check, Tone, Format, Plan internal links, Score content, Image maker, Screenshot taker, Clean image metadata, Sign-off.

**Act:** Export Markdown or HTML, Export CSV, Stage WordPress draft, Stage Webflow draft, Stage Shopify draft, Stage Google Doc, Notify by email, Notify by Slack, Call a webhook, Create task.

**Measure:** Rank check, AI Overview check, AI Mode check, Report.

Split by market is listed as out of scope, because SerpDad plans for United States desktop only. No block can publish to any site.

## Run approval

1. Start the run. If the trigger takes a file, upload it and map the columns.
2. Read the estimate: one line per spending block, your DataForSEO balance, your monthly cap after the run, and the keywords against the 200,000 limit.
3. Select **Approve run**. A Manager above the owner approval line sees **Request approval** instead.

A run waiting for approval expires after 7 days.

## Standing approvals

Scheduled, event and webhook runs have nobody at the gate. An Owner or Admin can grant a standing approval for one published version, up to a per-run ceiling. The default ceiling is $10.00, and it can never be above the owner approval line. A run above the ceiling waits and emails approvers. Publishing a version that changes a spending block or the trigger clears the standing approval.

## Versions and run history

- **Version history** lists each published version: who published it, when, a note and a change summary. Select **Restore as draft** to bring an old version back.
- **Runs** lists every run with its status: Waiting for approval, Queued, Running, Waiting on a person, Waiting, Parked, Completed, Failed, Cancelled or Expired.
- Each step stores a receipt: inputs, outputs, evidence, provider, key (last 4), model, estimate, actual cost and timings.
- You can retry a failed step (its extra cost shows first), resume a parked run, skip a Wait or Approval step, or cancel a run.

Up to 3 runs per workspace hold a slot at once. More wait as Queued.

## Outputs and connections

Add outbound connections in **Workspace > Connections**. They are stored encrypted and shown masked.

| Output | Block | What you connect |
|---|---|---|
| Slack | Notify by Slack | An incoming webhook URL |
| Linear, Asana, Trello | Create task | Your key for that tool |
| Your own system | Call a webhook, or Create task | An https URL and a signing secret. Each call is signed with HMAC-SHA256. |
| Email | Notify by email | Nothing. Recipients are members of the workspace. |

The inbound Webhook trigger takes 60 calls an hour per workflow and up to 10,000 keywords a call. It refuses stale and replayed calls.

## Who can do what

| Action | Roles |
|---|---|
| View workflows, runs and jobs | Everyone |
| Create, edit, publish and run workflows; set up, change or pause jobs | Owner, Admin, Manager |
| Grant standing approvals | Owner, Admin |

## Related

- [Run a plan](../run-a-plan/)
- [Drafts and sign-off](../drafts-and-sign-off/)
- [Measure](../measure/)
- [Provider keys](../provider-keys/)
- [Workspace and team](../workspace-and-team/)
