Compare commits

...
Author SHA1 Message Date
Tanmay Deep Sharma 78b03a1651 validate swagger api specification 2025-05-20 17:00:52 +07:00
Tanmay Deep Sharma 22b2280337 update the commit id in docs.json 2025-05-20 16:55:50 +07:00
Tanmay Deep Sharma 3b42191705 add tags to swagger 2025-05-20 16:43:22 +07:00
Tanmay Deep Sharma 019a596a3e add tags to swagger 2025-05-20 16:09:44 +07:00
Tanmay Deep Sharma 285b79d488 add tags to swagger 2025-05-20 15:49:16 +07:00
Tanmay Deep Sharma b3c17cc81e add tags to swagger 2025-05-20 15:41:50 +07:00
Tanmay Deep Sharma 90c600acd9 add tags to swagger 2025-05-20 15:35:41 +07:00
Tanmay Deep Sharma 2187a3e566 update user profile payload for developer docs 2025-05-20 00:49:24 +07:00
Tanmay Deep Sharma 2b043e5460 update contact payload for developer docs 2025-05-20 00:34:42 +07:00
Tanmay Deep Sharma ac94e34c72 update message payload for developer docs 2025-05-15 15:36:55 +07:00
Tanmay Deep Sharma dc9e19a122 update portal payload for developer docs 2025-05-15 15:30:40 +07:00
Tanmay Deep Sharma 073e32770f update portal payload for developer docs 2025-05-15 15:22:16 +07:00
Tanmay Deep Sharma a1bddd53f1 update automation rules payload for developer docs 2025-05-15 15:10:04 +07:00
Tanmay Deep Sharma fa74cac1d6 update automation rules payload for developer docs 2025-05-15 15:03:51 +07:00
Tanmay Deep Sharma 7d863d3e29 update automation rules payload for developer docs 2025-05-15 14:56:38 +07:00
Tanmay Deep Sharma 97c3da6f93 update automation rules payload for developer docs 2025-05-15 14:49:26 +07:00
Tanmay Deep Sharma c56c1489d5 update contact payload for developer docs 2025-05-15 14:28:29 +07:00
Tanmay Deep Sharma f0a43e3ba6 update contact payload for developer docs 2025-05-15 14:01:36 +07:00
Tanmay Deep Sharma 97b6624d9d update message payload for developer docs 2025-05-15 13:43:35 +07:00
Tanmay Deep Sharma fd3426a984 update conversation payload for developer docs 2025-05-15 13:11:10 +07:00
Tanmay Deep Sharma 9181a57df2 fix developer docs request data 2025-05-15 12:39:48 +07:00
Tanmay Deep Sharma c738b3cfaa define tags in openapi documentation 2025-05-13 17:28:56 +07:00
Tanmay Deep Sharma f20a1e96e4 Merge remote-tracking branch 'daniel/develop' into developer-docs 2025-05-13 14:58:46 +07:00
Daniel Jimenez aedec95e37 fix: Test all endpoints, ensuring payloads work correctly 2025-05-13 17:24:36 +12:00
Daniel Jimenez 2c3a3bbbd2 feat: Finish adding all request payload examples 2025-05-13 14:29:02 +12:00
Daniel Jimenez c3f741bdda fix: Update swagger.json spec 2025-05-13 14:29:02 +12:00
Daniel Jimenez 62e9c613df fix: Add more examples to api endpoints 2025-05-13 14:29:02 +12:00
Daniel Jimenez 9eefec31b3 feat: Add examples to request payloads 2025-05-13 14:29:02 +12:00
Daniel Jimenez 470d51c913 fix: Security definitions for endpoints 2025-05-13 14:29:02 +12:00
Daniel JimenezandDaniel Jimenez 444668c646 feat: Update swagger to openapi 3.0.4 2025-05-13 14:29:02 +12:00
Tanmay Deep Sharma f4a77dabd9 add Open API v3 developer docs 2025-05-08 12:47:22 +07:00
229 changed files with 38599 additions and 5993 deletions
@@ -68,7 +68,7 @@ class Api::V1::Accounts::ArticlesController < Api::V1::Accounts::BaseController
def article_params def article_params
params.require(:article).permit( params.require(:article).permit(
:title, :slug, :position, :content, :description, :position, :category_id, :author_id, :associated_article_id, :status, :title, :slug, :position, :content, :description, :category_id, :author_id, :associated_article_id, :status,
:locale, meta: [:title, :locale, meta: [:title,
:description, :description,
{ tags: [] }] { tags: [] }]
+28
View File
@@ -0,0 +1,28 @@
## Chatwoot Developer Documentation
Welcome to the official Chatwoot developer documentation. This guide contains everything you need to know about Chatwoot APIs and build custom flows on top of Chatwoot APIs.
### 👩‍💻 Development
Install the [Mintlify CLI](https://www.npmjs.com/package/mintlify) to preview the documentation changes locally. To install, use the following command
```
npm i -g mintlify
```
Run the following command at the root of your documentation (where mint.json is)
```
mintlify dev
```
### 😎 Publishing Changes
Changes will be deployed to production automatically after pushing to the default branch.
You can also preview changes using PRs, which generates a preview link of the docs.
#### Troubleshooting
- Mintlify dev isn't running - Run `mintlify install` it'll re-install dependencies.
- Page loads as a 404 - Make sure you are running in a folder with `mint.json`
+84
View File
@@ -0,0 +1,84 @@
{
"name": "Chatwoot Developer Docs",
"description": "Official developer documentation for Chatwoot - the open-source customer support platform. Learn about our APIs, integrations, and development guidelines.",
"logo": {
"dark": "/logo/dark.png",
"light": "/logo/light.png"
},
"favicon": "/favicon.png",
"colors": {
"primary": "#0069ED",
"light": "#4D9CFF",
"dark": "#0050B4"
},
"theme": "maple",
"navigation": {
"tabs": [
{
"tab": "API Documentation",
"groups": [
{
"group": "Platform API",
"description": "APIs for managing platform aspects of Chatwoot",
"includeTags": [
"Accounts",
"Account Users",
"AgentBots",
"Users"
],
"openapi": "https://raw.githubusercontent.com/chatwoot/chatwoot/3b421917058c6761aa138044fe518dacdca75e89/swagger/tag_groups/platform_swagger.json"
},
{
"group": "Application API",
"description": "APIs for managing application aspects of Chatwoot",
"includeTags": [
"Account AgentBots",
"Agents",
"Canned Responses",
"Contacts",
"Contact Labels",
"Conversation Assignments",
"Conversation Labels",
"Conversations",
"Custom Attributes",
"Custom Filters",
"Inboxes",
"Integrations",
"Messages",
"Profile",
"Reports",
"Teams",
"Webhooks",
"Automation Rule",
"Help Center"
],
"openapi": "https://raw.githubusercontent.com/chatwoot/chatwoot/3b421917058c6761aa138044fe518dacdca75e89/swagger/tag_groups/application_swagger.json"
},
{
"group": "Client API",
"description": "APIs for client applications",
"includeTags": [
"Contacts API",
"Conversations API",
"Messages API"
],
"openapi": "https://raw.githubusercontent.com/chatwoot/chatwoot/3b421917058c6761aa138044fe518dacdca75e89/swagger/tag_groups/client_swagger.json"
},
{
"group": "Other APIs",
"description": "Other Chatwoot APIs",
"includeTags": [
"CSAT Survey Page"
],
"openapi": "https://raw.githubusercontent.com/chatwoot/chatwoot/3b421917058c6761aa138044fe518dacdca75e89/swagger/tag_groups/other_swagger.json"
}
]
}
]
},
"footerSocials": {
"twitter": "https://twitter.com/chatwootapp",
"github": "https://github.com/chatwoot",
"linkedin": "https://www.linkedin.com/company/chatwoot"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 KiB

+96
View File
@@ -17,6 +17,102 @@ namespace :swagger do
puts 'Swagger build was successful.' puts 'Swagger build was successful.'
puts "Generated #{base_path}/swagger.json" puts "Generated #{base_path}/swagger.json"
puts 'Go to http://localhost:3000/swagger see the changes.' puts 'Go to http://localhost:3000/swagger see the changes.'
# Build tag group specific swagger files
Rake::Task['swagger:build_tag_groups'].invoke
end end
end end
desc 'build separate swagger files for each tag group'
task build_tag_groups: :environment do
require 'json_refs'
base_path = Rails.root.join('swagger')
tag_groups_path = base_path.join('tag_groups')
# Load the full swagger specification
full_spec = JSON.parse(File.read(base_path.join('swagger.json')))
# Load the tag groups from index.yml
swagger_index = YAML.safe_load(File.open(base_path.join('index.yml')))
tag_groups = swagger_index['x-tagGroups']
# Process each tag group
tag_groups.each do |tag_group|
group_name = tag_group['name']
tags = tag_group['tags']
# Create a copy of the full spec for this tag group
tag_spec = full_spec.dup
# Filter paths to only include those with operations tagged with any of our tags
filtered_paths = {}
full_spec['paths'].each do |path, path_item|
# Check if any operation in this path has a tag from our group
operations_with_our_tags = false
path_item.each do |method, operation|
next unless operation.is_a?(Hash) && operation['tags']
# Check if any of our tags are in the operation's tags
if (operation['tags'] & tags).any?
operations_with_our_tags = true
break
end
end
# If we found operations with our tags, add the path to our filtered paths
if operations_with_our_tags
filtered_paths[path] = path_item
end
end
# Replace the paths in our tag-specific spec
tag_spec['paths'] = filtered_paths
# Filter tags to only include those in our group
tag_spec['tags'] = full_spec['tags'].select { |tag| tags.include?(tag['name']) }
# Write the tag-specific spec to file
output_file = "#{group_name.downcase}_swagger.json"
output_file = "other_swagger.json" if group_name.downcase == 'others'
File.write(tag_groups_path.join(output_file), JSON.pretty_generate(tag_spec))
end
puts 'Tag-specific swagger files generated successfully.'
end
desc 'build swagger files and create symlinks in developer-docs'
task build_for_docs: :environment do
# First, build the swagger files
Rake::Task['swagger:build'].invoke
# Create directories in developer-docs if they don't exist
dev_docs_public = Rails.root.join('developer-docs', 'public')
FileUtils.mkdir_p(File.join(dev_docs_public, 'swagger', 'tag_groups'))
# Create symlinks to the swagger files
tag_groups_path = Rails.root.join('swagger', 'tag_groups')
# Symlink each JSON file
puts 'Creating symlinks for developer-docs...'
symlink_files = %w[platform_swagger.json application_swagger.json client_swagger.json other_swagger.json]
symlink_files.each do |file|
source = File.join(tag_groups_path, file)
target = File.join(dev_docs_public, 'swagger', 'tag_groups', file)
# Remove existing file or symlink
FileUtils.rm_f(target)
# Create a relative symbolic link
rel_path = Pathname.new(source).relative_path_from(Pathname.new(File.dirname(target)))
FileUtils.ln_sf(rel_path, target)
end
puts 'Symlinks created successfully.'
puts 'You can now run the Mintlify dev server to preview the documentation.'
end
end end
+1 -1
View File
@@ -6,4 +6,4 @@ properties:
errors: errors:
type: array type: array
items: items:
$ref: '#/definitions/request_error' $ref: '#/components/schemas/request_error'
+83 -31
View File
@@ -1,13 +1,11 @@
## ---------- ERRORS ------------- ## ## ---------- ERRORS -------------- ##
## -------------------------------- ## ## -------------------------------- ##
bad_request_error: bad_request_error:
$ref: ./error/bad_request.yml $ref: ./error/bad_request.yml
request_error: request_error:
$ref: ./error/request.yml $ref: ./error/request.yml
## ---------- RESOURCE ------------ ##
## ---------- RESOURCE ------------- ##
## -------------------------------- ## ## -------------------------------- ##
generic_id: generic_id:
@@ -18,12 +16,20 @@ custom_attribute:
$ref: ./resource/custom_attribute.yml $ref: ./resource/custom_attribute.yml
automation_rule: automation_rule:
$ref: ./resource/automation_rule.yml $ref: ./resource/automation_rule.yml
automation_rule_item:
$ref: ./resource/automation_rule_item.yml
portal: portal:
$ref: ./resource/portal.yml $ref: ./resource/portal.yml
category: portal_single:
$ref: ./resource/category.yml $ref: ./resource/portal_single.yml
article: portal_config:
$ref: ./resource/article.yml $ref: ./resource/portal_config.yml
portal_logo:
$ref: ./resource/portal_logo.yml
portal_meta:
$ref: ./resource/portal_meta.yml
portal_item:
$ref: ./resource/portal_item.yml
category: category:
$ref: ./resource/category.yml $ref: ./resource/category.yml
article: article:
@@ -40,6 +46,8 @@ agent:
$ref: ./resource/agent.yml $ref: ./resource/agent.yml
inbox: inbox:
$ref: ./resource/inbox.yml $ref: ./resource/inbox.yml
inbox_contact:
$ref: ./resource/inbox_contact.yml
agent_bot: agent_bot:
$ref: ./resource/agent_bot.yml $ref: ./resource/agent_bot.yml
contact_inboxes: contact_inboxes:
@@ -52,6 +60,8 @@ webhook:
$ref: ./resource/webhook.yml $ref: ./resource/webhook.yml
account: account:
$ref: ./resource/account.yml $ref: ./resource/account.yml
account_user:
$ref: ./resource/account_user.yml
platform_account: platform_account:
$ref: ./resource/platform_account.yml $ref: ./resource/platform_account.yml
team: team:
@@ -71,13 +81,18 @@ public_message:
public_inbox: public_inbox:
$ref: ./resource/public/inbox.yml $ref: ./resource/public/inbox.yml
## ---------- REQUEST ------------- ## ## ---------- REQUEST ------------- ##
## -------------------------------- ## ## -------------------------------- ##
account_create_update_payload: account_create_update_payload:
$ref: ./request/account/create_update_payload.yml $ref: ./request/account/create_update_payload.yml
account_user_create_update_payload:
$ref: ./request/account_user/create_update_payload.yml
platform_agent_bot_create_update_payload:
$ref: ./request/platform/agent_bot/create_update_payload.yml
agent_bot_create_update_payload: agent_bot_create_update_payload:
$ref: ./request/agent_bot/create_update_payload.yml $ref: ./request/agent_bot/create_update_payload.yml
@@ -89,21 +104,36 @@ canned_response_create_update_payload:
custom_attribute_create_update_payload: custom_attribute_create_update_payload:
$ref: ./request/custom_attribute/create_update_payload.yml $ref: ./request/custom_attribute/create_update_payload.yml
## contact
contact_create:
$ref: ./request/contact/create.yml
contact_update:
$ref: ./request/contact/update.yml
## conversation ## Agent
conversation_message_create: agent_create_payload:
$ref: ./request/conversation/create_message.yml $ref: ./request/agent/create_payload.yml
agent_update_payload:
$ref: ./request/agent/update_payload.yml
# Team request Payload ## Contact
contact_create_payload:
$ref: ./request/contact/create_payload.yml
contact_update_payload:
$ref: ./request/contact/update_payload.yml
## Conversation
conversation_create_payload:
$ref: ./request/conversation/create_payload.yml
conversation_message_create_payload:
$ref: ./request/conversation/create_message_payload.yml
# Inbox
inbox_create_payload:
$ref: ./request/inbox/create_payload.yml
inbox_update_payload:
$ref: ./request/inbox/update_payload.yml
# Team
team_create_update_payload: team_create_update_payload:
$ref: ./request/team/create_update_payload.yml $ref: ./request/team/create_update_payload.yml
# Custom Filter request Payload # Custom Filter
custom_filter_create_update_payload: custom_filter_create_update_payload:
$ref: ./request/custom_filter/create_update_payload.yml $ref: ./request/custom_filter/create_update_payload.yml
@@ -128,7 +158,6 @@ category_create_update_payload:
article_create_update_payload: article_create_update_payload:
$ref: ./request/portal/article_create_update_payload.yml $ref: ./request/portal/article_create_update_payload.yml
## public requests ## public requests
public_contact_create_update_payload: public_contact_create_update_payload:
$ref: ./request/public/contact/create_update_payload.yml $ref: ./request/public/contact/create_update_payload.yml
@@ -141,37 +170,36 @@ public_message_update_payload:
public_conversation_create_payload: public_conversation_create_payload:
$ref: ./request/public/conversation/create_payload.yml $ref: ./request/public/conversation/create_payload.yml
## ---------- RESPONSE ------------- ## ## ---------- RESPONSE ------------ ##
## -------------------------------- ## ## -------------------------------- ##
## contact ## Contact
extended_contact: extended_contact:
allOf: allOf:
- $ref: '#/definitions/contact' - $ref: '#/components/schemas/contact'
- $ref: ./resource/extension/contact/show.yml - $ref: ./resource/extension/contact/show.yml
contact_base: contact_base:
allOf: allOf:
- $ref: '#/definitions/generic_id' - $ref: '#/components/schemas/generic_id'
- $ref: '#/definitions/contact' - $ref: '#/components/schemas/contact'
contact_list: contact_list:
type: array type: array
description: 'array of contacts' description: 'array of contacts'
items: items:
allOf: allOf:
- $ref: '#/definitions/generic_id' - $ref: '#/components/schemas/contact'
- $ref: '#/definitions/contact'
contact_conversations: contact_conversations:
type: array type: array
description: 'array of conversations' description: 'array of conversations'
items: items:
allOf: allOf:
- $ref: '#/definitions/conversation' - $ref: '#/components/schemas/conversation'
- $ref: ./resource/extension/contact/conversation.yml - $ref: ./resource/extension/contact/conversation.yml
- $ref: ./resource/extension/conversation/with_display_id.yml - $ref: ./resource/extension/conversation/with_display_id.yml
contact_labels: contact_labels:
$ref: ./resource/extension/contact/labels.yml $ref: ./resource/extension/contact/labels.yml
## conversation ## Conversation
conversation_list: conversation_list:
$ref: ./resource/extension/conversation/list.yml $ref: ./resource/extension/conversation/list.yml
conversation_show: conversation_show:
@@ -181,9 +209,33 @@ conversation_status_toggle:
conversation_labels: conversation_labels:
$ref: ./resource/extension/conversation/labels.yml $ref: ./resource/extension/conversation/labels.yml
## Report
## report
account_summary: account_summary:
$ref: './resource/reports/summary.yml' $ref: './resource/reports/summary.yml'
agent_conversation_metrics: agent_conversation_metrics:
$ref: './resource/reports/conversation/agent.yml' $ref: './resource/reports/conversation/agent.yml'
contact_detail:
$ref: ./resource/contact_detail.yml
message_detailed:
$ref: ./resource/message_detailed.yml
conversation_meta:
$ref: ./resource/conversation_meta.yml
conversation_messages:
$ref: ./resource/conversation_messages.yml
contact_meta:
$ref: ./resource/contact_meta.yml
contact_inbox:
$ref: ./resource/contact_inbox.yml
contact_list_item:
$ref: ./resource/contact_list_item.yml
contacts_list_response:
$ref: ./resource/contacts_list_response.yml
contact_show_response:
$ref: ./resource/contact_show_response.yml
contact_conversation_message:
$ref: ./resource/contact_conversation_message.yml
contact_conversations_response:
$ref: ./resource/contact_conversations_response.yml
contactable_inboxes_response:
$ref: ./resource/contactable_inboxes_response.yml
@@ -3,3 +3,29 @@ properties:
name: name:
type: string type: string
description: Name of the account description: Name of the account
example: 'My Account'
locale:
type: string
description: The locale of the account
example: 'en'
domain:
type: string
description: The domain of the account
example: 'example.com'
support_email:
type: string
description: The support email of the account
example: 'support@example.com'
status:
type: string
enum: ['active', 'suspended']
description: The status of the account
example: 'active'
limits:
type: object
description: The limits of the account
example: {}
custom_attributes:
type: object
description: The custom attributes of the account
example: {}
@@ -0,0 +1,13 @@
type: object
required:
- user_id
- role
properties:
user_id:
type: integer
description: The ID of the user
example: 1
role:
type: string
description: whether user is an administrator or agent
example: administrator
@@ -0,0 +1,28 @@
type: object
required:
- name
- email
- role
properties:
name:
type: string
description: Full Name of the agent
example: 'John Doe'
email:
type: string
description: Email of the Agent
example: 'john.doe@acme.inc'
role:
type: string
enum: ['agent', 'administrator']
description: Whether its administrator or agent
example: 'agent'
availability_status:
type: string
enum: ['available', 'busy', 'offline']
description: The availability setting of the agent.
example: 'available'
auto_offline:
type: boolean
description: Whether the availability status of agent is configured to go offline automatically when away.
example: true
@@ -0,0 +1,18 @@
type: object
required:
- role
properties:
role:
type: string
enum: ['agent', 'administrator']
description: Whether its administrator or agent
example: 'agent'
availability_status:
type: string
enum: ['available', 'busy', 'offline']
description: The availability status of the agent.
example: 'available'
auto_offline:
type: boolean
description: Whether the availability status of agent is configured to go offline automatically when away.
example: true
@@ -3,9 +3,28 @@ properties:
name: name:
type: string type: string
description: The name of the agent bot description: The name of the agent bot
example: 'My Agent Bot'
description: description:
type: string type: string
description: The description about the agent bot description: The description of the agent bot
example: 'This is a sample agent bot'
outgoing_url: outgoing_url:
type: string type: string
description: The webhook URL for the bot description: The webhook URL for the bot
example: 'https://example.com/webhook'
avatar:
type: string
format: binary
description: Send the form data with the avatar image binary or use the avatar_url
avatar_url:
type: string
description: The url to a jpeg, png file for the agent bot avatar
example: https://example.com/avatar.png
bot_type:
type: integer
description: The type of the bot (0 for webhook)
example: 0
bot_config:
type: object
description: The configuration for the bot
example: {}
@@ -36,6 +36,6 @@ properties:
example: example:
attribute_key: content attribute_key: content
filter_operator: contains filter_operator: contains
query_operator: nil query_operator: OR
values: values:
- help - help
@@ -3,6 +3,8 @@ properties:
content: content:
type: string type: string
description: Message content for canned response description: Message content for canned response
example: 'Hello, {{contact.name}}! Welcome to our service.'
short_code: short_code:
type: string type: string
description: Short Code for quick access of the canned response description: Short Code for quick access of the canned response
example: 'welcome'
@@ -0,0 +1,44 @@
type: object
required:
- inbox_id
properties:
inbox_id:
type: number
description: ID of the inbox to which the contact belongs
example: 1
name:
type: string
description: name of the contact
example: Alice
email:
type: string
description: email of the contact
example: alice@acme.inc
blocked:
type: boolean
description: whether the contact is blocked or not
example: false
phone_number:
type: string
description: phone number of the contact
example: '+123456789'
avatar:
type: string
format: binary
description: Send the form data with the avatar image binary or use the avatar_url
avatar_url:
type: string
description: The url to a jpeg, png file for the contact avatar
example: https://example.com/avatar.png
identifier:
type: string
description: A unique identifier for the contact in external system
example: '1234567890'
additional_attributes:
type: object
description: An object where you can store additional attributes for contact. example {"type":"customer", "age":30}
example: { 'type': 'customer', 'age': 30 }
custom_attributes:
type: object
description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30}, this should have a valid custom attribute definition.
example: {}
@@ -1,25 +0,0 @@
type: object
properties:
name:
type: string
description: name of the contact
email:
type: string
description: email of the contact
phone_number:
type: string
description: phone number of the contact
avatar:
type: string
format: binary
description: Send the form data with the avatar image binary or use the avatar_url
avatar_url:
type: string
description: The url to a jpeg, png file for the contact avatar
identifier:
type: string
description: A unique identifier for the contact in external system
custom_attributes:
type: object
description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30}
@@ -1,18 +1,21 @@
type: object type: object
required:
- inbox_id
properties: properties:
inbox_id:
type: number
name: name:
type: string type: string
description: name of the contact description: name of the contact
example: Alice
email: email:
type: string type: string
description: email of the contact description: email of the contact
example: alice@acme.inc
blocked:
type: boolean
description: whether the contact is blocked or not
example: false
phone_number: phone_number:
type: string type: string
description: phone number of the contact description: phone number of the contact
example: '+123456789'
avatar: avatar:
type: string type: string
format: binary format: binary
@@ -20,9 +23,16 @@ properties:
avatar_url: avatar_url:
type: string type: string
description: The url to a jpeg, png file for the contact avatar description: The url to a jpeg, png file for the contact avatar
example: https://example.com/avatar.png
identifier: identifier:
type: string type: string
description: A unique identifier for the contact in external system description: A unique identifier for the contact in external system
example: '1234567890'
additional_attributes:
type: object
description: An object where you can store additional attributes for contact. example {"type":"customer", "age":30}
example: { 'type': 'customer', 'age': 30 }
custom_attributes: custom_attributes:
type: object type: object
description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30} description: An object where you can store custom attributes for contact. example {"type":"customer", "age":30}, this should have a valid custom attribute definition.
example: {}
@@ -5,20 +5,29 @@ properties:
content: content:
type: string type: string
description: The content of the message description: The content of the message
example: 'Hello, how can I help you?'
message_type: message_type:
type: string type: string
enum: ['outgoing', 'incoming'] enum: ['outgoing', 'incoming']
description: The type of the message
example: 'outgoing'
private: private:
type: boolean type: boolean
description: Flag to identify if it is a private note description: Flag to identify if it is a private note
example: false
content_type: content_type:
type: string type: string
enum: ['text', 'input_email', 'cards', 'input_select', 'form', 'article'] enum: ['text', 'input_email', 'cards', 'input_select', 'form', 'article']
example: 'cards' description: Content type of the message
description: 'if you want to create custom message types' example: 'text'
content_attributes: content_attributes:
type: object type: object
description: attributes based on your content type description: Attributes based on the content type
example: {}
campaign_id:
type: integer
description: The campaign id to which the message belongs
example: 1
template_params: template_params:
type: object type: object
description: The template params for the message in case of whatsapp Channel description: The template params for the message in case of whatsapp Channel
@@ -39,4 +48,4 @@ properties:
type: object type: object
description: The processed param values for template variables in template description: The processed param values for template variables in template
example: example:
1: "Chatwoot" 1: 'Chatwoot'
@@ -0,0 +1,79 @@
type: object
required:
- source_id
- inbox_id
properties:
source_id:
type: string
description: Conversation source id
example: '1234567890'
inbox_id:
type: integer
description: 'Id of inbox in which the conversation is created <br/> Allowed Inbox Types: Website, Phone, Api, Email'
example: 1
contact_id:
type: integer
description: Contact Id for which conversation is created
example: 1
additional_attributes:
type: object
description: Lets you specify attributes like browser information
example:
{
browser: 'Chrome',
browser_version: '89.0.4389.82',
os: 'Windows',
os_version: '10',
}
custom_attributes:
type: object
description: The object to save custom attributes for conversation, accepts custom attributes key and value
example: { attribute_key: attribute_value, priority_conversation_number: 3 }
status:
type: string
enum: ['open', 'resolved', 'pending']
description: Specify the conversation whether it's pending, open, closed
example: open
assignee_id:
type: integer
description: Agent Id for assigning a conversation to an agent
example: 1
team_id:
type: integer
description: Team Id for assigning a conversation to a team\
example: 1
snoozed_until:
type: string
format: date-time
description: Snoozed until date time
example: '2030-07-21T17:32:28Z'
message:
type: object
description: The initial message to be sent to the conversation
required: ['content']
properties:
content:
type: string
description: The content of the message
example: 'Hello, how can I help you?'
template_params:
type: object
description: The template params for the message in case of whatsapp Channel
properties:
name:
type: string
description: Name of the template
example: 'sample_issue_resolution'
category:
type: string
description: Category of the template
example: UTILITY
language:
type: string
description: Language of the template
example: en_US
processed_params:
type: object
description: The processed param values for template variables in template
example:
1: 'Chatwoot'
@@ -3,20 +3,34 @@ properties:
attribute_display_name: attribute_display_name:
type: string type: string
description: Attribute display name description: Attribute display name
example: 'Custom Attribute'
attribute_display_type: attribute_display_type:
type: integer type: integer
description: Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7) description: Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7)
example: 0
attribute_description: attribute_description:
type: string type: string
description: Attribute description description: Attribute description
example: 'This is a custom attribute'
attribute_key: attribute_key:
type: string type: string
description: Attribute unique key value description: Attribute unique key value
example: 'custom_attribute'
attribute_values: attribute_values:
type: array type: array
description: Attribute values description: Attribute values
items: items:
type: string type: string
example: ['value1', 'value2']
attribute_model: attribute_model:
type: integer type: integer
description: Attribute type(conversation_attribute- 0, contact_attribute- 1) description: Attribute type(conversation_attribute- 0, contact_attribute- 1)
example: 0
regex_pattern:
type: string
description: Regex pattern (Only applicable for type- text). The regex pattern is used to validate the attribute value(s).
example: '^[a-zA-Z0-9]+$'
regex_cue:
type: string
description: Regex cue message (Only applicable for type- text). The cue message is shown when the regex pattern is not matched.
example: 'Please enter a valid value'
@@ -3,10 +3,13 @@ properties:
name: name:
type: string type: string
description: The name of the custom filter description: The name of the custom filter
example: 'My Custom Filter'
type: type:
type: string type: string
enum: ["conversation", "contact", "report"] enum: ['conversation', 'contact', 'report']
description: The description about the custom filter description: The description about the custom filter
example: 'conversation'
query: query:
type: object type: object
description: A query that needs to be saved as a custom filter description: A query that needs to be saved as a custom filter
example: {}
@@ -0,0 +1,88 @@
type: object
properties:
name:
type: string
description: The name of the inbox
example: 'Support'
avatar:
type: string
format: binary
description: Image file for avatar
greeting_enabled:
type: boolean
description: Enable greeting message
example: true
greeting_message:
type: string
description: Greeting message to be displayed on the widget
example: Hello, how can I help you?
enable_email_collect:
type: boolean
description: Enable email collection
example: true
csat_survey_enabled:
type: boolean
description: Enable CSAT survey
example: true
enable_auto_assignment:
type: boolean
description: Enable Auto Assignment
example: true
working_hours_enabled:
type: boolean
description: Enable working hours
example: true
out_of_office_message:
type: string
description: Out of office message to be displayed on the widget
example: We are currently out of office. Please leave a message and we will get back to you.
timezone:
type: string
description: Timezone of the inbox
example: 'America/New_York'
allow_messages_after_resolved:
type: boolean
description: Allow messages after conversation is resolved
example: true
lock_to_single_conversation:
type: boolean
description: Lock to single conversation
example: true
portal_id:
type: integer
description: Id of the help center portal to attach to the inbox
example: 1
sender_name_type:
type: string
description: Sender name type for the inbox
enum: ['friendly', 'professional']
example: 'friendly'
business_name:
type: string
description: Business name for the inbox
example: 'My Business'
channel:
type: object
properties:
type:
type: string
description: Type of the channel
enum:
['web_widget', 'api', 'email', 'line', 'telegram', 'whatsapp', 'sms']
example: web_widget
website_url:
type: string
description: URL at which the widget will be loaded
example: 'https://example.com'
welcome_title:
type: string
description: Welcome title to be displayed on the widget
example: 'Welcome to our support'
welcome_tagline:
type: string
description: Welcome tagline to be displayed on the widget
example: 'We are here to help you'
widget_color:
type: string
description: A Hex-color string used to customize the widget
example: '#FF5733'
@@ -0,0 +1,82 @@
type: object
properties:
name:
type: string
description: The name of the inbox
example: 'Support'
avatar:
type: string
format: binary
description: Image file for avatar
greeting_enabled:
type: boolean
description: Enable greeting message
example: true
greeting_message:
type: string
description: Greeting message to be displayed on the widget
example: Hello, how can I help you?
enable_email_collect:
type: boolean
description: Enable email collection
example: true
csat_survey_enabled:
type: boolean
description: Enable CSAT survey
example: true
enable_auto_assignment:
type: boolean
description: Enable Auto Assignment
example: true
working_hours_enabled:
type: boolean
description: Enable working hours
example: true
out_of_office_message:
type: string
description: Out of office message to be displayed on the widget
example: We are currently out of office. Please leave a message and we will get back to you.
timezone:
type: string
description: Timezone of the inbox
example: 'America/New_York'
allow_messages_after_resolved:
type: boolean
description: Allow messages after conversation is resolved
example: true
lock_to_single_conversation:
type: boolean
description: Lock to single conversation
example: true
portal_id:
type: integer
description: Id of the help center portal to attach to the inbox
example: 1
sender_name_type:
type: string
description: Sender name type for the inbox
enum: ['friendly', 'professional']
example: 'friendly'
business_name:
type: string
description: Business name for the inbox
example: 'My Business'
channel:
type: object
properties:
website_url:
type: string
description: URL at which the widget will be loaded
example: 'https://example.com'
welcome_title:
type: string
description: Welcome title to be displayed on the widget
example: 'Welcome to our support'
welcome_tagline:
type: string
description: Welcome tagline to be displayed on the widget
example: 'We are here to help you'
widget_color:
type: string
description: A Hex-color string used to customize the widget
example: '#FF5733'
@@ -1,11 +1,18 @@
type: object type: object
properties: properties:
app_id: app_id:
type: string type: integer
description: The ID of app for which integration hook is being created description: The ID of app for which integration hook is being created
example: 1
inbox_id: inbox_id:
type: string type: integer
description: The inbox ID, if the hook is an inbox hook description: The inbox ID, if the hook is an inbox hook
example: 1
status:
type: integer
description: The status of the integration (0 for inactive, 1 for active)
example: 1
settings: settings:
type: object type: object
description: The settings required by the integration description: The settings required by the integration
example: {}
@@ -1,5 +1,10 @@
type: object type: object
properties: properties:
status:
type: integer
description: The status of the integration (0 for inactive, 1 for active)
example: 1
settings: settings:
type: object type: object
description: The settings required by the integration description: The settings required by the integration
example: {}
@@ -0,0 +1,26 @@
type: object
properties:
name:
type: string
description: The name of the agent bot
example: 'My Agent Bot'
description:
type: string
description: The description of the agent bot
example: 'This is a sample agent bot'
outgoing_url:
type: string
description: The webhook URL for the bot
example: 'https://example.com/webhook'
account_id:
type: integer
description: The account ID to associate the agent bot with
example: 1
avatar:
type: string
format: binary
description: Send the form data with the avatar image binary or use the avatar_url
avatar_url:
type: string
description: The url to a jpeg, png file for the agent bot avatar
example: https://example.com/avatar.png
@@ -1,34 +1,51 @@
type: object type: object
properties: properties:
content: title:
type: string type: string
description: The text content. description: The title of the article
meta: example: 'Article Title'
type: object slug:
description: Use for search type: string
example: { tags: ['article_name'], title: 'article title', description: 'article description' } description: The slug of the article
example: 'article-title'
position: position:
type: integer type: integer
description: article position in category description: article position in category
status: example: 1
type: integer content:
example: ['draft', 'published', 'archived']
title:
type: string type: string
slug: description: The text content.
example: 'This is the content of the article'
description:
type: string type: string
views: description: The description of the article
type: integer example: 'This is the description of the article'
portal_id:
type: integer
account_id:
type: integer
author_id:
type: integer
category_id: category_id:
type: integer type: integer
folder_id: description: The category id of the article
example: 1
author_id:
type: integer type: integer
description: The author agent id of the article
example: 1
associated_article_id: associated_article_id:
type: integer type: integer
description: To associate similar articles to each other, e.g to provide the link for the reference. description: To associate similar articles to each other, e.g to provide the link for the reference.
example: 2
status:
type: integer
description: The status of the article. 0 for draft, 1 for published, 2 for archived
example: 1
locale:
type: string
description: The locale of the article
example: 'en'
meta:
type: object
description: Use for search
example:
{
tags: ['article_name'],
title: 'article title',
description: 'article description',
}
@@ -1,28 +1,34 @@
type: object type: object
properties: properties:
description:
type: string
description: Category description
locale:
type: string
description: Category locale
example: en/es
name: name:
type: string type: string
description: Category name description: The name of the category
slug: example: 'Category Name'
description:
type: string type: string
description: Category slug description: A description for the category
example: 'Category description'
position: position:
type: integer type: integer
description: Category position in the portal list to sort description: Category position in the portal list to sort
portal_id: example: 1
type: integer slug:
account_id: type: string
type: integer description: The category slug used in the URL
associated_category_id: example: 'category-name'
type: integer locale:
description: To associate similar categories to each other, e.g same category of product documentation in different languages type: string
description: The locale of the category
example: en
icon:
type: string
description: The icon of the category as a string (emoji)
example: '📚'
parent_category_id: parent_category_id:
type: integer type: integer
description: To define parent category, e.g product documentation has multiple level features in sales category or in engineering category. description: To define parent category, e.g product documentation has multiple level features in sales category or in engineering category.
example: 1
associated_category_id:
type: integer
description: To associate similar categories to each other, e.g same category of product documentation in different languages
example: 2
@@ -1,20 +1,13 @@
type: object type: object
properties: properties:
archived:
type: boolean
description: Status to check if portal is live
color: color:
type: string type: string
description: Header color for help-center description: Header color for help-center in hex format
example: add color HEX string, "#fffff" example: '#FFFFFF'
config:
type: object
description: Configuration about supporting locales
example: { allowed_locales: ['en', 'es'], default_locale: 'en' }
custom_domain: custom_domain:
type: string type: string
description: Custom domain to display help center. description: Custom domain to display help center.
example: https://chatwoot.help/. example: chatwoot.help
header_text: header_text:
type: string type: string
description: Help center header description: Help center header
@@ -26,11 +19,20 @@ properties:
name: name:
type: string type: string
description: Name for the portal description: Name for the portal
slug: example: Handbook
type: string
description: Slug for the portal to display in link
page_title: page_title:
type: string type: string
description: Page title for the portal description: Page title for the portal
account_id: example: Handbook
type: integer slug:
type: string
description: Slug for the portal to display in link
example: handbook
archived:
type: boolean
description: Status to check if portal is live
example: false
config:
type: object
description: Configuration about supporting locales
example: { allowed_locales: ['en', 'es'], default_locale: 'en' }
@@ -1,24 +1,30 @@
type: object type: object
properties: properties:
identifier: identifier:
type: string type: string
description: External identifier of the contact description: External identifier of the contact
example: '1234567890'
identifier_hash: identifier_hash:
type: string type: string
description: Identifier hash prepared for HMAC authentication description: Identifier hash prepared for HMAC authentication
example: 'e93275d4eba0e5679ad55f5360af00444e2a888df9b0afa3e8b691c3173725f9'
email: email:
type: string type: string
description: Email of the contact description: Email of the contact
example: alice@acme.inc
name: name:
type: string type: string
description: Name of the contact description: Name of the contact
example: Alice
phone_number: phone_number:
type: string type: string
description: Phone number of the contact description: Phone number of the contact
avatar_url: example: '+123456789'
avatar:
type: string type: string
description: The url to a jpeg, png file for the user avatar format: binary
description: Send the form data with the avatar image binary or use the avatar_url
custom_attributes: custom_attributes:
type: object type: object
description: Custom attributes of the customer description: Custom attributes of the customer
example: {}
@@ -3,3 +3,4 @@ properties:
custom_attributes: custom_attributes:
type: object type: object
description: Custom attributes of the conversation description: Custom attributes of the conversation
example: {}
@@ -1,10 +1,10 @@
type: object type: object
properties: properties:
content: content:
type: string type: string
description: Content for the message description: Content for the message
example: 'Hello, how can I help you?'
echo_id: echo_id:
type: string type: string
description: Temporary identifier which will be passed back via websockets description: Temporary identifier which will be passed back via websockets
example: '1234567890'
@@ -1,6 +1,30 @@
type: object type: object
properties: properties:
submitted_values: submitted_values:
type: object type: object
description: Replies to the Bot Message Types description: Replies to the Bot Message Types
properties:
name:
type: string
description: The name of the submiitted value
example: 'My Name'
title:
type: string
description: The title of the submitted value
example: 'My Title'
value:
type: string
description: The value of the submitted value
example: 'value'
csat_survey_response:
type: object
description: The CSAT survey response
properties:
feedback_message:
type: string
description: The feedback message of the CSAT survey response
example: 'Great service!'
rating:
type: integer
description: The rating of the CSAT survey response
example: 5
@@ -3,9 +3,12 @@ properties:
name: name:
type: string type: string
description: The name of the team description: The name of the team
example: Support Team
description: description:
type: string type: string
description: The description of the team description: The description of the team
example: This is a team of support agents
allow_auto_assign: allow_auto_assign:
type: boolean type: boolean
description: If this setting is turned on, the system would automatically assign the conversation to an agent in the team while assigning the conversation to a team description: If this setting is turned on, the system would automatically assign the conversation to an agent in the team while assigning the conversation to a team
example: true
@@ -3,13 +3,20 @@ properties:
name: name:
type: string type: string
description: Name of the user description: Name of the user
example: 'Daniel'
display_name:
type: string
description: Display name of the user
example: 'Dan'
email: email:
type: string type: string
description: Email of the user description: Email of the user
example: 'daniel@acme.inc'
password: password:
type: string type: string
description: Password must contain uppercase, lowercase letters, number and a special character description: Password must contain uppercase, lowercase letters, number and a special character
example: 'Password2!'
custom_attributes: custom_attributes:
type: object type: object
description: Custom attributes you want to associate with the user description: Custom attributes you want to associate with the user
example: {}
@@ -3,16 +3,23 @@ properties:
url: url:
type: string type: string
description: The url where the events should be sent description: The url where the events should be sent
example: https://example.com/webhook
subscriptions: subscriptions:
type: array type: array
items: items:
type: string type: string
enum: [ enum:
"conversation_created", [
"conversation_status_changed", 'conversation_created',
"conversation_updated", 'conversation_status_changed',
"message_created", 'conversation_updated',
"message_updated", 'message_created',
"webwidget_triggered" 'message_updated',
'contact_created',
'contact_updated',
'webwidget_triggered',
] ]
description: The events you want to subscribe to. description: The events you want to subscribe to.
example:
- conversation_created
- conversation_status_changed
@@ -0,0 +1,14 @@
type: array
description: 'Array of account users'
items:
type: object
properties:
account_id:
type: integer
description: The ID of the account
user_id:
type: integer
description: The ID of the user
role:
type: string
description: whether user is an administrator or agent
+22 -19
View File
@@ -2,23 +2,8 @@ type: object
properties: properties:
id: id:
type: integer type: integer
uid:
type: string
name:
type: string
available_name:
type: string
display_name:
type: string
email:
type: string
account_id: account_id:
type: integer type: integer
role:
type: string
enum: ['agent', 'administrator']
confirmed:
type: boolean
availability_status: availability_status:
type: string type: string
enum: ['available', 'busy', 'offline'] enum: ['available', 'busy', 'offline']
@@ -26,7 +11,25 @@ properties:
auto_offline: auto_offline:
type: boolean type: boolean
description: Whether the availability status of agent is configured to go offline automatically when away. description: Whether the availability status of agent is configured to go offline automatically when away.
custom_attributes: confirmed:
type: object type: boolean
description: Available for users who are created through platform APIs and has custom attributes associated. description: Whether the agent has confirmed their email address.
email:
type: string
description: The email of the agent
available_name:
type: string
description: The available name of the agent
name:
type: string
description: The name of the agent
role:
type: string
enum: ['agent', 'administrator']
description: The role of the agent
thumbnail:
type: string
description: The thumbnail of the agent
custom_role_id:
type: integer
description: The custom role id of the agent
+18 -3
View File
@@ -9,9 +9,24 @@ properties:
description: description:
type: string type: string
description: The description about the agent bot description: The description about the agent bot
account_id: thumbnail:
type: number type: string
description: Account ID if it's an account specific bot description: The thumbnail of the agent bot
outgoing_url: outgoing_url:
type: string type: string
description: The webhook URL for the bot description: The webhook URL for the bot
bot_type:
type: string
description: The type of the bot
bot_config:
type: object
description: The configuration of the bot
account_id:
type: number
description: Account ID if it's an account specific bot
access_token:
type: string
description: The access token for the bot
system_bot:
type: boolean
description: Whether the bot is a system bot
@@ -1,45 +1,13 @@
type: object type: object
properties: properties:
event_name: payload:
type: string description: Response payload that contains automation rule(s)
description: Automation Rule event, on which we call the actions(conversation_created, conversation_updated, message_created) oneOf:
enum: - type: array
- conversation_created description: Array of automation rules (for listing endpoint)
- conversation_updated
- message_created
example: message_created
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
active:
type: boolean
description: Enable/disable automation rule
actions:
type: array
description: Array of actions which we perform when condition matches
items: items:
type: object $ref: '#/components/schemas/automation_rule_item'
example: - type: object
action_name: add_label description: Single automation rule (for show/create/update endpoints)
action_params: allOf:
- support - $ref: '#/components/schemas/automation_rule_item'
- sales
conditions:
type: array
description: Array of conditions on which conversation/message filter would work
items:
type: object
example:
attribute_key: content
filter_operator: contains
values:
- help
query_operator: nil
account_id:
type: integer
description: Account Id
@@ -0,0 +1,69 @@
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
@@ -3,12 +3,18 @@ properties:
id: id:
type: integer type: integer
description: ID of the canned response description: ID of the canned response
content:
type: string
description: Message content for canned response
short_code:
type: string
description: Short Code for quick access of the canned response
account_id: account_id:
type: integer type: integer
description: Account Id description: Account Id
short_code:
type: string
description: Short Code for quick access of the canned response
content:
type: string
description: Message content for canned response
created_at:
type: string
description: The date and time when the canned response was created
updated_at:
type: string
description: The date and time when the canned response was updated
+29 -11
View File
@@ -1,31 +1,49 @@
type: object type: object
properties: properties:
payload: payload:
type: array
items:
type: object type: object
properties: properties:
contact: additional_attributes:
type: object type: object
properties: description: The object containing additional attributes related to the contact
availability_status:
type: string
description: The availability status of the contact
email: email:
type: string type: string
description: Email address of the contact description: The email address of the contact
id:
type: integer
description: The ID of the contact
name: name:
type: string type: string
description: The name of the contact description: The name of the contact
phone_number: phone_number:
type: string type: string
description: Phone number of the contact description: The phone number of the contact
blocked:
type: boolean
description: Whether the contact is blocked
identifier:
type: string
description: The identifier of the contact
thumbnail: thumbnail:
type: string type: string
description: Avatar URL of the contact description: The thumbnail of the contact
additional_attributes:
type: object
description: The object containing additional attributes related to the contact
custom_attributes: custom_attributes:
type: object type: object
description: The object to save custom attributes for contact, accepts custom attributes key and value description: The custom attributes of the contact
example: { attribute_key: attribute_value, signed_up_at: dd/mm/yyyy } example:
{ attribute_key: attribute_value, signed_up_at: dd/mm/yyyy }
last_activity_at:
type: integer
description: The last activity at of the contact
created_at:
type: integer
description: The created at of the contact
contact_inboxes: contact_inboxes:
type: array type: array
items: items:
$ref: '#/definitions/contact_inboxes' $ref: '#/components/schemas/contact_inboxes'
@@ -0,0 +1,109 @@
type: object
properties:
id:
type: integer
description: ID of the message
content:
type: string
description: Content of the message
account_id:
type: integer
description: ID of the account
inbox_id:
type: integer
description: ID of the inbox
conversation_id:
type: integer
description: ID of the conversation
message_type:
type: integer
description: Type of the message
created_at:
type: integer
description: Timestamp when message was created
updated_at:
type: string
description: Formatted datetime when message was updated
private:
type: boolean
description: Whether the message is private
status:
type: string
description: Status of the message
source_id:
type: string
description: Source ID of the message
nullable: true
content_type:
type: string
description: Type of the content
content_attributes:
type: object
description: Attributes of the content
sender_type:
type: string
description: Type of the sender
nullable: true
sender_id:
type: integer
description: ID of the sender
nullable: true
external_source_ids:
type: object
description: External source IDs
additional_attributes:
type: object
description: Additional attributes of the message
processed_message_content:
type: string
description: Processed message content
nullable: true
sentiment:
type: object
description: Sentiment analysis of the message
conversation:
type: object
description: Conversation details
properties:
assignee_id:
type: integer
description: ID of the assignee
nullable: true
unread_count:
type: integer
description: Count of unread messages
last_activity_at:
type: integer
description: Timestamp of last activity
contact_inbox:
type: object
description: Contact inbox details
properties:
source_id:
type: string
description: Source ID of the contact inbox
sender:
type: object
description: Details of the sender
properties:
id:
type: integer
description: ID of the sender
name:
type: string
description: Name of the sender
available_name:
type: string
description: Available name of the sender
avatar_url:
type: string
description: URL of the sender's avatar
type:
type: string
description: Type of the sender
availability_status:
type: string
description: Availability status of the sender
thumbnail:
type: string
description: Thumbnail URL of the sender
@@ -0,0 +1,13 @@
type: object
properties:
payload:
type: array
items:
allOf:
- $ref: '#/components/schemas/conversation'
- type: object
properties:
meta:
$ref: './extension/contact/conversation.yml#/properties/meta'
description: Meta information about the conversation
description: List of conversations for the contact
@@ -0,0 +1,48 @@
type: object
properties:
additional_attributes:
type: object
description: The object containing additional attributes related to the contact
properties:
city:
type: string
description: City of the contact
country:
type: string
description: Country of the contact
country_code:
type: string
description: Country code of the contact
created_at_ip:
type: string
description: IP address when the contact was created
custom_attributes:
type: object
description: The custom attributes of the contact
email:
type: string
description: The email address of the contact
id:
type: integer
description: The ID of the contact
identifier:
type: string
description: The identifier of the contact
nullable: true
name:
type: string
description: The name of the contact
phone_number:
type: string
description: The phone number of the contact
nullable: true
thumbnail:
type: string
description: The thumbnail of the contact
blocked:
type: boolean
description: Whether the contact is blocked
type:
type: string
description: The type of entity
enum: ["contact"]
@@ -0,0 +1,27 @@
type: object
properties:
source_id:
type: string
description: Source identifier for the contact inbox
inbox:
type: object
properties:
id:
type: integer
description: ID of the inbox
avatar_url:
type: string
description: URL for the inbox avatar
channel_id:
type: integer
description: ID of the channel
name:
type: string
description: Name of the inbox
channel_type:
type: string
description: Type of channel
provider:
type: string
description: Provider of the inbox
nullable: true
@@ -4,5 +4,4 @@ properties:
type: string type: string
description: Contact Inbox Source Id description: Contact Inbox Source Id
inbox: inbox:
type: object $ref: '#/components/schemas/inbox_contact'
$ref: '#/definitions/inbox'
@@ -0,0 +1,61 @@
type: object
properties:
additional_attributes:
type: object
description: The object containing additional attributes related to the contact
properties:
city:
type: string
description: City of the contact
country:
type: string
description: Country of the contact
country_code:
type: string
description: Country code of the contact
created_at_ip:
type: string
description: IP address when the contact was created
availability_status:
type: string
description: Availability status of the contact
enum: ["online", "offline"]
email:
type: string
description: The email address of the contact
nullable: true
id:
type: integer
description: The ID of the contact
name:
type: string
description: The name of the contact
phone_number:
type: string
description: The phone number of the contact
nullable: true
blocked:
type: boolean
description: Whether the contact is blocked
identifier:
type: string
description: The identifier of the contact
nullable: true
thumbnail:
type: string
description: The thumbnail of the contact
custom_attributes:
type: object
description: The custom attributes of the contact
last_activity_at:
type: integer
description: Timestamp of last activity
nullable: true
created_at:
type: integer
description: Timestamp when contact was created
contact_inboxes:
type: array
description: List of inboxes associated with this contact
items:
$ref: '#/components/schemas/contact_inbox'
@@ -0,0 +1,8 @@
type: object
properties:
count:
type: integer
description: Total number of contacts
current_page:
type: string
description: Current page number
@@ -0,0 +1,5 @@
type: object
properties:
payload:
$ref: '#/components/schemas/contact_list_item'
description: Contact details
@@ -5,4 +5,4 @@ properties:
description: Contact Inbox Source Id description: Contact Inbox Source Id
inbox: inbox:
type: object type: object
$ref: '#/definitions/inbox' $ref: '#/components/schemas/inbox'
@@ -0,0 +1,7 @@
type: object
properties:
payload:
type: array
items:
$ref: '#/components/schemas/contact_inbox'
description: List of contactable inboxes for the contact
@@ -0,0 +1,10 @@
type: object
properties:
meta:
$ref: '#/components/schemas/contact_meta'
description: Metadata about the contact list response
payload:
type: array
items:
$ref: '#/components/schemas/contact_list_item'
description: List of contacts
+65 -10
View File
@@ -6,31 +6,86 @@ properties:
messages: messages:
type: array type: array
items: items:
$ref: '#/definitions/message' $ref: '#/components/schemas/message'
account_id: account_id:
type: number type: number
description: Account Id description: Account Id
uuid:
type: string
description: UUID of the conversation
additional_attributes:
type: object
description: The object containing additional attributes related to the conversation
agent_last_seen_at:
type: number
description: The last activity at of the agent
assignee_last_seen_at:
type: number
description: The last activity at of the assignee
can_reply:
type: boolean
description: Whether the conversation can be replied to
contact_last_seen_at:
type: number
description: The last activity at of the contact
custom_attributes:
type: object
description: The object to save custom attributes for conversation, accepts custom attributes key and value
inbox_id: inbox_id:
type: number type: number
description: ID of the inbox description: ID of the inbox
labels:
type: array
items:
type: string
description: The labels of the conversation
muted:
type: boolean
description: Whether the conversation is muted
snoozed_until:
type: number
description: The time at which the conversation will be unmuted
status: status:
type: string type: string
enum: ['open', 'resolved', 'pending'] enum: ['open', 'resolved', 'pending']
description: The status of the conversation description: The status of the conversation
created_at:
type: number
description: The time at which conversation was created
updated_at:
type: number
description: The time at which conversation was updated
timestamp: timestamp:
type: string type: string
description: The time at which conversation was created description: The time at which conversation was created
contact_last_seen_at: first_reply_created_at:
type: string type: number
agent_last_seen_at: description: The time at which the first reply was created
type: string
unread_count: unread_count:
type: number type: number
description: The number of unread messages description: The number of unread messages
additional_attributes: last_non_activity_message:
type: object type: object
description: The object containing additional attributes related to the conversation $ref: '#/components/schemas/message'
custom_attributes: description: The last non activity message
last_activity_at:
type: number
description: The last activity at of the conversation
priority:
type: string
description: The priority of the conversation
waiting_since:
type: number
description: The time at which the conversation was waiting
sla_policy_id:
type: number
description: The ID of the SLA policy
applied_sla:
type: object type: object
description: The object to save custom attributes for conversation, accepts custom attributes key and value description: The applied SLA
example: { attribute_key: attribute_value, priority_conversation_number: 3 } sla_events:
type: array
items:
type: object
description: SLA event objects
@@ -0,0 +1,10 @@
type: object
properties:
meta:
$ref: '#/components/schemas/conversation_meta'
description: Meta information about the conversation
payload:
type: array
items:
$ref: '#/components/schemas/message_detailed'
description: List of messages in the conversation
@@ -0,0 +1,55 @@
type: object
properties:
labels:
type: array
items:
type: string
description: Labels associated with the conversation
additional_attributes:
type: object
properties:
browser:
type: object
properties:
device_name:
type: string
description: Name of the device
browser_name:
type: string
description: Name of the browser
platform_name:
type: string
description: Name of the platform
browser_version:
type: string
description: Version of the browser
platform_version:
type: string
description: Version of the platform
referer:
type: string
description: Referrer URL
initiated_at:
type: object
properties:
timestamp:
type: string
description: Timestamp when the conversation was initiated
browser_language:
type: string
description: Browser language setting
conversation_language:
type: string
description: Conversation language
description: Additional attributes of the conversation
contact:
$ref: '#/components/schemas/contact_detail'
description: Contact details
agent_last_seen_at:
type: string
description: Timestamp when the agent last saw the conversation
nullable: true
assignee_last_seen_at:
type: string
description: Timestamp when the assignee last saw the conversation
nullable: true
@@ -15,15 +15,24 @@ properties:
attribute_key: attribute_key:
type: string type: string
description: Attribute unique key value description: Attribute unique key value
regex_pattern:
type: string
description: Regex pattern
regex_cue:
type: string
description: Regex cue
attribute_values: attribute_values:
type: string type: string
description: Attribute values description: Attribute values
default_value:
type: string
description: Attribute default value
attribute_model: attribute_model:
type: string type: string
description: Attribute type(conversation_attribute/contact_attribute) description: Attribute type(conversation_attribute/contact_attribute)
account_id: default_value:
type: integer type: string
description: Account Id description: Attribute default value
created_at:
type: string
description: The date and time when the custom attribute was created
updated_at:
type: string
description: The date and time when the custom attribute was updated
@@ -6,17 +6,48 @@ properties:
sender: sender:
type: object type: object
properties: properties:
additional_attributes:
type: object
description: The additional attributes of the sender
availability_status:
type: string
description: The availability status of the sender
email:
type: string
description: The email of the sender
id: id:
type: number type: number
description: ID fo the sender description: ID fo the sender
name: name:
type: string type: string
description: The name of the sender description: The name of the sender
phone_number:
type: string
description: The phone number of the sender
blocked:
type: boolean
description: Whether the sender is blocked
identifier:
type: string
description: The identifier of the sender
thumbnail: thumbnail:
type: string type: string
description: Avatar URL of the contact description: Avatar URL of the contact
custom_attributes:
type: object
description: The custom attributes of the sender
last_activity_at:
type: number
description: The last activity at of the sender
created_at:
type: number
description: The created at of the sender
channel: channel:
type: string type: string
description: Channel Type description: Channel Type
assignee: assignee:
$ref: '#/definitions/user' $ref: '#/components/schemas/user'
hmac_verified:
type: boolean
description: Whether the hmac is verified
@@ -19,6 +19,6 @@ properties:
description: 'array of conversations' description: 'array of conversations'
items: items:
allOf: allOf:
- $ref: '#/definitions/generic_id' - $ref: '#/components/schemas/generic_id'
- $ref: '#/definitions/conversation' - $ref: '#/components/schemas/conversation'
- $ref: '../contact/conversation.yml' - $ref: '../contact/conversation.yml'
@@ -1,4 +1,4 @@
type: object type: object
allOf: allOf:
- $ref: '#/definitions/conversation' - $ref: '#/components/schemas/conversation'
- $ref: '../contact/conversation.yml' - $ref: '../contact/conversation.yml'
+84
View File
@@ -39,3 +39,87 @@ properties:
greeting_message: greeting_message:
type: string type: string
description: A greeting message when the user starts the conversation description: A greeting message when the user starts the conversation
channel_id:
type: number
description: ID of the channel this inbox belongs to
working_hours_enabled:
type: boolean
description: The flag which shows whether working hours feature is enabled
enable_email_collect:
type: boolean
description: The flag to enable collecting email from contacts
csat_survey_enabled:
type: boolean
description: The flag to enable CSAT survey
auto_assignment_config:
type: object
description: Configuration settings for auto assignment
out_of_office_message:
type: string
description: Message to show when agents are out of office
working_hours:
type: array
description: Configuration for working hours of the inbox
items:
type: object
properties:
day_of_week:
type: number
description: Day of the week (0-6, where 0 is Sunday)
closed_all_day:
type: boolean
description: Whether the inbox is closed for the entire day
open_hour:
type: number
description: Hour when inbox opens (0-23)
open_minutes:
type: number
description: Minutes of the hour when inbox opens (0-59)
close_hour:
type: number
description: Hour when inbox closes (0-23)
close_minutes:
type: number
description: Minutes of the hour when inbox closes (0-59)
open_all_day:
type: boolean
description: Whether the inbox is open for the entire day
timezone:
type: string
description: Timezone configuration for the inbox
callback_webhook_url:
type: string
description: Webhook URL for callbacks
allow_messages_after_resolved:
type: boolean
description: Whether to allow messages after a conversation is resolved
lock_to_single_conversation:
type: boolean
description: Whether to lock a contact to a single conversation
sender_name_type:
type: string
description: Type of sender name to display (e.g., friendly)
business_name:
type: string
description: Business name associated with the inbox
hmac_mandatory:
type: boolean
description: Whether HMAC verification is mandatory
selected_feature_flags:
type: object
description: Selected feature flags for the inbox
reply_time:
type: string
description: Expected reply time
messaging_service_sid:
type: string
description: Messaging service SID for SMS providers
phone_number:
type: string
description: Phone number associated with the inbox
medium:
type: string
description: Medium of communication (e.g., sms, email)
provider:
type: string
description: Provider of the channel
@@ -0,0 +1,20 @@
type: object
properties:
id:
type: number
description: ID of the inbox
avatar_url:
type: string
description: The avatar image of the inbox
channel_id:
type: number
description: The ID of the channel
name:
type: string
description: The name of the inbox
channel_type:
type: string
description: The type of the inbox
provider:
type: string
description: The provider of the inbox
+53 -12
View File
@@ -1,8 +1,40 @@
type: object type: object
properties: properties:
id:
type: number
description: The ID of the message
content: content:
type: string type: string
description: The text content of the message description: The text content of the message
account_id:
type: number
description: The ID of the account
inbox_id:
type: number
description: The ID of the inbox
conversation_id:
type: number
description: The ID of the conversation
message_type:
type: integer
enum: [0, 1, 2]
description: The type of the message
created_at:
type: integer
description: The time at which message was created
updated_at:
type: integer
description: The time at which message was updated
private:
type: boolean
description: The flags which shows whether the message is private or not
status:
type: string
enum: ["sent", "delivered", "read", "failed"]
description: The status of the message
source_id:
type: string
description: The source ID of the message
content_type: content_type:
type: string type: string
enum: ["text", "input_select", "cards", "form"] enum: ["text", "input_select", "cards", "form"]
@@ -10,22 +42,31 @@ properties:
content_attributes: content_attributes:
type: object type: object
description: The content attributes for each content_type description: The content attributes for each content_type
message_type: sender_type:
type: string type: string
enum: ["incoming", "outgoing", "activity", "template"] enum: ["contact", "agent", "agent_bot"]
description: The type of the message description: The type of the sender
created_at: sender_id:
type: integer type: number
description: The time at which message was created description: The ID of the sender
private: external_source_ids:
type: boolean type: object
description: The flags which shows whether the message is private or not description: The external source IDs of the message
additional_attributes:
type: object
description: The additional attributes of the message
processed_message_content:
type: string
description: The processed message content
sentiment:
type: object
description: The sentiment of the message
conversation:
type: object
description: The conversation object
attachment: attachment:
type: object type: object
description: The file object attached to the image description: The file object attached to the image
sender: sender:
type: object type: object
description: User/Agent/AgentBot object description: User/Agent/AgentBot object
conversation_id:
type: number
description: ID of the conversation
@@ -0,0 +1,47 @@
type: object
properties:
id:
type: number
description: The ID of the message
content:
type: string
description: The text content of the message
inbox_id:
type: number
description: The ID of the inbox
conversation_id:
type: number
description: The ID of the conversation
message_type:
type: integer
enum: [0, 1, 2, 3]
description: "The type of the message (0: incoming, 1: outgoing, 2: activity, 3: template)"
content_type:
type: string
enum: ["text", "input_select", "cards", "form", "input_csat"]
description: The type of the message content
status:
type: string
enum: ["sent", "delivered", "read", "failed"]
description: The status of the message
content_attributes:
type: object
description: The content attributes for each content_type
properties:
in_reply_to:
type: string
description: ID of the message this is replying to
nullable: true
created_at:
type: integer
description: The timestamp when message was created
private:
type: boolean
description: The flag which shows whether the message is private or not
source_id:
type: string
description: The source ID of the message
nullable: true
sender:
$ref: '#/components/schemas/contact_detail'
description: The sender of the message (only for incoming messages)
+2 -30
View File
@@ -1,34 +1,6 @@
type: object type: object
properties: properties:
id: payload:
type: integer
archived:
type: boolean
color:
type: string
config:
type: object
description: Save information about locales, allowed_locales and default portal/help-center locale
custom_domain:
type: string
header_text:
type: string
description: The text content.
homepage_link:
type: string
name:
type: string
slug:
type: string
page_title:
type: string
account_id:
type: integer
categories:
type: array type: array
items: items:
$ref: '#/definitions/category' $ref: '#/components/schemas/portal_item'
articles:
type: array
items:
$ref: '#/definitions/article'
@@ -0,0 +1,18 @@
type: object
description: Configuration settings for the portal
properties:
allowed_locales:
type: array
description: List of allowed locales for the portal
items:
type: object
properties:
code:
type: string
description: The language code
articles_count:
type: integer
description: Number of articles in this locale
categories_count:
type: integer
description: Number of categories in this locale
@@ -0,0 +1,40 @@
type: object
properties:
id:
type: integer
description: The ID of the portal
archived:
type: boolean
description: Whether the portal is archived
color:
type: string
description: The color code for the portal
config:
$ref: '#/components/schemas/portal_config'
custom_domain:
type: string
description: Custom domain for the portal
header_text:
type: string
description: The header text for the portal
homepage_link:
type: string
description: Homepage link for the portal
name:
type: string
description: Name of the portal
slug:
type: string
description: URL slug for the portal
page_title:
type: string
description: Page title for the portal
account_id:
type: integer
description: ID of the account the portal belongs to
inbox:
$ref: '#/components/schemas/inbox'
logo:
$ref: '#/components/schemas/portal_logo'
meta:
$ref: '#/components/schemas/portal_meta'
@@ -0,0 +1,23 @@
type: object
properties:
id:
type: integer
description: ID of the logo file
portal_id:
type: integer
description: ID of the portal this logo belongs to
file_type:
type: string
description: MIME type of the file
account_id:
type: integer
description: ID of the account
file_url:
type: string
description: URL to access the logo file
blob_id:
type: integer
description: ID of the blob
filename:
type: string
description: Name of the file
@@ -0,0 +1,23 @@
type: object
properties:
all_articles_count:
type: integer
description: Total number of articles
archived_articles_count:
type: integer
nullable: true
description: Number of archived articles
published_count:
type: integer
nullable: true
description: Number of published articles
draft_articles_count:
type: integer
nullable: true
description: Number of draft articles
categories_count:
type: integer
description: Number of categories
default_locale:
type: string
description: Default locale for the portal
@@ -0,0 +1,5 @@
type: object
properties:
payload:
description: A single portal object (for show/update endpoints)
$ref: '#/components/schemas/portal_item'
@@ -9,7 +9,7 @@ properties:
messages: messages:
type: array type: array
items: items:
$ref: '#/definitions/message' $ref: '#/components/schemas/message'
description: Messages in the conversation description: Messages in the conversation
contact: contact:
type: object type: object
+62 -12
View File
@@ -2,27 +2,77 @@ type: object
properties: properties:
id: id:
type: number type: number
uid: access_token:
type: string
name:
type: string
available_name:
type: string
display_name:
type: string
email:
type: string type: string
account_id: account_id:
type: number type: number
available_name:
type: string
avatar_url:
type: string
confirmed:
type: boolean
display_name:
type: string
nullable: true
message_signature:
type: string
nullable: true
email:
type: string
hmac_identifier:
type: string
inviter_id:
type: number
name:
type: string
provider:
type: string
pubsub_token:
type: string
role: role:
type: string type: string
enum: ['agent', 'administrator'] enum: ['agent', 'administrator']
confirmed: ui_settings:
type: boolean type: object
uid:
type: string
type:
type: string
nullable: true
custom_attributes: custom_attributes:
type: object type: object
description: Available for users who are created through platform APIs and has custom attributes associated. description: Available for users who are created through platform APIs and has custom attributes associated.
accounts: accounts:
type: array type: array
items: items:
$ref: '#/definitions/account' type: object
properties:
id:
type: number
name:
type: string
status:
type: string
active_at:
type: string
format: date-time
role:
type: string
enum: ['administrator', 'agent']
permissions:
type: array
items:
type: string
availability:
type: string
availability_status:
type: string
auto_offline:
type: boolean
custom_role_id:
type: number
nullable: true
custom_role:
type: object
nullable: true
+69 -23
View File
@@ -1,23 +1,24 @@
swagger: "2.0" openapi: '3.0.4'
info: info:
description: This is the API documentation for Chatwoot server.
version: 1.0.0
title: Chatwoot title: Chatwoot
description: This is the API documentation for Chatwoot server.
version: 1.1.0
termsOfService: https://www.chatwoot.com/terms-of-service/ termsOfService: https://www.chatwoot.com/terms-of-service/
contact: contact:
email: hello@chatwoot.com email: hello@chatwoot.com
license: license:
name: MIT License name: MIT License
url: https://opensource.org/licenses/MIT url: https://opensource.org/licenses/MIT
host: app.chatwoot.com servers:
basePath: / - url: https://app.chatwoot.com/
schemes: paths:
- https $ref: ./paths/index.yml
produces: components:
- application/json; charset=utf-8 schemas:
consumes: $ref: ./definitions/index.yml
- application/json; charset=utf-8 parameters:
securityDefinitions: $ref: ./parameters/index.yml
securitySchemes:
userApiKey: userApiKey:
type: apiKey type: apiKey
in: header in: header
@@ -33,16 +34,61 @@ securityDefinitions:
in: header in: header
name: api_access_token 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. 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.
security: tags:
- userApiKey: [] - name: Accounts
description: Account management APIs
paths: - name: Account Users
$ref: ./paths/index.yml description: Account user management APIs
definitions: - name: AgentBots
$ref: ./definitions/index.yml description: Bot integrations
parameters: - name: Users
$ref: ./parameters/index.yml description: User management APIs
- name: Account AgentBots
description: Account-specific Agent Bots
- name: Agents
description: Agent management APIs
- name: Canned Responses
description: Pre-defined responses for common queries
- name: Contacts
description: Contact management APIs
- name: Contact Labels
description: Manage contact labels
- name: Conversation Assignments
description: Manage conversation assignments
- name: Conversation Labels
description: Manage conversation labels
- name: Conversations
description: Conversation management APIs
- name: Custom Attributes
description: Custom fields for contacts and conversations
- name: Custom Filters
description: Saved filters for conversations
- name: Inboxes
description: Communication channels setup
- name: Integrations
description: Third-party integrations
- name: Messages
description: Message management APIs
- name: Profile
description: User profile APIs
- name: Reports
description: Analytics and reporting APIs
- name: Teams
description: Team management APIs
- name: Webhooks
description: Event notification webhooks
- name: Automation Rule
description: Workflow automation rules
- name: Help Center
description: Knowledge base management
- name: Contacts API
description: Public contact APIs
- name: Conversations API
description: Public conversation APIs
- name: Messages API
description: Public message APIs
- name: CSAT Survey Page
description: Customer satisfaction survey
x-tagGroups: x-tagGroups:
- name: Platform - name: Platform
tags: tags:
@@ -57,7 +103,7 @@ x-tagGroups:
- Canned Responses - Canned Responses
- Contacts - Contacts
- Contact Labels - Contact Labels
- Conversation Assignment - Conversation Assignments
- Conversation Labels - Conversation Labels
- Conversations - Conversations
- Custom Attributes - Custom Attributes
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: account_id name: account_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the account description: The numeric ID of the account
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: id name: id
schema:
type: integer type: integer
required: true required: true
description: The ID of the agentbot to be updated description: The ID of the agentbot to be updated
+1
View File
@@ -1,5 +1,6 @@
in: query in: query
name: sort name: sort
schema:
type: string type: string
enum: enum:
- name - name
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: conversation_id name: conversation_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the conversation description: The numeric ID of the conversation
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: conversation_uuid name: conversation_uuid
schema:
type: integer type: integer
required: true required: true
description: The uuid of the conversation description: The uuid of the conversation
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: custom_filter_id name: custom_filter_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the custom filter description: The numeric ID of the custom filter
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: hook_id name: hook_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the integration hook description: The numeric ID of the integration hook
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: inbox_id name: inbox_id
schema:
type: integer type: integer
required: true required: true
description: The ID of the Inbox description: The ID of the Inbox
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: message_id name: message_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the message description: The numeric ID of the message
+1
View File
@@ -1,5 +1,6 @@
in: query in: query
name: page name: page
schema:
type: integer type: integer
default: 1 default: 1
required: false required: false
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: id name: id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the user on the platform description: The numeric ID of the user on the platform
+4 -3
View File
@@ -1,5 +1,6 @@
in: path in: path
name: portal_id name: id
type: integer schema:
type: string
required: true required: true
description: The numeric ID of the portal description: The slug identifier of the portal
@@ -1,5 +1,6 @@
in: path in: path
name: contact_identifier name: contact_identifier
schema:
type: string type: string
required: true required: true
description: The source id of contact obtained on contact create description: The source id of contact obtained on contact create
@@ -1,5 +1,6 @@
in: path in: path
name: inbox_identifier name: inbox_identifier
schema:
type: string type: string
required: true required: true
description: The identifier obtained from API inbox channel description: The identifier obtained from API inbox channel
+1
View File
@@ -1,5 +1,6 @@
in: query in: query
name: metric name: metric
schema:
type: string type: string
enum: enum:
- conversations_count - conversations_count
+1
View File
@@ -1,5 +1,6 @@
in: query in: query
name: type name: type
schema:
type: string type: string
enum: enum:
- account - account
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: source_id name: source_id
required: true required: true
schema:
type: string type: string
description: "Id of the session for which the conversation is created.\n\n\n\n Source Ids can be obtained through contactable inboxes API or via generated.<br/><br/>Website: Chatwoot generated string which can be obtained from webhook events. <br/> Phone Channels(Twilio): Phone number in e164 format <br/> Email Channels: Contact Email address <br/> API Channel: Any Random String" description: "Id of the session for which the conversation is created.\n\n\n\n Source Ids can be obtained through contactable inboxes API or via generated.<br/><br/>Website: Chatwoot generated string which can be obtained from webhook events. <br/> Phone Channels(Twilio): Phone number in e164 format <br/> Email Channels: Contact Email address <br/> API Channel: Any Random String"
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: team_id name: team_id
schema:
type: integer type: integer
required: true required: true
description: The ID of the team to be updated description: The ID of the team to be updated
+1
View File
@@ -1,5 +1,6 @@
in: path in: path
name: webhook_id name: webhook_id
schema:
type: integer type: integer
required: true required: true
description: The numeric ID of the webhook description: The numeric ID of the webhook
@@ -3,17 +3,24 @@ tags:
operationId: create-an-account-agent-bot operationId: create-an-account-agent-bot
summary: Create an Agent Bot summary: Create an Agent Bot
description: Create an agent bot in the account description: Create an agent bot in the account
parameters: security:
- $ref: '#/parameters/account_id' - userApiKey: []
- name: data requestBody:
in: body
required: true required: true
content:
application/json:
schema: schema:
$ref: '#/definitions/agent_bot_create_update_payload' $ref: '#/components/schemas/agent_bot_create_update_payload'
responses: responses:
200: '200':
description: Success description: Success
content:
application/json:
schema: schema:
$ref: '#/definitions/agent_bot' $ref: '#/components/schemas/agent_bot'
401: '401':
description: Unauthorized description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
@@ -3,10 +3,20 @@ tags:
operationId: delete-an-account-agent-bot operationId: delete-an-account-agent-bot
summary: Delete an AgentBot summary: Delete an AgentBot
description: Delete an AgentBot from the account description: Delete an AgentBot from the account
security:
- userApiKey: []
responses: responses:
200: 200:
description: Success description: Success
401: 401:
description: Unauthorized description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
404: 404:
description: The agent bot does not exist in the account description: The agent bot does not exist in the account
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
+11 -4
View File
@@ -3,14 +3,21 @@ tags:
operationId: list-all-account-agent-bots operationId: list-all-account-agent-bots
summary: List all AgentBots summary: List all AgentBots
description: List all agent bots available for the current account description: List all agent bots available for the current account
security:
- userApiKey: []
responses: responses:
200: '200':
description: Success description: Success
content:
application/json:
schema: schema:
type: array type: array
description: 'Array of agent bots' description: 'Array of agent bots'
items: items:
$ref: '#/definitions/agent_bot' $ref: '#/components/schemas/agent_bot'
'401':
401:
description: Unauthorized description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
+16 -4
View File
@@ -3,12 +3,24 @@ tags:
operationId: get-details-of-a-single-account-agent-bot operationId: get-details-of-a-single-account-agent-bot
summary: Get an agent bot details summary: Get an agent bot details
description: Get the details of an agent bot in the account description: Get the details of an agent bot in the account
security:
- userApiKey: []
responses: responses:
200: '200':
description: Success description: Success
content:
application/json:
schema: schema:
$ref: '#/definitions/agent_bot' $ref: '#/components/schemas/agent_bot'
401: '401':
description: Unauthorized description: Unauthorized
404: content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'404':
description: The given agent bot ID does not exist in the account description: The given agent bot ID does not exist in the account
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
@@ -3,16 +3,24 @@ tags:
operationId: update-an-account-agent-bot operationId: update-an-account-agent-bot
summary: Update an agent bot summary: Update an agent bot
description: Update an agent bot's attributes description: Update an agent bot's attributes
parameters: security:
- name: data - userApiKey: []
in: body requestBody:
required: true required: true
content:
application/json:
schema: schema:
$ref: '#/definitions/agent_bot_create_update_payload' $ref: '#/components/schemas/agent_bot_create_update_payload'
responses: responses:
200: '200':
description: Success description: Success
content:
application/json:
schema: schema:
$ref: '#/definitions/agent_bot' $ref: '#/components/schemas/agent_bot'
401: '401':
description: Unauthorized description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'

Some files were not shown because too many files have changed in this diff Show More