openapi: 3.0.3 info: title: Chatwoot Account AgentBots Automation Rule API description: This is the API documentation for Chatwoot server. version: 1.1.0 termsOfService: https://www.chatwoot.com/terms-of-service/ contact: email: hello@chatwoot.com license: name: MIT License url: https://opensource.org/licenses/MIT servers: - url: https://app.chatwoot.com/ tags: - name: Automation Rule description: Workflow automation rules paths: /api/v1/accounts/{account_id}/automation_rules: parameters: - $ref: '#/components/parameters/account_id' get: tags: - Automation Rule operationId: get-account-automation-rule summary: List all automation rules in an account parameters: - $ref: '#/components/parameters/account_id' - $ref: '#/components/parameters/page' description: Get details of automation rules in an Account security: - userApiKey: [] responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/automation_rule' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/bad_request_error' post: tags: - Automation Rule operationId: add-new-automation-rule-to-account summary: Add a new automation rule description: Add a new automation rule to account security: - userApiKey: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/automation_rule_create_update_payload' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/automation_rule' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/bad_request_error' /api/v1/accounts/{account_id}/automation_rules/{id}: parameters: - $ref: '#/components/parameters/account_id' - name: id in: path schema: type: number description: ID of the Automation Rule required: true get: tags: - Automation Rule operationId: get-details-of-a-single-automation-rule summary: Get a automation rule details description: Get the details of a automation rule in the account security: - userApiKey: [] parameters: - in: path name: id schema: type: integer required: true description: The ID of the automation rule to be updated. responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/automation_rule' example: payload: id: 90 account_id: 1 name: add-label-bug-if-message-contains-bug description: add-label-bug-if-message-contains-bug event_name: message_created conditions: - values: - incoming attribute_key: message_type query_operator: and filter_operator: equal_to - values: - bug attribute_key: content filter_operator: contains actions: - action_name: add_label action_params: - bugs - support-query created_on: 1650555440 active: true '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/bad_request_error' '404': description: The given rule ID does not exist in the account content: application/json: schema: $ref: '#/components/schemas/bad_request_error' patch: tags: - Automation Rule operationId: update-automation-rule-in-account summary: Update automation rule in Account description: Update a automation rule in account security: - userApiKey: [] parameters: - in: path name: id schema: type: integer required: true description: The ID of the automation rule to be updated. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/automation_rule_create_update_payload' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/automation_rule' '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/bad_request_error' '404': description: Rule not found content: application/json: schema: $ref: '#/components/schemas/bad_request_error' delete: tags: - Automation Rule operationId: delete-automation-rule-from-account summary: Remove a automation rule from account description: Remove a automation rule from account security: - userApiKey: [] parameters: - in: path name: id schema: type: integer required: true description: The ID of the automation rule to be deleted responses: '200': description: Success '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/bad_request_error' '404': description: automation rule not found content: application/json: schema: $ref: '#/components/schemas/bad_request_error' components: schemas: automation_rule_create_update_payload: type: object properties: name: type: string description: Rule name example: Add label on message create event description: type: string description: The description about the automation and actions example: Add label support and sales on message create event if incoming message content contains text help event_name: type: string enum: - conversation_created - conversation_updated - conversation_resolved - message_created example: message_created description: The event when you want to execute the automation actions active: type: boolean description: Enable/disable automation rule actions: type: array description: Array of actions which you want to perform when condition matches, e.g add label support if message contains content help. items: type: object example: action_name: add_label action_params: - support conditions: type: array description: Array of conditions on which conversation filter would work, e.g message content contains text help. items: type: object example: attribute_key: content filter_operator: contains query_operator: OR values: - help bad_request_error: title: data type: object properties: description: type: string errors: type: array items: $ref: '#/components/schemas/request_error' request_error: type: object properties: field: type: string message: type: string code: type: string automation_rule_item: type: object properties: id: type: integer description: The ID of the automation rule account_id: type: integer description: Account Id name: type: string description: The name of the rule example: Add label on message create event description: type: string description: Description to give more context about the rule example: Add label support and sales on message create event if incoming message content contains text help event_name: type: string description: Automation Rule event, on which we call the actions(conversation_created, conversation_updated, message_created) enum: - conversation_created - conversation_updated - message_created example: message_created conditions: type: array description: Array of conditions on which conversation/message filter would work items: type: object properties: values: type: array items: type: string attribute_key: type: string query_operator: type: string filter_operator: type: string example: attribute_key: content filter_operator: contains values: - help query_operator: and actions: type: array description: Array of actions which we perform when condition matches items: type: object properties: action_name: type: string action_params: type: array items: type: string example: action_name: add_label action_params: - support - sales created_on: type: integer description: The timestamp when the rule was created active: type: boolean description: Enable/disable automation rule automation_rule: type: object properties: payload: description: Response payload that contains automation rule(s) oneOf: - type: array description: Array of automation rules (for listing endpoint) items: $ref: '#/components/schemas/automation_rule_item' - type: object description: Single automation rule (for show/create/update endpoints) allOf: - $ref: '#/components/schemas/automation_rule_item' parameters: page: in: query name: page schema: type: integer default: 1 required: false description: The page parameter account_id: in: path name: account_id schema: type: integer required: true description: The numeric ID of the account securitySchemes: userApiKey: type: apiKey in: header name: api_access_token description: This token can be obtained by visiting the profile page or via rails console. Provides access to endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user. agentBotApiKey: type: apiKey in: header name: api_access_token description: This token should be provided by system admin or obtained via rails console. This token can be used to build bot integrations and can only access limited apis. platformAppApiKey: type: apiKey in: header name: api_access_token description: This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles. x-tagGroups: - name: Platform tags: - Accounts - Account Users - AgentBots - Users - name: Application tags: - Account AgentBots - Account - Agents - Audit Logs - Canned Responses - Contacts - Contact Labels - Conversation Assignments - Conversation Labels - Conversations - Custom Attributes - Custom Filters - Inboxes - Integrations - Labels - Messages - Profile - Reports - Teams - Webhooks - Automation Rule - Help Center - name: Client tags: - Contacts API - Conversations API - Messages API - name: Others tags: - CSAT Survey Page