---
title: "List built-in templates"
method: GET
path: "/v1/built-in-templates"
tags: ["built-in-templates"]
---

# List built-in templates

`GET /v1/built-in-templates`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/built-in-templates`
- Auth: HTTP bearer

List built-in scheduled-task templates and the caller's own schedule state. The Ad Anomaly Watch is one per workspace: its creator and workspace admins get the workspace's watch, the one that is on, or else the paused one changed most recently.

## Headers

- `X-Tenant-Id` string, nullable

## Response `200`

The built-in templates and the caller's own schedule state.

- BuiltInTemplateListResponse
  - `items` BuiltInTemplateStatus[], required
    - `key` string, required
    - `title` string, required
    - `description` string, required
    - `enabled` boolean, required
    - `schedule` string, nullable, required
    - `local_schedule` string, nullable, required
    - `timezone` string, nullable, required
    - `cron_job_id` string, uuid, nullable, required
    - `trigger_kind` 'cron' | 'per_meeting' | 'before_each_meeting', required
    - `instructions_status` 'available' | 'unavailable' | 'unknown', required
    - `teammate_watch_on` boolean
    - `created_by_teammate` boolean
    - `created` boolean
    - `config` union
      - EmailSweepConfig: The one pick an Email Sweep stores. ``None`` reads every mailbox the person owns.
        - `email_accounts` string[], nullable
      - DailyBriefConfig: The two picks a Daily Brief stores. ``None`` reads every source the person can use.
        - `email_accounts` string[], nullable
        - `calendar_source` 'googlecalendar' | 'outlook', nullable
      - AdAnomalyWatchConfig: The settings a person chose for the watch. Every field has a default that needs no answer.
        - `accounts` string[]: The ad accounts to watch, each exactly as the read lists it, for example "google_ads 1234567890". An empty list watches the default account of every connected ad platform.
        - `platform_goals` object: Per platform ("google_ads", "meta", "linkedin"): the result that counts, the goal, and the day the counted result changed. Sending it replaces every platform's entry, so include the unchanged ones.
        - `campaign_goals` CampaignGoal[]: Campaigns with their own goal. Sending it replaces the whole list.
          - `platform` 'google_ads' | 'meta' | 'linkedin', required: "google_ads", "meta" or "linkedin".
          - `campaign_id` string, required: The campaign's number ID from the ad platform, never its name.
          - `metric` 'cpa' | 'roas', required: "cpa" or "roas".
          - `floor` number, required: The break-even line for this campaign, in its metric's unit.
          - `action` string, required: The action agreed with the client when the campaign passes its floor, for example "cut the budget" or "tell me only".
        - `brand_terms` string[]: The advertiser's own name and its spellings. Google Ads searches with one are read apart from the others. An empty list uses the account and workspace names.
        - `proposal_hold_until` string, date, nullable: A day (YYYY-MM-DD). Until then the watch flags but suggests no budget or bid change. Null clears it.
        - `drift_percent` integer: How much worse CPA or ROAS must be, last 7 complete days against the 7 before, to flag. 10 to 100.
        - `min_conversions` integer: Below this count of counted results in either window, a CPA or ROAS change is too thin to judge. 5 to 500.
        - `spike_percent` integer: How far above the normal daily spend one day must be to flag. 100 means twice the norm. 30 to 500.
        - `mention` string, nullable: A person or group named on critical alerts only. Null mentions nobody.
        - `quiet_days` 'silent' | 'weekly_note': "silent" posts nothing on a day with nothing wrong. "weekly_note" also posts one line each Monday.
      - object
    - `config_options` object
    - `email_account_options` MailboxOption[]
      - `value` string, uuid, required
      - `label` string, required
      - `app_slug` 'gmail' | 'outlook', required
    - `needs` BuiltInTemplateNeeds: What the automation's folder says it needs before it can run.
      - `apps` NeededApp[], required: The apps the folder names, with the labels the dashboard shows.
        - `slug` string, required
        - `label` string, required
      - `app_rule` 'any_of' | 'all_of', required: any_of: one of the apps is enough. all_of: every app is needed.
      - `checked` 'before_turning_on' | 'before_each_run', required: When the apps are checked: when the person turns it on, or at each run.
      - `needs_workspace_admin` boolean, required: True when only a workspace admin may add or resume it.
      - `connect_first` ConnectFirstDialog, required
        - `title` string, required
        - `text` string, required
        - `button` string, required
    - `reads_mail` boolean: True when the template reads the person's mailboxes and offers a choice of which.
    - `settings` ConfigFieldSchema[]: The fields the automation's folder declares for the person to fill in. Empty for none.
      - `key` string, required
      - `type` string, required
      - `label` string, required
      - `description` string, nullable
      - `group` string, nullable
      - `required` boolean
      - `default` unknown
      - `options` ConfigFieldOptionSchema[]
        - `value` string, required
        - `label` string, required
      - `minimum` integer, nullable
      - `maximum` integer, nullable
      - `unit` string, nullable
      - `placeholder` string, nullable
    - `fixed_local_time` string, nullable: The local HH:MM a fixed-schedule template always runs at, Monday to Friday, in the person's own timezone and direct messages. Null when the person chooses the schedule.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden. Inspect response body `code` for the specific reason (for example: PERMISSION_DENIED, EMAIL_NOT_VERIFIED, TENANT_ACCESS_REQUIRED, ROLE_UNRESOLVED)
- `404`: Not found
- `422`: Validation error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
