Update Automation Step
Edits a step of the draft version. A published version’s steps never change; edit the same key in the draft instead. previous_step_id can’t change. Setting source_code also needs every read permission listed for previewing a step, which the step’s code reads the account with.
Authorizations
An Account API key, an App API key, an account access token, an account-scoped user token, or a user OAuth token. Prepend the key or token with Bearer, for example Bearer ***************************. See Auth & API keys for how to get each one.
Headers
Pins the request to a dated API version.
"2026-11-05-1"
Path Parameters
Automation step ID, prefixed atos_.
Body
What the step does: wait holds the member for config.delay_seconds, email emails them, and message sends them a message from a team member. A draft step can switch between email and message, which clears config.sender_id. A wait can't become a sending step, or the other way round.
wait, email, message "message"
The step's settings for its action_type: delay_seconds for a wait, and sender_id for an email or a message. Writing it replaces the whole object.
- Wait
- Email
- Message
An email or message step's code: a TSX module whose default export gets the member and returns message.send(), message.skip() or message.exit() from whop:message. An email step sends its subject, its react element as the body and its text as the plain-text part; a message step sends its text. The code can import react and @react-email/components, and reads the account through the whop client from whop:message, which can only read: it holds every account-level :read permission that both the admin role and Whop AI hold except payout:account:read, as listed for previewing a step. Setting it, or previewing the step, needs every one of those permissions. Up to 64,000 characters. null on a wait, and until it is written.
"export default () => message.send({ subject: \"Thanks!\", text: \"Thanks for your order!\" });"
Response
Automation step updated
What the step does: wait holds the member for config.delay_seconds, email emails them, and message sends them a message from a team member. A draft step can switch between email and message, which clears config.sender_id. A wait can't become a sending step, or the other way round.
wait, email, message "email"
ID of the automation the step belongs to, prefixed ato_.
"ato_xxxxxxxxxxxxxx"
The step's settings for its action_type: delay_seconds for a wait, sender_id for an email or message. Writing it replaces the whole object.
- Wait
- Email
- Message
When the step was created, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
Automation step ID, prefixed atos_. A step gets a new ID in every version; key stays the same.
"atos_xxxxxxxxxxxxxx"
What must be fixed before the draft can be published, such as code that hasn't been written. Empty when there's nothing.
Identifies the same step across versions. A new step gets a key no step of the automation has used.
2
ID of the step this one runs after, prefixed atos_. null when it runs first, directly after the member enrolls.
"atos_xxxxxxxxxxxxxx"
The sender config.sender_id names. null on a wait, and when the step sends from the default sender.
- Email address
- User
An email or message step's code: a TSX module whose default export gets the member and returns message.send(), message.skip() or message.exit() from whop:message. An email step sends its subject, its react element as the body and its text as the plain-text part; a message step sends its text. The code can import react and @react-email/components, and reads the account through the whop client from whop:message, which can only read: it holds every account-level :read permission that both the admin role and Whop AI hold except payout:account:read, as listed for previewing a step. Setting it, or previewing the step, needs every one of those permissions. Up to 64,000 characters. null on a wait, and until it is written.
"export default () => message.send({ subject: \"Thanks!\", text: \"Thanks for your order!\" });"
When the step was last updated, as an ISO 8601 timestamp.
"2026-01-01T12:00:00.000Z"
The automation version this step is part of. Only the draft version's steps can change.
1
Members on this step's version who are waiting for it to run.
0

