Skip to main content
Create a composition

Authorizations

Authorization
string
header
required

A Tightknit admin API key, sent as Authorization: Bearer <key>.

Body

application/json
label
string
required

The name the composition is listed under in Message Blaster. Members never see it.

Required string length: 1 - 200
blocks
object[]
required

The message, as a Slack Block Kit payload. Block types and URLs are checked when it is saved, and the whole payload against Slack’s schema before it is sent; a refusal names each problem by its block path.

Required array length: 1 - 50 elements

Response

Success

object
enum<string>
required

Always composition.

Available options:
composition
id
string
required

Unique identifier for the object.

Example:

"cmps_7h2k9m4n1p6q"

created_at
string<date-time>
required

When the object was created.

updated_at
string<date-time>
required

When the object was last changed.

label
string
required

The name the composition is listed under in Message Blaster. Members never see it.

blocks
object[]
required

The message, as a Slack Block Kit payload. Each block carries a block_id once it is saved.

status
enum<string>
required

Where the composition is in its life. One of:

  • draft: not sent, and not scheduled.
  • scheduled: set to send at scheduled_at.
  • delivering: sending now; its deliveries report how it goes.
  • delivered: every delivery reached every recipient it could.
  • partially_delivered: some recipients were reached and some failed.
  • failed: no recipient was reached.
  • archived: put away in Studio.
Available options:
draft,
scheduled,
delivering,
delivered,
partially_delivered,
failed,
archived
visibility
enum<string>
required

Who can open it in Studio. Always studio, shared with every Studio user who can use Message Blaster: an API key never sees a composition its owner kept to themselves and the people they named.

Available options:
studio
studio_role
enum<string>
required

What every Studio user may do with it, and what an API key may do. One of:

  • viewer: read it.
  • commenter: read it and comment on it.
  • editor: also change it, set where it goes, and send it. A composition an API key creates is shared with editor.
Available options:
viewer,
commenter,
editor
revision
integer
required

A number every change increases. Send it back as expected_revision to refuse a change that would overwrite someone else’s with a 409.

Required range: x >= 0
current_version_number
integer
required

The number of its latest version: each deliberate save, and each send, records one.

Required range: x >= 0
scheduled_at
string<date-time> | null
required

When its scheduled send goes out, or went out. Null when it was never scheduled, was sent at once, or its schedule was canceled.

owner_profile_id
string | null
required

The id of the profile that owns it in Studio. Null for one an API key created, or once its owner’s profile is deleted.

scheduled_by_id
string | null
required

The id of the profile that scheduled its send. Null when it is not scheduled, when an API key scheduled it, or once that profile is deleted.

created_by_id
string | null
required

The id of the profile that created it. Null when an API key did, or once that profile is deleted.

updated_by_id
string | null
required

The id of the profile that last changed it. Null when an API key did, or once that profile is deleted.

owner
object | null

The profile that owns it. Present only when owner is expanded.

scheduled_by
object | null

The profile that scheduled its send. Present only when scheduled_by is expanded.

created_by
object | null

The profile that created it. Present only when created_by is expanded.

updated_by
object | null

The profile that last changed it. Present only when updated_by is expanded.

deliveries
object[]

Where it is set to go, and once sent, each send and how it went, oldest first. Present only when deliveries is expanded.