> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nicecall.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List automation templates

> List the ready-made automation templates and the parameters each one needs

This endpoint lists the curated automation templates: ready-made automations you apply with [Apply automation template](/api-reference/automations/apply-automation-template) by supplying a few parameters, instead of writing a definition from scratch. Each entry describes its parameters, the account connections it needs, whether it attaches to an assistant, and whether it sends real messages during its test run.

### Available templates

| Key | What it does | Assistant | Sends for real | Connections | Params (\* = required) |
| - | - | - | - | - | - |
| `post-call-qualified-to-sheets` | Save qualified leads to Google Sheets after each call | yes | no | `google-sheets` | `spreadsheet_id`\*, `qualified_variable` |
| `post-call-transcript-email` | Email the call transcript after each call | yes | yes | `gmail` | `recipient_email`\* |
| `post-call-hot-lead-alert` | Hot lead email alert after each call | yes | yes | `gmail` | `alert_email`\*, `hot_variable` |
| `post-call-sms-followup` | SMS follow-up after each call | yes | yes | — | `from_phone_id`\*, `message`\* |
| `post-call-whatsapp-confirmation` | WhatsApp confirmation after each call | yes | yes | — | `sender_id`\*, `whatsapp_template`\*, `variable_1` |
| `post-call-crm-note-http` | Log every call to your CRM / any API | yes | yes | — | `endpoint_url`\*, `auth_header`, `auth_value` |
| `post-call-callback` | Call the customer back at the time they asked for | yes | yes | — | `callback_variable`, `time_variable`, `from_timezone` |
| `inbound-caller-lookup-http` | Recognize inbound callers via your API | yes | no | — | `lookup_url`\*, `api_key_header`, `api_key`, `phone_format` |
| `conversation-ended-summary-email` | Email a summary when a chat ends | yes | yes | `gmail` | `recipient_email`\* |
| `lead-intake-webhook` | New lead from any system, call them automatically | no | yes | — | `campaign_id`\* |
| `midcall-http-lookup` | Mid-call lookup in an external API | no | no | — | `lookup_url`\*, `auth_header_value` |
| `sheet-rows-to-campaign` | Call the leads added to a Google Sheet | no | yes | `google-sheets` | `spreadsheet_id`\*, `campaign_id`\*, `phone_column`, `name_column`, `minutes` |
| `sheet-rows-to-whatsapp-daily` | Daily WhatsApp template to leads from a Google Sheet | no | yes | `google-sheets` | `spreadsheet_id`\*, `sender_id`\*, `whatsapp_template`\*, `phone_column`, `name_column`, `hour`, `timezone` |
| `calcom-call-before-appointment` | Call the customer before their Cal.com appointment | no | yes | `cal-com` | `assistant_id`\*, `hours_before`, `phone_expression` |
| `calcom-cancel-reschedule-midcall` | Cancel or reschedule Cal.com appointments during a call | no | yes | — | `attendee_email`\* |
| `ghl-appointment-manage-midcall` | Cancel or reschedule GoHighLevel appointments during a call | no | no | `lead-connector` | `timezone` |

Required connections are one-time account links (Google Sheets, Gmail, Cal.com, …) made in the app on the Automate page, under Connections.

### Response

<ResponseField name="data" type="array">
  The template library

  <Expandable title="template properties">
    <ResponseField name="key" type="string">
      The template key — pass it in the URL of [Apply automation template](/api-reference/automations/apply-automation-template)
    </ResponseField>

    <ResponseField name="name" type="string">
      The template's name (also the default name of the automation it creates)
    </ResponseField>

    <ResponseField name="description" type="string">
      What the resulting automation does
    </ResponseField>

    <ResponseField name="use_when" type="string">
      When this template is the right choice
    </ResponseField>

    <ResponseField name="binding" type="string | null">
      The assistant event the resulting automation attaches to (`post_call`, `inbound`, `conversation_ended`), or `null` for templates that do not attach to an assistant event
    </ResponseField>

    <ResponseField name="requires_assistant" type="boolean">
      Whether `assistant_id` is required when applying it
    </ResponseField>

    <ResponseField name="required_connections" type="array">
      Account connections that must exist before applying (e.g. `google-sheets`, `gmail`)
    </ResponseField>

    <ResponseField name="side_effects" type="boolean">
      Whether the resulting automation really sends messages / starts calls — applying it requires `confirm_side_effects: true`
    </ResponseField>

    <ResponseField name="params" type="array">
      The parameters the template needs

      <Expandable title="param properties">
        <ResponseField name="key" type="string">
          The parameter key to send in `params` when applying
        </ResponseField>

        <ResponseField name="label" type="string">
          Human-readable label
        </ResponseField>

        <ResponseField name="description" type="string">
          What the value is and where to find it
        </ResponseField>

        <ResponseField name="required" type="boolean">
          Whether the parameter must be supplied
        </ResponseField>

        <ResponseField name="default" type="string">
          The value used when the parameter is omitted (optional parameters only)
        </ResponseField>

        <ResponseField name="example" type="string">
          An example value — for illustration only, never apply a template with example values
        </ResponseField>

        <ResponseField name="auto" type="string">
          Present on some optional parameters: how the value is filled automatically when omitted (e.g. `assistant_timezone` — the supplied assistant's own timezone)
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="test_sample" type="object">
      Present on some templates: the sample payload their test run uses
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json 200 Response (truncated) theme={null}
  {
    "data": [
      {
        "key": "post-call-qualified-to-sheets",
        "name": "Save qualified leads to Google Sheets",
        "description": "After each call, if the AI marked the caller as qualified, appends a row (phone, name, summary, status) to your Google Sheet.",
        "use_when": "The user wants qualified calls or call outcomes collected in a spreadsheet automatically.",
        "binding": "post_call",
        "requires_assistant": true,
        "required_connections": ["google-sheets"],
        "side_effects": false,
        "params": [
          {
            "key": "spreadsheet_id",
            "label": "Google Spreadsheet ID",
            "description": "The spreadsheet to append rows to.",
            "required": true,
            "example": "1AbCdEfGhIjKlMnOpQrStUvWxYz"
          },
          {
            "key": "qualified_variable",
            "label": "Qualified variable name",
            "description": "The post-call variable checked for true before saving (the assistant must extract it).",
            "required": false,
            "default": "status",
            "example": "qualified"
          }
        ]
      }
    ]
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.