OpenAPI Specification
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