openapi: 3.1.0
info:
title: Monaco Public Accounts Sequence Templates API
description: Public API for Monaco
version: 1.0.0
servers:
- url: https://api.monaco.com
tags:
- name: Sequence Templates
paths:
/v1/sequence-templates:
get:
tags:
- Sequence Templates
summary: List Sequence Templates
description: Returns the list of sequence templates available to the authenticated organization.
operationId: list_sequence_templates
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicItemResponse_list_SequenceTemplateResponse__'
example:
data:
- id: seqt_abc123
name: Enterprise Onboarding
description: Multi-touch onboarding sequence for enterprise accounts
status: active
owner_id: usr_abc123
is_default: false
created_at: '2026-01-15T10:30:00Z'
updated_at: '2026-05-10T14:22:00Z'
meta:
timestamp: '2026-05-11T17:00:00Z'
4XX:
description: Client error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponse'
post:
tags:
- Sequence Templates
summary: Create a Sequence Template
description: 'Creates a new sequence template. The template is created as a USER_GENERATED template.
Supply `steps` (ordered by `index`), `transitions`, and `blocks` together; see each field''s schema for its shape and allowed values. A step references a block via a `[[block:<id>]]` marker in its `message`/`subject`, and a `transition` links steps by `index` sequentially or on a branch. Example:
{"steps": [{"index": 1, "day": 0, "hour": 9, "type": "auto_email", "subject": "Quick question", "message": "<p>Hi {{recipient.first_name}} [[block:intro]]</p>"}, {"index": 2, "day": 2, "hour": 9, "type": "auto_linkedin_connection", "message": "Let''s connect"}], "transitions": [{"from_step_index": 1, "to_step_index": 2, "transition_type": "PREVIOUS_STEP_COMPLETES"}], "blocks": {"intro": {"name": "Intro", "block_type": "MANUAL", "content": "..."}}}
Template variables must be namespaced. Supported tokens are `{{recipient.first_name}}`, `{{recipient.last_name}}`, `{{recipient.company}}`, `{{recipient.email}}`, `{{sender.first_name}}`, `{{sender.last_name}}`, and `{{sender.company}}`.'
operationId: create_sequence_template
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateSequenceTemplateRequest'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicItemResponse_SequenceTemplateDetailResponse_'
4XX:
description: Client error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponse'
/v1/sequence-templates/{sequence_template_id}:
get:
tags:
- Sequence Templates
summary: Get a Sequence Template
description: Gets a single sequence template by its `sequence_template_id`. The detail response includes the template's ordered list of steps.
operationId: get_sequence_template
parameters:
- name: sequence_template_id
in: path
required: true
schema:
type: string
format: uuid
title: Sequence Template Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicItemResponse_SequenceTemplateDetailResponse_'
example:
data:
id: seqt_abc123
name: Enterprise Onboarding
description: Multi-touch onboarding sequence for enterprise accounts
status: active
owner_id: usr_abc123
is_default: false
created_at: '2026-01-15T10:30:00Z'
updated_at: '2026-05-10T14:22:00Z'
steps:
- id: stp_abc123
index: 1
title: Intro email
day: 0
hour: 9
type: auto_email
subject: Quick question
message: <p>Hi {{recipient.first_name}} [[block:abc-123]]</p>
- id: stp_def456
index: 2
title: LinkedIn follow up
day: 2
hour: 10
type: auto_linkedin_message
message: <p>Following up</p>
blocks:
abc-123:
id: abc-123
name: Intro hook
block_type: MANUAL
content: Saw you launched X recently —
created_at: '2026-01-15T10:30:00Z'
updated_at: '2026-05-10T14:22:00Z'
meta:
timestamp: '2026-05-11T17:00:00Z'
4XX:
description: Client error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponse'
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponse'
description: Not Found
patch:
tags:
- Sequence Templates
summary: Update a Sequence Template
description: 'Updates an existing sequence template. All fields are optional, but at least one must be provided. `steps`, `transitions`, and `blocks` replace the current value when supplied; each supplied step must include its `id`.
Supply `steps` (ordered by `index`), `transitions`, and `blocks` together; see each field''s schema for its shape and allowed values. A step references a block via a `[[block:<id>]]` marker in its `message`/`subject`, and a `transition` links steps by `index` sequentially or on a branch. Example:
{"steps": [{"index": 1, "day": 0, "hour": 9, "type": "auto_email", "subject": "Quick question", "message": "<p>Hi {{recipient.first_name}} [[block:intro]]</p>"}, {"index": 2, "day": 2, "hour": 9, "type": "auto_linkedin_connection", "message": "Let''s connect"}], "transitions": [{"from_step_index": 1, "to_step_index": 2, "transition_type": "PREVIOUS_STEP_COMPLETES"}], "blocks": {"intro": {"name": "Intro", "block_type": "MANUAL", "content": "..."}}}
Template variables must be namespaced. Supported tokens are `{{recipient.first_name}}`, `{{recipient.last_name}}`, `{{recipient.company}}`, `{{recipient.email}}`, `{{sender.first_name}}`, `{{sender.last_name}}`, and `{{sender.company}}`.'
operationId: update_sequence_template
parameters:
- name: sequence_template_id
in: path
required: true
schema:
type: string
format: uuid
title: Sequence Template Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateSequenceTemplateRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PublicItemResponse_SequenceTemplateDetailResponse_'
4XX:
description: Client error
content:
application/json:
schema:
$ref: '#/components/schemas/PublicErrorResponse'
components:
schemas:
SequenceTemplateDetailResponse:
properties:
id:
type: string
title: Id
description: Unique identifier for the sequence template
examples:
- seqt_abc123
name:
type: string
title: Name
description: Name of the sequence template
examples:
- Enterprise Onboarding
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of the sequence template
examples:
- Multi-touch onboarding sequence for enterprise accounts
status:
$ref: '#/components/schemas/CampaignStatusEnum'
description: Current status of the sequence template
examples:
- ACTIVE
owner_id:
anyOf:
- type: string
- type: 'null'
title: Owner Id
description: ID of the user who owns the sequence template
examples:
- usr_abc123
is_default:
type: boolean
title: Is Default
description: Whether this template is the default for the organization
default: false
examples:
- false
archived_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Archived At
description: Date and time the sequence template was archived
examples:
- '2026-05-10T14:22:00Z'
created_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Created At
description: Date and time the sequence template was created
examples:
- '2026-01-15T10:30:00Z'
updated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Updated At
description: Date and time the sequence template was last updated
examples:
- '2026-05-10T14:22:00Z'
steps:
items:
$ref: '#/components/schemas/SequenceTemplateStepResponse'
type: array
title: Steps
description: Ordered list of steps in the template
transitions:
items:
$ref: '#/components/schemas/SequenceTemplateTransitionResponse'
type: array
title: Transitions
description: Transitions between steps (ordering and branching rules)
blocks:
additionalProperties:
$ref: '#/components/schemas/SequenceTemplateBlockResponse'
type: object
title: Blocks
description: Content blocks referenced anywhere in this template, keyed by block id. A step's subject/message may contain [[block:<uuid>]] markers; each <uuid> appears as a key in this dict.
type: object
required:
- id
- name
- status
title: SequenceTemplateDetailResponse
description: Sequence template with its ordered list of steps and transitions.
SequenceTransitionTypeEnum:
type: string
enum:
- PREVIOUS_STEP_COMPLETES
- PREVIOUS_STEP_RUNS
- GIFT_DELIVERED
- PREVIOUS_STEP_SCHEDULED
- LINKEDIN_REQUEST_ACCEPTED
- LINKEDIN_REQUEST_NOT_ACCEPTED
- GIFT_ACCEPTED
- GIFT_NOT_ACCEPTED
title: SequenceTransitionTypeEnum
PublicSequenceTemplateStatusEnum:
type: string
enum:
- ACTIVE
- INACTIVE
- ARCHIVED
title: PublicSequenceTemplateStatusEnum
description: 'User-settable sequence-template statuses.
Intentionally a subset of `campaigns.types.sequence_template.CampaignStatusEnum`:
excludes DRAFT, an internal-only authoring state.'
CreateSequenceTemplateRequest:
properties:
name:
type: string
title: Name
description: Name of the sequence template
examples:
- Enterprise Onboarding
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of the sequence template
examples:
- Multi-touch onboarding sequence for enterprise accounts
steps:
items:
$ref: '#/components/schemas/SequenceTemplateStepRequest'
type: array
title: Steps
description: Ordered list of steps in the template
transitions:
items:
$ref: '#/components/schemas/SequenceTemplateTransitionRequest'
type: array
title: Transitions
description: 'Transitions between steps (ordering and branching rules). A transition that omits its lead-time delay defaults to 3 business days: on `post_check_delay` for accepted-branch transitions (LINKEDIN_REQUEST_ACCEPTED, GIFT_ACCEPTED), on `pre_check_delay` for all others. Pass an explicit 0 to evaluate immediately.'
blocks:
additionalProperties:
$ref: '#/components/schemas/SequenceTemplateBlockRequest'
type: object
title: Blocks
description: Content blocks referenced by this template, keyed by block id. A step's subject/message may contain [[block:<uuid>]] markers.
type: object
required:
- name
- steps
title: CreateSequenceTemplateRequest
description: Request body for creating a sequence template.
ErrorDetail:
properties:
code:
type: string
title: Code
description: Machine-readable error code
examples:
- not_found
message:
type: string
title: Message
description: Human-readable error message
examples:
- Resource not found
type: object
required:
- code
- message
title: ErrorDetail
PublicItemResponse_SequenceTemplateDetailResponse_:
properties:
data:
$ref: '#/components/schemas/SequenceTemplateDetailResponse'
meta:
$ref: '#/components/schemas/ResponseMeta'
type: object
required:
- data
title: PublicItemResponse[SequenceTemplateDetailResponse]
PublicItemResponse_list_SequenceTemplateResponse__:
properties:
data:
items:
$ref: '#/components/schemas/SequenceTemplateResponse'
type: array
title: Data
meta:
$ref: '#/components/schemas/ResponseMeta'
type: object
required:
- data
title: PublicItemResponse[list[SequenceTemplateResponse]]
PublicErrorResponse:
properties:
error:
$ref: '#/components/schemas/ErrorDetail'
type: object
required:
- error
title: PublicErrorResponse
TaskTypeEnum:
type: string
enum:
- generic
- auto_email
- manual_email
- auto_linkedin_connection
- manual_linkedin_connection
- auto_linkedin_message
- manual_linkedin_message
- auto_linkedin_inmail
- manual_linkedin_inmail
- auto_phone
- manual_phone
- internal_email
- gifting_via_email
- gifting_via_address
- complete_sequence
title: TaskTypeEnum
SequenceTemplateResponse:
properties:
id:
type: string
title: Id
description: Unique identifier for the sequence template
examples:
- seqt_abc123
name:
type: string
title: Name
description: Name of the sequence template
examples:
- Enterprise Onboarding
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: Description of the sequence template
examples:
- Multi-touch onboarding sequence for enterprise accounts
status:
$ref: '#/components/schemas/CampaignStatusEnum'
description: Current status of the sequence template
examples:
- ACTIVE
owner_id:
anyOf:
- type: string
- type: 'null'
title: Owner Id
description: ID of the user who owns the sequence template
examples:
- usr_abc123
is_default:
type: boolean
title: Is Default
description: Whether this template is the default for the organization
default: false
examples:
- false
archived_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Archived At
description: Date and time the sequence template was archived
examples:
- '2026-05-10T14:22:00Z'
created_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Created At
description: Date and time the sequence template was created
examples:
- '2026-01-15T10:30:00Z'
updated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Updated At
description: Date and time the sequence template was last updated
examples:
- '2026-05-10T14:22:00Z'
type: object
required:
- id
- name
- status
title: SequenceTemplateResponse
description: Sequence template resource.
SequenceTemplateTransitionResponse:
properties:
from_step_index:
type: integer
title: From Step Index
description: Index of the source step within the template
examples:
- 1
to_step_index:
type: integer
title: To Step Index
description: Index of the destination step within the template
examples:
- 2
transition_type:
$ref: '#/components/schemas/SequenceTransitionTypeEnum'
description: Condition that triggers this transition
examples:
- PREVIOUS_STEP_COMPLETES
pre_check_time_unit:
type: string
title: Pre Check Time Unit
description: Time unit for `pre_check_delay`. One of `seconds`, `minutes`, `hours`, `days`, or `business_days`.
default: business_days
pre_check_delay:
anyOf:
- type: integer
- type: 'null'
title: Pre Check Delay
description: A grace window before this transition's condition starts being evaluated, measured from when the source step completed (in `pre_check_time_unit`). Use it when the condition could be satisfied immediately but you want to wait first — e.g. after an email is sent, hold off 2 business days before checking for a reply, giving the prospect time to respond. `null` or `0` evaluates as soon as the source step completes.
examples:
- 2
post_check_time_unit:
type: string
title: Post Check Time Unit
description: Time unit for `post_check_delay`. One of `seconds`, `minutes`, `hours`, `days`, or `business_days`.
default: business_days
post_check_delay:
anyOf:
- type: integer
- type: 'null'
title: Post Check Delay
description: A pacing delay after this transition's condition has passed, before the destination step is scheduled (in `post_check_time_unit`). Use it to avoid an instantaneous, robotic-feeling response to a prospect-driven event — e.g. wait a business day after a LinkedIn connection is accepted before pitching, or after a gift is delivered before the thank-you. `null` or `0` schedules the next step immediately.
examples:
- 1
require_all:
type: boolean
title: Require All
description: Whether all conditions must be met (vs. any of them)
default: true
type: object
required:
- from_step_index
- to_step_index
- transition_type
title: SequenceTemplateTransitionResponse
description: A transition (ordering / branching rule) between two steps in a template.
SequenceTemplateBlockRequest:
properties:
name:
type: string
title: Name
description: Human-readable name of the block
block_type:
$ref: '#/components/schemas/ContentBlockTypeEnum'
description: MANUAL or AI_GENERATED
content:
type: string
title: Content
description: Block content; may contain template variables
fallback_content:
anyOf:
- type: string
- type: 'null'
title: Fallback Content
description: Fallback content used when the primary content can't be resolved. Only relevant for AI_GENERATED blocks.
type: object
required:
- name
- block_type
- content
title: SequenceTemplateBlockRequest
description: A content block referenced by a sequence template step (write side).
SequenceTemplateStepResponse:
properties:
id:
type: string
title: Id
description: Unique identifier for the step
examples:
- stp_abc123
index:
anyOf:
- type: integer
- type: 'null'
title: Index
description: Position of the step within the template (1-based)
examples:
- 1
title:
anyOf:
- type: string
- type: 'null'
title: Title
description: Display title of the step
examples:
- Intro email
day:
anyOf:
- type: integer
- type: 'null'
title: Day
description: Day offset from the start of the sequence
examples:
- 0
hour:
anyOf:
- type: integer
- type: 'null'
title: Hour
description: Hour of day the step is scheduled for
examples:
- 9
type:
$ref: '#/components/schemas/TaskTypeEnum'
description: Type of step
examples:
- auto_email
subject:
anyOf:
- type: string
- type: 'null'
title: Subject
description: Subject line (email and gifting steps)
message:
anyOf:
- type: string
- type: 'null'
title: Message
description: Message body for the step
gift_id:
anyOf:
- type: string
- type: 'null'
title: Gift Id
description: ID of the gift attached to a gifting step
type: object
required:
- id
- type
title: SequenceTemplateStepResponse
description: One step in a sequence template.
SequenceTemplateStepRequest:
properties:
index:
anyOf:
- type: integer
- type: 'null'
title: Index
description: Position of the step within the template (1-based)
examples:
- 1
title:
anyOf:
- type: string
- type: 'null'
title: Title
description: Display title of the step
examples:
- Intro email
day:
anyOf:
- type: integer
- type: 'null'
title: Day
description: Day offset from the start of the sequence
examples:
- 0
hour:
anyOf:
- type: integer
- type: 'null'
title: Hour
description: Hour of day the step is scheduled for
examples:
- 9
type:
$ref: '#/components/schemas/TaskTypeEnum'
description: Type of step
examples:
- auto_email
subject:
anyOf:
- type: string
- type: 'null'
title: Subject
description: Subject line (email and gifting steps)
message:
anyOf:
- type: string
- type: 'null'
title: Message
description: Message body for the step
gift_id:
anyOf:
- type: string
- type: 'null'
title: Gift Id
description: ID of the gift attached to a gifting step
type: object
required:
- type
title: SequenceTemplateStepRequest
description: One step in a sequence template (write side).
UpdateSequenceTemplateRequest:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
description: New name for the sequence template
examples:
- Enterprise Onboarding v2
description:
anyOf:
- type: string
- type: 'null'
title: Description
description: New description for the sequence template
status:
anyOf:
- $ref: '#/components/schemas/PublicSequenceTemplateStatusEnum'
- type: 'null'
description: New status for the sequence template
examples:
- ACTIVE
steps:
anyOf:
- items:
$ref: '#/components/schemas/SequenceTemplateStepRequest'
type: array
- type: 'null'
title: Steps
description: Replacement list of steps (full replacement, not partial). Must be supplied together with `transitions`
transitions:
anyOf:
- items:
$ref: '#/components/schemas/SequenceTemplateTransitionRequest'
type: array
- type: 'null'
title: Transitions
description: 'Replacement list of transitions. Must be supplied together with `steps`; pass `[]` if the new step list has no transitions. A transition that omits its lead-time delay defaults to 3 business days: on `post_check_delay` for accepted-branch transitions (LINKEDIN_REQUEST_ACCEPTED, GIFT_ACCEPTED), on `pre_check_delay` for all others. Pass an explicit 0 to evaluate immediately.'
blocks:
anyOf:
- additionalProperties:
$ref: '#/components/schemas/SequenceTemplateBlockRequest'
type: object
- type: 'null'
title: Blocks
description: Replacement content blocks referenced by this template
type: object
title: UpdateSequenceTemplateRequest
description: Request body for updating a sequence template. All fields optional.
ContentBlockTypeEnum:
type: string
enum:
- MANUAL
- AI_GENERATED
title: ContentBlockTypeEnum
SequenceTemplateBlockResponse:
additionalProperties: true
type: object
ResponseMeta:
properties:
timestamp:
type: string
format: date-time
title: Timestamp
description: Server timestamp of the response
type: object
title: ResponseMeta
SequenceTemplateTransitionRequest:
properties:
from_step_index:
type: integer
title: From Step Index
description: Index of the source step within the template
examples:
- 1
to_step_index:
type: integer
title: To Step Index
description: Index of the destination step within the template
examples:
- 2
transition_type:
$ref: '#/components/schemas/SequenceTransitionTypeEnum'
description: Condition that triggers this transition
examples:
- PREVIOUS_STEP_COMPLETES
pre_check_time_unit:
type: string
title: Pre Check Time Unit
description: Time unit for `pre_check_delay`. One of `seconds`, `minutes`, `hours`, `days`, or `business_days`.
default: business_days
pre_check_delay:
anyOf:
- type: integer
- type: 'null'
title: Pre Check Delay
description: A grace window before this transition's condition starts being evaluated, measured from when the source step completed (in `pre_check_time_unit`). Use it when the condition could be satisfied immediately but you want to wait first — e.g. after an email is sent, hold off 2 business days before checking for a reply, giving the prospect time to respond. If omitted or null, defaults to 3 business days — except on accepted-branch transitions (LINKEDIN_REQUEST_ACCEPTED, GIFT_ACCEPTED), where the default lands on `post_check_delay` and this stays null. Pass an explicit 0 to evaluate immediately as soon as the source step completes.
examples:
- 2
post_check_time_unit:
type: string
title: Post Check Time Unit
description: Time unit for `post_check_delay`. One of `seconds`, `minutes`, `hours`, `days`, or `business_days`.
default: business_days
post_check_delay:
anyOf:
- type: integer
- type: 'null'
title: Post Check Delay
description: A pacing delay after this transition's condition has passed, before the destination step is scheduled (in `post_check_time_unit`). Use it to avoid an instantaneous, robotic-feeling response to a prospect-driven event — e.g. wait a business day after a LinkedIn connection is accepted before pitching, or after a gift is delivered before the thank-you. For accepted-branch transitions (LINKEDIN_REQUEST_ACCEPTED, GIFT_ACCEPTED), if omitted or null this defaults to 3 business days; pass an explicit 0 to schedule the next step immediately. `null` or `0` schedules immediately for all other transition types.
examples:
- 1
require_all:
type: boolean
title: Require All
description: Whether all conditions must be met (vs. any of them)
default: true
type: object
required:
- from_step_index
- to_step_index
- transition_type
title: SequenceTemplateTransitionRequest
description: A transition (ordering / branching rule) between two steps (write side).
CampaignStatusEnum:
type: string
enum:
- ACTIVE
- INACTIVE
- DRAFT
- ARCHIVED
title: CampaignStatusEnum