Create automation
Creates a new automation. Executor must be a bot/agent user (automations always execute as an agent). Personal scope requires managePersonalAutomations; workspace requires manageWorkspaceAutomations. userPrompt accepts HTML or Markdown (automation prompt format: basic nodes, mentions, images; no files or videos).
/automationsAuthorizationOAuth2 access token · headerrequiredapi:writeAuthorizationBearer token (JWT) · headerrequiredfieldsToReturnstringComma-separated list of top-level response fields to return. Overrides the endpoint compact default unless responseShape=full is used.
responseShapestringAdvanced override. Omit for the endpoint compact default. Use full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
compactfullLT-Response-ShapestringAdvanced override. Set to full only when you need the complete endpoint response, including nested fields that are not selectable with fieldsToReturn.
fullapplication/jsonexecutionConfigobjectrequiredExecution config (agent-specific or workflow metadata). Not used for trigger matching filters; event trigger filters belong in triggers[].definition.filters.
executionTypestringrequiredExecution type (agent or workflow). Currently only agent is supported.
agentworkflowexecutorUserIdstringrequiredUser id of the executing agent. Must be a bot/agent user — automations always execute as an agent, never as a human user.
isEnabledbooleanWhether the automation is enabled
scopestringrequiredScope (personal or workspace). Personal requires managePersonalAutomations; workspace requires manageWorkspaceAutomations.
personalworkspacetitlestringrequiredAutomation title
triggersAutomationTriggerDto[]requiredTriggers (daily, weekly, monthly, customCron, webhook, organizationCreated, projectCreated, taskCreated, objectCreated, slackMessageInPublicChannel, slackReactionAdded). At least one required. For webhook, POST JSON to {WORKC_URL}/api/automations/webhooks/{webhookSecret} (no auth). For slackMessageInPublicChannel, see definition.channelId (Slack public channel ID) and optional text filters in AutomationTriggerDto. For slackReactionAdded, see definition.emojiName and optional definition.channelId. For event triggers, filters belong inside triggers[].definition.filters, not executionConfig.
Show propertiesHide properties
AutomationTriggerDtodefinitionobjectPer-trigger settings. slackMessageInPublicChannel — required channelId: Slack public channel ID (C…), not the human-readable name. Optional textPattern (message must contain this substring, case-insensitive) and useRegex (if true, textPattern is a JavaScript regex). Example: {"channelId":"C012ABCDE","textPattern":"bug","useRegex":false}. slackReactionAdded — required emojiName: Slack emoji short name. Colons and common pasted/natural forms are accepted and normalized (eyes, :eyes:, +1, :+1:, thumbsup, thumbs up). Optional channelId limits the trigger to one channel. Example: {"emojiName":":+1:","channelId":"C012ABCDE"}. On run, the agent receives triggerEventPayload.slack: channelId, channelType, userId, text, ts, threadTs — use with Slack integration tools to reply in-thread (threadTs ?? ts) and add/remove reactions on ts. organizationCreated / projectCreated / taskCreated / objectCreated — optional filters (FilterStripModel). Field names and value shapes must match the list grid for that entity: use action-details on GET /tasks/grid for taskCreated, GET /projects for projectCreated, GET /organizations for organizationCreated, internal GET …/objects/grid for objectCreated (not interchangeable). For event triggers, definition.filters must be a full FilterStripModel object such as {"quickSearch":"","filters":[...]}. Schedules — timeOfDay (HH:mm), weekday (0-6), dayOfMonth (1-31), cronExpression (customCron). webhook — no required fields.
isEnabledbooleanWhether the trigger is enabled
sortOrdernumberSort order for multiple triggers
typestringrequiredTrigger variant: daily, weekly, monthly, customCron, webhook, organizationCreated, projectCreated, taskCreated, objectCreated, slackMessageInPublicChannel, or slackReactionAdded. slackMessageInPublicChannel fires on new messages in a monitored public Slack channel; the workspace must have Slack connected and the agent must be in that channel.
dailyweeklymonthlycustomCronwebhookorganizationCreatedprojectCreatedtaskCreatedobjectCreatedslackMessageInPublicChannelslackReactionAddeduserPromptobject | nullrequiredUser prompt for agent (HTML or Markdown). Automation prompt format: basic nodes, mentions, images; no files or videos.
createdAtstring<date-time>requiredCreation timestamp
createdBystringrequiredCreator user ID
executionConfigobjectrequiredExecution config
executionTypestringrequiredExecution type
agentworkflowexecutorUserIdstringrequiredExecutor user ID
idstringrequiredAutomation ID
isEnabledbooleanrequiredWhether automation is enabled
ownerUserIdobject | nullrequiredOwner user ID (for personal scope)
scopestringrequiredScope
personalworkspacetitlestringrequiredAutomation title
triggersobject[]requiredTriggers. For type webhook, webhookSecret is present after save; use POST {base}/api/automations/webhooks/{webhookSecret} to run. For type slackMessageInPublicChannel, definition contains channelId (Slack C…) and optional textPattern/useRegex. For type slackReactionAdded, definition contains emojiName and optional channelId.
Show propertiesHide properties
objectdefinitionobjectidstringisEnabledbooleansortOrdernumbertypestringdailyweeklymonthlycustomCronwebhookorganizationCreatedprojectCreatedtaskCreatedobjectCreatedslackMessageInPublicChannelslackReactionAddedwebhookSecretstring | nullOnly for webhook triggers. Present after save. Inbound webhook: POST {base}/api/automations/webhooks/{webhookSecret} with Content-Type: application/json. No auth; secret authenticates. Request body is passed to the agent as context.
updatedAtstring<date-time>requiredLast update timestamp
updatedByobject | nullrequiredLast updater user ID
userPromptobject | nullrequiredUser prompt for agent (HTML, automation prompt format: basic nodes, mentions, images; no files or videos)
workspaceIdstringrequiredWorkspace ID
Unauthorized - Invalid or missing authentication token
Forbidden - Insufficient API scopes or permissions