---
title: "Create an automation"
method: POST
path: "/automations"
tags: ["Automations"]
---

# Create an automation

`POST /automations`

Creates a new automation for the authenticated project.

## Request body

- V4AutomationCreate
  - `name` string, required — Human-readable name for the automation. Must be 1–255 characters.
  - `caption` string — Optional description. Maximum 1024 characters.
  - `status` 'active' | 'inactive' | 'paused', required — Initial status of the automation.
  - `data` V4AutomationData, required — Automation configuration. Push and event resources are dashboard-only; this object references them by uid.
    - `type` string, nullable — Derived on read from initiator types. Ignored on write.
    - `platform` 'iOS' | 'Android' | 'null', nullable — Platform filter for the automation. `null` for all platforms.
    - `initiators` object[], required — One or more event initiators that trigger the automation.
      - `uid` string, required — Dashboard event id (numeric string).
      - `type` 'event', required
    - `actions` object, required — Actions to perform when the automation fires. At least one of `push` or `screen` must be present.
      - `push` string, nullable — Push notification uid (created in the dashboard).
      - `screen` string, nullable — Screen uid (see `/v4/screens`).
    - `segments` string, nullable, required — Segment uid to target; `null` runs for all users.

## Response `201`

Automation created successfully.

- V4Automation
  - `object` 'automation', required — Always "automation".
  - `id` string, required — Unique automation identifier.
  - `url` string, required — Canonical API path for this automation.
  - `name` string, required — Human-readable name of the automation.
  - `caption` string, required — Optional description of the automation.
  - `status` string, required — Lifecycle status of the automation. `paused` is set via `PATCH /automations/{id}/status` to temporarily stop an active automation without deleting it. `unknown` is returned as a forward-compatibility fallback and should not be written.
  - `data` V4AutomationData, required — Automation configuration. Push and event resources are dashboard-only; this object references them by uid.
    - `type` string, nullable — Derived on read from initiator types. Ignored on write.
    - `platform` 'iOS' | 'Android' | 'null', nullable — Platform filter for the automation. `null` for all platforms.
    - `initiators` object[], required — One or more event initiators that trigger the automation.
      - `uid` string, required — Dashboard event id (numeric string).
      - `type` 'event', required
    - `actions` object, required — Actions to perform when the automation fires. At least one of `push` or `screen` must be present.
      - `push` string, nullable — Push notification uid (created in the dashboard).
      - `screen` string, nullable — Screen uid (see `/v4/screens`).
    - `segments` string, nullable, required — Segment uid to target; `null` runs for all users.

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Feature not available
- `415` — Unsupported Content-Type
- `429` — Rate limit exceeded
- `500` — Internal error
- `502` — Upstream service failure
- `504` — Upstream timeout

---

[API](https://skmtc.net/qonversion/apis/qonversion-rest-api-v4.md) · [All operations](https://skmtc.net/qonversion/apis/qonversion-rest-api-v4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/qonversion/qonversion-rest-api-v4/revisions/e3f72cf8951c/schema)
