---
title: "List DM automations"
method: GET
path: "/v1/dm-automations"
---

# List DM automations

`GET /v1/dm-automations`

## Request

- Base URL: `https://api.breakreach.com`
- URL: `https://api.breakreach.com/v1/dm-automations`
- Auth: HTTP bearer

DM automations: when someone DMs a keyword, mentions the account in their story, replies to a story or opens a ref link, Breakreach answers in Instagram Direct (or Messenger for a Facebook Page) and walks a flow of messages, waits, conditions and handoffs for that person. Replies only go out within Meta's 24-hour window after the person's last message; a person is in one flow at a time, and someone answering by hand stops it. Available on the Pro, Agency and Developer plans.

## Query parameters

- `accountId` string
- `workspace` string

## Response `200`

OK

- object
  - `automations` DmAutomation[]
    - `id` string
    - `accountId` string
    - `platform` 'instagram' | 'facebook'
    - `account` object
      - `displayName` string
      - `avatarUrl` string, nullable
    - `name` string
    - `trigger` DmTrigger
      - `type` 'keyword' | 'any_message' | 'story_mention' | 'story_reply' | 'ref', required: keyword = a DM containing a keyword; any_message = any DM (welcome or away reply); story_mention = someone mentions the account in their story (Instagram); story_reply = a reply to one of its stories, optionally with keywords (Instagram); ref = someone opens ig.me/m/<username>?ref=<ref> or m.me/<page id>?ref=<ref> and writes
      - `keywords` string[]: keyword (required) and story_reply (optional); case and accents ignored
      - `match` 'contains' | 'exact'
      - `ref` string, nullable
    - `refLink` string, nullable: For a ref trigger: the link to share (link in bio, QR code, ad)
    - `steps` DmStep[]
      - `id` string: Kept across edits so people in the flow carry on; generated when omitted
      - `type` 'message' | 'wait' | 'condition' | 'handoff', required
      - `text` string: message: up to 1000 bytes (640 characters with a button). {username} = their @handle on Instagram, first name on Messenger; {first_name}
      - `button` object, nullable: message: a link button; clicks are counted (the link goes through api.breakreach.com/l/...)
        - `title` string
        - `url` string, uri
      - `choices` object[]: message: quick-reply choices, each with its own steps. Not with a button
        - `id` string
        - `label` string
        - `steps` DmStep[]
      - `otherwise` object, nullable: message with choices: a typed answer that isn't a choice, or no answer within afterMinutes
        - `afterMinutes` integer
        - `steps` DmStep[]
      - `minutes` integer: wait
      - `check` 'replied' | 'keyword' | 'clicked' | 'follows': condition: a reply, a reply containing keywords, a click on an earlier link button (each waited for up to withinMinutes), or whether they follow the account (Instagram, checked at once)
      - `keywords` string[]
      - `match` 'contains' | 'exact'
      - `withinMinutes` integer
      - `yes` DmStep[]
      - `no` DmStep[]
      - `note` string: handoff: shown in the Inbox
    - `reentry` 'once' | 'always'
    - `cooldownHours` integer
    - `active` boolean
    - `stats` object
      - `started` integer
      - `completed` integer
      - `handedOff` integer
      - `clicks` integer
      - `failed` integer
    - `lastTriggeredAt` string, date-time, nullable
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `401`: Missing, invalid or expired API key
- `402`: No active Breakreach subscription or trial
- `403`: Not a member of the requested workspace
- `404`: Workspace not found

---

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