Compare commits
31
Commits
develop
...
test-branch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78b03a1651 | ||
|
|
22b2280337 | ||
|
|
3b42191705 | ||
|
|
019a596a3e | ||
|
|
285b79d488 | ||
|
|
b3c17cc81e | ||
|
|
90c600acd9 | ||
|
|
2187a3e566 | ||
|
|
2b043e5460 | ||
|
|
ac94e34c72 | ||
|
|
dc9e19a122 | ||
|
|
073e32770f | ||
|
|
a1bddd53f1 | ||
|
|
fa74cac1d6 | ||
|
|
7d863d3e29 | ||
|
|
97c3da6f93 | ||
|
|
c56c1489d5 | ||
|
|
f0a43e3ba6 | ||
|
|
97b6624d9d | ||
|
|
fd3426a984 | ||
|
|
9181a57df2 | ||
|
|
c738b3cfaa | ||
|
|
f20a1e96e4 | ||
|
|
aedec95e37 | ||
|
|
2c3a3bbbd2 | ||
|
|
c3f741bdda | ||
|
|
62e9c613df | ||
|
|
9eefec31b3 | ||
|
|
470d51c913 | ||
|
|
444668c646 | ||
|
|
f4a77dabd9 |
@@ -68,7 +68,7 @@ class Api::V1::Accounts::ArticlesController < Api::V1::Accounts::BaseController
|
||||
|
||||
def article_params
|
||||
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,
|
||||
:description,
|
||||
{ tags: [] }]
|
||||
|
||||
@@ -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`
|
||||
@@ -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 |
@@ -17,6 +17,102 @@ namespace :swagger do
|
||||
puts 'Swagger build was successful.'
|
||||
puts "Generated #{base_path}/swagger.json"
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
@@ -6,4 +6,4 @@ properties:
|
||||
errors:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/request_error'
|
||||
$ref: '#/components/schemas/request_error'
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
## ---------- ERRORS ------------- ##
|
||||
## ---------- ERRORS -------------- ##
|
||||
## -------------------------------- ##
|
||||
bad_request_error:
|
||||
$ref: ./error/bad_request.yml
|
||||
request_error:
|
||||
$ref: ./error/request.yml
|
||||
|
||||
|
||||
|
||||
## ---------- RESOURCE ------------- ##
|
||||
## ---------- RESOURCE ------------ ##
|
||||
## -------------------------------- ##
|
||||
|
||||
generic_id:
|
||||
@@ -18,12 +16,20 @@ custom_attribute:
|
||||
$ref: ./resource/custom_attribute.yml
|
||||
automation_rule:
|
||||
$ref: ./resource/automation_rule.yml
|
||||
automation_rule_item:
|
||||
$ref: ./resource/automation_rule_item.yml
|
||||
portal:
|
||||
$ref: ./resource/portal.yml
|
||||
category:
|
||||
$ref: ./resource/category.yml
|
||||
article:
|
||||
$ref: ./resource/article.yml
|
||||
portal_single:
|
||||
$ref: ./resource/portal_single.yml
|
||||
portal_config:
|
||||
$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:
|
||||
$ref: ./resource/category.yml
|
||||
article:
|
||||
@@ -40,6 +46,8 @@ agent:
|
||||
$ref: ./resource/agent.yml
|
||||
inbox:
|
||||
$ref: ./resource/inbox.yml
|
||||
inbox_contact:
|
||||
$ref: ./resource/inbox_contact.yml
|
||||
agent_bot:
|
||||
$ref: ./resource/agent_bot.yml
|
||||
contact_inboxes:
|
||||
@@ -52,6 +60,8 @@ webhook:
|
||||
$ref: ./resource/webhook.yml
|
||||
account:
|
||||
$ref: ./resource/account.yml
|
||||
account_user:
|
||||
$ref: ./resource/account_user.yml
|
||||
platform_account:
|
||||
$ref: ./resource/platform_account.yml
|
||||
team:
|
||||
@@ -71,13 +81,18 @@ public_message:
|
||||
public_inbox:
|
||||
$ref: ./resource/public/inbox.yml
|
||||
|
||||
|
||||
## ---------- REQUEST------------- ##
|
||||
## ---------- REQUEST ------------- ##
|
||||
## -------------------------------- ##
|
||||
|
||||
account_create_update_payload:
|
||||
$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:
|
||||
$ref: ./request/agent_bot/create_update_payload.yml
|
||||
|
||||
@@ -89,21 +104,36 @@ canned_response_create_update_payload:
|
||||
|
||||
custom_attribute_create_update_payload:
|
||||
$ref: ./request/custom_attribute/create_update_payload.yml
|
||||
## contact
|
||||
contact_create:
|
||||
$ref: ./request/contact/create.yml
|
||||
contact_update:
|
||||
$ref: ./request/contact/update.yml
|
||||
|
||||
## conversation
|
||||
conversation_message_create:
|
||||
$ref: ./request/conversation/create_message.yml
|
||||
## Agent
|
||||
agent_create_payload:
|
||||
$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:
|
||||
$ref: ./request/team/create_update_payload.yml
|
||||
|
||||
# Custom Filter request Payload
|
||||
# Custom Filter
|
||||
custom_filter_create_update_payload:
|
||||
$ref: ./request/custom_filter/create_update_payload.yml
|
||||
|
||||
@@ -128,7 +158,6 @@ category_create_update_payload:
|
||||
article_create_update_payload:
|
||||
$ref: ./request/portal/article_create_update_payload.yml
|
||||
|
||||
|
||||
## public requests
|
||||
public_contact_create_update_payload:
|
||||
$ref: ./request/public/contact/create_update_payload.yml
|
||||
@@ -141,37 +170,36 @@ public_message_update_payload:
|
||||
public_conversation_create_payload:
|
||||
$ref: ./request/public/conversation/create_payload.yml
|
||||
|
||||
## ---------- RESPONSE ------------- ##
|
||||
## ---------- RESPONSE ------------ ##
|
||||
## -------------------------------- ##
|
||||
|
||||
## contact
|
||||
## Contact
|
||||
extended_contact:
|
||||
allOf:
|
||||
- $ref: '#/definitions/contact'
|
||||
- $ref: '#/components/schemas/contact'
|
||||
- $ref: ./resource/extension/contact/show.yml
|
||||
contact_base:
|
||||
allOf:
|
||||
- $ref: '#/definitions/generic_id'
|
||||
- $ref: '#/definitions/contact'
|
||||
- $ref: '#/components/schemas/generic_id'
|
||||
- $ref: '#/components/schemas/contact'
|
||||
contact_list:
|
||||
type: array
|
||||
description: 'array of contacts'
|
||||
items:
|
||||
allOf:
|
||||
- $ref: '#/definitions/generic_id'
|
||||
- $ref: '#/definitions/contact'
|
||||
- $ref: '#/components/schemas/contact'
|
||||
contact_conversations:
|
||||
type: array
|
||||
description: 'array of conversations'
|
||||
items:
|
||||
allOf:
|
||||
- $ref: '#/definitions/conversation'
|
||||
- $ref: '#/components/schemas/conversation'
|
||||
- $ref: ./resource/extension/contact/conversation.yml
|
||||
- $ref: ./resource/extension/conversation/with_display_id.yml
|
||||
contact_labels:
|
||||
$ref: ./resource/extension/contact/labels.yml
|
||||
|
||||
## conversation
|
||||
## Conversation
|
||||
conversation_list:
|
||||
$ref: ./resource/extension/conversation/list.yml
|
||||
conversation_show:
|
||||
@@ -181,9 +209,33 @@ conversation_status_toggle:
|
||||
conversation_labels:
|
||||
$ref: ./resource/extension/conversation/labels.yml
|
||||
|
||||
|
||||
## report
|
||||
## Report
|
||||
account_summary:
|
||||
$ref: './resource/reports/summary.yml'
|
||||
agent_conversation_metrics:
|
||||
$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:
|
||||
type: string
|
||||
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:
|
||||
type: string
|
||||
description: The name of the agent bot
|
||||
example: 'My Agent Bot'
|
||||
description:
|
||||
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:
|
||||
type: string
|
||||
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:
|
||||
attribute_key: content
|
||||
filter_operator: contains
|
||||
query_operator: nil
|
||||
query_operator: OR
|
||||
values:
|
||||
- help
|
||||
|
||||
@@ -3,6 +3,8 @@ properties:
|
||||
content:
|
||||
type: string
|
||||
description: Message content for canned response
|
||||
example: 'Hello, {{contact.name}}! Welcome to our service.'
|
||||
short_code:
|
||||
type: string
|
||||
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}
|
||||
|
||||
+15
-5
@@ -1,18 +1,21 @@
|
||||
type: object
|
||||
required:
|
||||
- inbox_id
|
||||
properties:
|
||||
inbox_id:
|
||||
type: number
|
||||
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
|
||||
@@ -20,9 +23,16 @@ properties:
|
||||
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}
|
||||
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: {}
|
||||
+16
-7
@@ -5,20 +5,29 @@ properties:
|
||||
content:
|
||||
type: string
|
||||
description: The content of the message
|
||||
example: 'Hello, how can I help you?'
|
||||
message_type:
|
||||
type: string
|
||||
enum: ['outgoing', 'incoming']
|
||||
description: The type of the message
|
||||
example: 'outgoing'
|
||||
private:
|
||||
type: boolean
|
||||
description: Flag to identify if it is a private note
|
||||
example: false
|
||||
content_type:
|
||||
type: string
|
||||
enum: ['text', 'input_email', 'cards', 'input_select', 'form' , 'article']
|
||||
example: 'cards'
|
||||
description: 'if you want to create custom message types'
|
||||
enum: ['text', 'input_email', 'cards', 'input_select', 'form', 'article']
|
||||
description: Content type of the message
|
||||
example: 'text'
|
||||
content_attributes:
|
||||
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:
|
||||
type: object
|
||||
description: The template params for the message in case of whatsapp Channel
|
||||
@@ -35,8 +44,8 @@ properties:
|
||||
type: string
|
||||
description: Language of the template
|
||||
example: en_US
|
||||
processed_params:
|
||||
processed_params:
|
||||
type: object
|
||||
description: The processed param values for template variables in template
|
||||
example:
|
||||
1: "Chatwoot"
|
||||
example:
|
||||
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:
|
||||
type: string
|
||||
description: Attribute display name
|
||||
example: 'Custom Attribute'
|
||||
attribute_display_type:
|
||||
type: integer
|
||||
description: Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7)
|
||||
example: 0
|
||||
attribute_description:
|
||||
type: string
|
||||
description: Attribute description
|
||||
example: 'This is a custom attribute'
|
||||
attribute_key:
|
||||
type: string
|
||||
description: Attribute unique key value
|
||||
example: 'custom_attribute'
|
||||
attribute_values:
|
||||
type: array
|
||||
description: Attribute values
|
||||
items:
|
||||
type: string
|
||||
example: ['value1', 'value2']
|
||||
attribute_model:
|
||||
type: integer
|
||||
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:
|
||||
type: string
|
||||
description: The name of the custom filter
|
||||
example: 'My Custom Filter'
|
||||
type:
|
||||
type: string
|
||||
enum: ["conversation", "contact", "report"]
|
||||
enum: ['conversation', 'contact', 'report']
|
||||
description: The description about the custom filter
|
||||
example: 'conversation'
|
||||
query:
|
||||
type: object
|
||||
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
|
||||
properties:
|
||||
app_id:
|
||||
type: string
|
||||
type: integer
|
||||
description: The ID of app for which integration hook is being created
|
||||
example: 1
|
||||
inbox_id:
|
||||
type: string
|
||||
type: integer
|
||||
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:
|
||||
type: object
|
||||
description: The settings required by the integration
|
||||
example: {}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
type: object
|
||||
properties:
|
||||
status:
|
||||
type: integer
|
||||
description: The status of the integration (0 for inactive, 1 for active)
|
||||
example: 1
|
||||
settings:
|
||||
type: object
|
||||
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
|
||||
properties:
|
||||
content:
|
||||
title:
|
||||
type: string
|
||||
description: The text content.
|
||||
meta:
|
||||
type: object
|
||||
description: Use for search
|
||||
example: { tags: ['article_name'], title: 'article title', description: 'article description' }
|
||||
description: The title of the article
|
||||
example: 'Article Title'
|
||||
slug:
|
||||
type: string
|
||||
description: The slug of the article
|
||||
example: 'article-title'
|
||||
position:
|
||||
type: integer
|
||||
description: article position in category
|
||||
status:
|
||||
type: integer
|
||||
example: ['draft', 'published', 'archived']
|
||||
title:
|
||||
example: 1
|
||||
content:
|
||||
type: string
|
||||
slug:
|
||||
description: The text content.
|
||||
example: 'This is the content of the article'
|
||||
description:
|
||||
type: string
|
||||
views:
|
||||
type: integer
|
||||
portal_id:
|
||||
type: integer
|
||||
account_id:
|
||||
type: integer
|
||||
author_id:
|
||||
type: integer
|
||||
description: The description of the article
|
||||
example: 'This is the description of the article'
|
||||
category_id:
|
||||
type: integer
|
||||
folder_id:
|
||||
description: The category id of the article
|
||||
example: 1
|
||||
author_id:
|
||||
type: integer
|
||||
description: The author agent id of the article
|
||||
example: 1
|
||||
associated_article_id:
|
||||
type: integer
|
||||
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
|
||||
properties:
|
||||
description:
|
||||
type: string
|
||||
description: Category description
|
||||
locale:
|
||||
type: string
|
||||
description: Category locale
|
||||
example: en/es
|
||||
name:
|
||||
type: string
|
||||
description: Category name
|
||||
slug:
|
||||
description: The name of the category
|
||||
example: 'Category Name'
|
||||
description:
|
||||
type: string
|
||||
description: Category slug
|
||||
description: A description for the category
|
||||
example: 'Category description'
|
||||
position:
|
||||
type: integer
|
||||
description: Category position in the portal list to sort
|
||||
portal_id:
|
||||
type: integer
|
||||
account_id:
|
||||
type: integer
|
||||
associated_category_id:
|
||||
type: integer
|
||||
description: To associate similar categories to each other, e.g same category of product documentation in different languages
|
||||
example: 1
|
||||
slug:
|
||||
type: string
|
||||
description: The category slug used in the URL
|
||||
example: 'category-name'
|
||||
locale:
|
||||
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:
|
||||
type: integer
|
||||
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
|
||||
properties:
|
||||
archived:
|
||||
type: boolean
|
||||
description: Status to check if portal is live
|
||||
color:
|
||||
type: string
|
||||
description: Header color for help-center
|
||||
example: add color HEX string, "#fffff"
|
||||
config:
|
||||
type: object
|
||||
description: Configuration about supporting locales
|
||||
example: { allowed_locales: ['en', 'es'], default_locale: 'en' }
|
||||
description: Header color for help-center in hex format
|
||||
example: '#FFFFFF'
|
||||
custom_domain:
|
||||
type: string
|
||||
description: Custom domain to display help center.
|
||||
example: https://chatwoot.help/.
|
||||
description: Custom domain to display help center.
|
||||
example: chatwoot.help
|
||||
header_text:
|
||||
type: string
|
||||
description: Help center header
|
||||
@@ -26,11 +19,20 @@ properties:
|
||||
name:
|
||||
type: string
|
||||
description: Name for the portal
|
||||
slug:
|
||||
type: string
|
||||
description: Slug for the portal to display in link
|
||||
example: Handbook
|
||||
page_title:
|
||||
type: string
|
||||
description: Page title for the portal
|
||||
account_id:
|
||||
type: integer
|
||||
example: Handbook
|
||||
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
|
||||
properties:
|
||||
identifier:
|
||||
type: string
|
||||
description: External identifier of the contact
|
||||
example: '1234567890'
|
||||
identifier_hash:
|
||||
type: string
|
||||
description: Identifier hash prepared for HMAC authentication
|
||||
example: 'e93275d4eba0e5679ad55f5360af00444e2a888df9b0afa3e8b691c3173725f9'
|
||||
email:
|
||||
type: string
|
||||
description: Email of the contact
|
||||
example: alice@acme.inc
|
||||
name:
|
||||
type: string
|
||||
description: Name of the contact
|
||||
example: Alice
|
||||
phone_number:
|
||||
type: string
|
||||
description: Phone number of the contact
|
||||
avatar_url:
|
||||
example: '+123456789'
|
||||
avatar:
|
||||
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:
|
||||
type: object
|
||||
description: Custom attributes of the customer
|
||||
description: Custom attributes of the customer
|
||||
example: {}
|
||||
|
||||
@@ -3,3 +3,4 @@ properties:
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: Custom attributes of the conversation
|
||||
example: {}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
|
||||
type: object
|
||||
properties:
|
||||
content:
|
||||
type: string
|
||||
description: Content for the message
|
||||
example: 'Hello, how can I help you?'
|
||||
echo_id:
|
||||
type: string
|
||||
description: Temporary identifier which will be passed back via websockets
|
||||
|
||||
example: '1234567890'
|
||||
|
||||
@@ -1,6 +1,30 @@
|
||||
|
||||
type: object
|
||||
properties:
|
||||
submitted_values:
|
||||
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:
|
||||
type: string
|
||||
description: The name of the team
|
||||
example: Support Team
|
||||
description:
|
||||
type: string
|
||||
description: The description of the team
|
||||
example: This is a team of support agents
|
||||
allow_auto_assign:
|
||||
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
|
||||
example: true
|
||||
|
||||
@@ -3,13 +3,20 @@ properties:
|
||||
name:
|
||||
type: string
|
||||
description: Name of the user
|
||||
example: 'Daniel'
|
||||
display_name:
|
||||
type: string
|
||||
description: Display name of the user
|
||||
example: 'Dan'
|
||||
email:
|
||||
type: string
|
||||
description: Email of the user
|
||||
example: 'daniel@acme.inc'
|
||||
password:
|
||||
type: string
|
||||
description: Password must contain uppercase, lowercase letters, number and a special character
|
||||
example: 'Password2!'
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: Custom attributes you want to associate with the user
|
||||
|
||||
example: {}
|
||||
|
||||
@@ -3,16 +3,23 @@ properties:
|
||||
url:
|
||||
type: string
|
||||
description: The url where the events should be sent
|
||||
example: https://example.com/webhook
|
||||
subscriptions:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
enum: [
|
||||
"conversation_created",
|
||||
"conversation_status_changed",
|
||||
"conversation_updated",
|
||||
"message_created",
|
||||
"message_updated",
|
||||
"webwidget_triggered"
|
||||
]
|
||||
enum:
|
||||
[
|
||||
'conversation_created',
|
||||
'conversation_status_changed',
|
||||
'conversation_updated',
|
||||
'message_created',
|
||||
'message_updated',
|
||||
'contact_created',
|
||||
'contact_updated',
|
||||
'webwidget_triggered',
|
||||
]
|
||||
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
|
||||
@@ -2,31 +2,34 @@ type: object
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
uid:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
available_name:
|
||||
type: string
|
||||
display_name:
|
||||
type: string
|
||||
email:
|
||||
type: string
|
||||
account_id:
|
||||
type: integer
|
||||
role:
|
||||
type: string
|
||||
enum: ['agent', 'administrator']
|
||||
confirmed:
|
||||
type: boolean
|
||||
availability_status:
|
||||
availability_status:
|
||||
type: string
|
||||
enum: ['available', 'busy', 'offline']
|
||||
description: The availability status of the agent computed by Chatwoot.
|
||||
auto_offline:
|
||||
type: boolean
|
||||
description: Whether the availability status of agent is configured to go offline automatically when away.
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: Available for users who are created through platform APIs and has custom attributes associated.
|
||||
|
||||
confirmed:
|
||||
type: boolean
|
||||
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
|
||||
|
||||
@@ -9,9 +9,24 @@ properties:
|
||||
description:
|
||||
type: string
|
||||
description: The description about the agent bot
|
||||
account_id:
|
||||
type: number
|
||||
description: Account ID if it's an account specific bot
|
||||
thumbnail:
|
||||
type: string
|
||||
description: The thumbnail of the agent bot
|
||||
outgoing_url:
|
||||
type: string
|
||||
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
|
||||
properties:
|
||||
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
|
||||
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:
|
||||
type: object
|
||||
example:
|
||||
action_name: add_label
|
||||
action_params:
|
||||
- support
|
||||
- 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
|
||||
payload:
|
||||
description: Response payload that contains automation rule(s)
|
||||
oneOf:
|
||||
- type: array
|
||||
description: Array of automation rules (for listing endpoint)
|
||||
items:
|
||||
$ref: '#/components/schemas/automation_rule_item'
|
||||
- type: object
|
||||
description: Single automation rule (for show/create/update endpoints)
|
||||
allOf:
|
||||
- $ref: '#/components/schemas/automation_rule_item'
|
||||
@@ -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:
|
||||
type: integer
|
||||
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:
|
||||
type: integer
|
||||
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
|
||||
|
||||
@@ -1,31 +1,49 @@
|
||||
type: object
|
||||
properties:
|
||||
payload:
|
||||
type: object
|
||||
properties:
|
||||
contact:
|
||||
type: object
|
||||
properties:
|
||||
email:
|
||||
type: string
|
||||
description: Email address of the contact
|
||||
name:
|
||||
type: string
|
||||
description: The name of the contact
|
||||
phone_number:
|
||||
type: string
|
||||
description: Phone number of the contact
|
||||
thumbnail:
|
||||
type: string
|
||||
description: Avatar URL of the contact
|
||||
additional_attributes:
|
||||
type: object
|
||||
description: The object containing additional attributes related to the contact
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: The object to save custom attributes for contact, accepts custom attributes key and value
|
||||
example: { attribute_key: attribute_value, signed_up_at: dd/mm/yyyy }
|
||||
contact_inboxes:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/contact_inboxes'
|
||||
type: array
|
||||
items:
|
||||
type: object
|
||||
properties:
|
||||
additional_attributes:
|
||||
type: object
|
||||
description: The object containing additional attributes related to the contact
|
||||
availability_status:
|
||||
type: string
|
||||
description: The availability status of the contact
|
||||
email:
|
||||
type: string
|
||||
description: The email address of the contact
|
||||
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
|
||||
blocked:
|
||||
type: boolean
|
||||
description: Whether the contact is blocked
|
||||
identifier:
|
||||
type: string
|
||||
description: The identifier of the contact
|
||||
thumbnail:
|
||||
type: string
|
||||
description: The thumbnail of the contact
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: The custom attributes of the contact
|
||||
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:
|
||||
type: array
|
||||
items:
|
||||
$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
|
||||
description: Contact Inbox Source Id
|
||||
inbox:
|
||||
type: object
|
||||
$ref: '#/definitions/inbox'
|
||||
$ref: '#/components/schemas/inbox_contact'
|
||||
|
||||
@@ -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
|
||||
inbox:
|
||||
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
|
||||
@@ -6,31 +6,86 @@ properties:
|
||||
messages:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/message'
|
||||
$ref: '#/components/schemas/message'
|
||||
account_id:
|
||||
type: number
|
||||
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:
|
||||
type: number
|
||||
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:
|
||||
type: string
|
||||
enum: ['open', 'resolved', 'pending']
|
||||
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:
|
||||
type: string
|
||||
description: The time at which conversation was created
|
||||
contact_last_seen_at:
|
||||
type: string
|
||||
agent_last_seen_at:
|
||||
type: string
|
||||
first_reply_created_at:
|
||||
type: number
|
||||
description: The time at which the first reply was created
|
||||
unread_count:
|
||||
type: number
|
||||
description: The number of unread messages
|
||||
additional_attributes:
|
||||
last_non_activity_message:
|
||||
type: object
|
||||
description: The object containing additional attributes related to the conversation
|
||||
custom_attributes:
|
||||
$ref: '#/components/schemas/message'
|
||||
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
|
||||
description: The object to save custom attributes for conversation, accepts custom attributes key and value
|
||||
example: { attribute_key: attribute_value, priority_conversation_number: 3 }
|
||||
description: The applied SLA
|
||||
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:
|
||||
type: string
|
||||
description: Attribute unique key value
|
||||
regex_pattern:
|
||||
type: string
|
||||
description: Regex pattern
|
||||
regex_cue:
|
||||
type: string
|
||||
description: Regex cue
|
||||
attribute_values:
|
||||
type: string
|
||||
description: Attribute values
|
||||
default_value:
|
||||
type: string
|
||||
description: Attribute default value
|
||||
attribute_model:
|
||||
type: string
|
||||
description: Attribute type(conversation_attribute/contact_attribute)
|
||||
account_id:
|
||||
type: integer
|
||||
description: Account Id
|
||||
default_value:
|
||||
type: string
|
||||
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:
|
||||
type: object
|
||||
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:
|
||||
type: number
|
||||
description: ID fo the sender
|
||||
name:
|
||||
type: string
|
||||
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:
|
||||
type: string
|
||||
description: Avatar URL of the contact
|
||||
channel:
|
||||
type: string
|
||||
description: Channel Type
|
||||
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:
|
||||
type: string
|
||||
description: Channel Type
|
||||
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'
|
||||
items:
|
||||
allOf:
|
||||
- $ref: '#/definitions/generic_id'
|
||||
- $ref: '#/definitions/conversation'
|
||||
- $ref: '#/components/schemas/generic_id'
|
||||
- $ref: '#/components/schemas/conversation'
|
||||
- $ref: '../contact/conversation.yml'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
type: object
|
||||
allOf:
|
||||
- $ref: '#/definitions/conversation'
|
||||
- $ref: '#/components/schemas/conversation'
|
||||
- $ref: '../contact/conversation.yml'
|
||||
|
||||
@@ -39,3 +39,87 @@ properties:
|
||||
greeting_message:
|
||||
type: string
|
||||
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
|
||||
@@ -1,8 +1,40 @@
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
type: number
|
||||
description: The ID of the message
|
||||
content:
|
||||
type: string
|
||||
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:
|
||||
type: string
|
||||
enum: ["text", "input_select", "cards", "form"]
|
||||
@@ -10,22 +42,31 @@ properties:
|
||||
content_attributes:
|
||||
type: object
|
||||
description: The content attributes for each content_type
|
||||
message_type:
|
||||
sender_type:
|
||||
type: string
|
||||
enum: ["incoming", "outgoing", "activity", "template"]
|
||||
description: The type of the message
|
||||
created_at:
|
||||
type: integer
|
||||
description: The time at which message was created
|
||||
private:
|
||||
type: boolean
|
||||
description: The flags which shows whether the message is private or not
|
||||
enum: ["contact", "agent", "agent_bot"]
|
||||
description: The type of the sender
|
||||
sender_id:
|
||||
type: number
|
||||
description: The ID of the sender
|
||||
external_source_ids:
|
||||
type: object
|
||||
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:
|
||||
type: object
|
||||
description: The file object attached to the image
|
||||
sender:
|
||||
type: 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)
|
||||
@@ -1,34 +1,6 @@
|
||||
type: object
|
||||
properties:
|
||||
id:
|
||||
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:
|
||||
payload:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/category'
|
||||
articles:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/article'
|
||||
$ref: '#/components/schemas/portal_item'
|
||||
|
||||
@@ -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'
|
||||
@@ -1,5 +1,5 @@
|
||||
type: object
|
||||
properties:
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
description: Id of the contact
|
||||
@@ -14,4 +14,4 @@ properties:
|
||||
description: Email of the contact
|
||||
pubsub_token:
|
||||
type: string
|
||||
description: The token to be used to connect to chatwoot websocket
|
||||
description: The token to be used to connect to chatwoot websocket
|
||||
|
||||
@@ -9,7 +9,7 @@ properties:
|
||||
messages:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/definitions/message'
|
||||
$ref: '#/components/schemas/message'
|
||||
description: Messages in the conversation
|
||||
contact:
|
||||
type: object
|
||||
|
||||
@@ -2,27 +2,77 @@ type: object
|
||||
properties:
|
||||
id:
|
||||
type: number
|
||||
uid:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
available_name:
|
||||
type: string
|
||||
display_name:
|
||||
type: string
|
||||
email:
|
||||
access_token:
|
||||
type: string
|
||||
account_id:
|
||||
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:
|
||||
type: string
|
||||
enum: ['agent', 'administrator']
|
||||
confirmed:
|
||||
type: boolean
|
||||
custom_attributes:
|
||||
ui_settings:
|
||||
type: object
|
||||
uid:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
nullable: true
|
||||
custom_attributes:
|
||||
type: object
|
||||
description: Available for users who are created through platform APIs and has custom attributes associated.
|
||||
accounts:
|
||||
type: array
|
||||
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
|
||||
|
||||
+83
-37
@@ -1,48 +1,94 @@
|
||||
swagger: "2.0"
|
||||
openapi: '3.0.4'
|
||||
info:
|
||||
description: This is the API documentation for Chatwoot server.
|
||||
version: 1.0.0
|
||||
title: Chatwoot
|
||||
termsOfService: https://www.chatwoot.com/terms-of-service/
|
||||
description: This is the API documentation for Chatwoot server.
|
||||
version: 1.1.0
|
||||
termsOfService: https://www.chatwoot.com/terms-of-service/
|
||||
contact:
|
||||
email: hello@chatwoot.com
|
||||
license:
|
||||
name: MIT License
|
||||
url: https://opensource.org/licenses/MIT
|
||||
host: app.chatwoot.com
|
||||
basePath: /
|
||||
schemes:
|
||||
- https
|
||||
produces:
|
||||
- application/json; charset=utf-8
|
||||
consumes:
|
||||
- application/json; charset=utf-8
|
||||
securityDefinitions:
|
||||
userApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token can be obtained by visiting the profile page or via rails console. Provides access to endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user.
|
||||
agentBotApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token should be provided by system admin or obtained via rails console. This token can be used to build bot integrations and can only access limited apis.
|
||||
platformAppApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.
|
||||
security:
|
||||
- userApiKey: []
|
||||
|
||||
servers:
|
||||
- url: https://app.chatwoot.com/
|
||||
paths:
|
||||
$ref: ./paths/index.yml
|
||||
definitions:
|
||||
$ref: ./definitions/index.yml
|
||||
parameters:
|
||||
$ref: ./parameters/index.yml
|
||||
|
||||
components:
|
||||
schemas:
|
||||
$ref: ./definitions/index.yml
|
||||
parameters:
|
||||
$ref: ./parameters/index.yml
|
||||
securitySchemes:
|
||||
userApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token can be obtained by visiting the profile page or via rails console. Provides access to endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user.
|
||||
agentBotApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token should be provided by system admin or obtained via rails console. This token can be used to build bot integrations and can only access limited apis.
|
||||
platformAppApiKey:
|
||||
type: apiKey
|
||||
in: header
|
||||
name: api_access_token
|
||||
description: This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.
|
||||
tags:
|
||||
- name: Accounts
|
||||
description: Account management APIs
|
||||
- name: Account Users
|
||||
description: Account user management APIs
|
||||
- name: AgentBots
|
||||
description: Bot integrations
|
||||
- name: Users
|
||||
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:
|
||||
- name: Platform
|
||||
tags:
|
||||
@@ -57,7 +103,7 @@ x-tagGroups:
|
||||
- Canned Responses
|
||||
- Contacts
|
||||
- Contact Labels
|
||||
- Conversation Assignment
|
||||
- Conversation Assignments
|
||||
- Conversation Labels
|
||||
- Conversations
|
||||
- Custom Attributes
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: account_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the account
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The ID of the agentbot to be updated
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
in: query
|
||||
name: sort
|
||||
type: string
|
||||
enum:
|
||||
- name
|
||||
- email
|
||||
- phone_number
|
||||
- last_activity_at
|
||||
- -name
|
||||
- -email
|
||||
- -phone_number
|
||||
- -last_activity_at
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- name
|
||||
- email
|
||||
- phone_number
|
||||
- last_activity_at
|
||||
- -name
|
||||
- -email
|
||||
- -phone_number
|
||||
- -last_activity_at
|
||||
required: false
|
||||
description: The attribute by which list should be sorted
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: conversation_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the conversation
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: conversation_uuid
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The uuid of the conversation
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: custom_filter_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the custom filter
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: hook_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the integration hook
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: inbox_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The ID of the Inbox
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: message_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the message
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
in: query
|
||||
name: page
|
||||
type: integer
|
||||
default: 1
|
||||
schema:
|
||||
type: integer
|
||||
default: 1
|
||||
required: false
|
||||
description: The page parameter
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the user on the platform
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: portal_id
|
||||
type: integer
|
||||
name: id
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: The numeric ID of the portal
|
||||
description: The slug identifier of the portal
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: contact_identifier
|
||||
type: string
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: The source id of contact obtained on contact create
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: inbox_identifier
|
||||
type: string
|
||||
schema:
|
||||
type: string
|
||||
required: true
|
||||
description: The identifier obtained from API inbox channel
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
in: query
|
||||
name: metric
|
||||
type: string
|
||||
enum:
|
||||
- conversations_count
|
||||
- incoming_messages_count
|
||||
- outgoing_messages_count
|
||||
- avg_first_response_time
|
||||
- avg_resolution_time
|
||||
- resolutions_count
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- conversations_count
|
||||
- incoming_messages_count
|
||||
- outgoing_messages_count
|
||||
- avg_first_response_time
|
||||
- avg_resolution_time
|
||||
- resolutions_count
|
||||
required: true
|
||||
description: The type of metric
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
in: query
|
||||
name: type
|
||||
type: string
|
||||
enum:
|
||||
- account
|
||||
- agent
|
||||
- inbox
|
||||
- label
|
||||
- team
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- account
|
||||
- agent
|
||||
- inbox
|
||||
- label
|
||||
- team
|
||||
required: true
|
||||
description: Type of report
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: source_id
|
||||
required: true
|
||||
type: string
|
||||
schema:
|
||||
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"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: team_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The ID of the team to be updated
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
in: path
|
||||
name: webhook_id
|
||||
type: integer
|
||||
schema:
|
||||
type: integer
|
||||
required: true
|
||||
description: The numeric ID of the webhook
|
||||
|
||||
@@ -3,17 +3,24 @@ tags:
|
||||
operationId: create-an-account-agent-bot
|
||||
summary: Create an Agent Bot
|
||||
description: Create an agent bot in the account
|
||||
parameters:
|
||||
- $ref: '#/parameters/account_id'
|
||||
- name: data
|
||||
in: body
|
||||
required: true
|
||||
schema:
|
||||
$ref: '#/definitions/agent_bot_create_update_payload'
|
||||
security:
|
||||
- userApiKey: []
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/agent_bot_create_update_payload'
|
||||
responses:
|
||||
200:
|
||||
'200':
|
||||
description: Success
|
||||
schema:
|
||||
$ref: '#/definitions/agent_bot'
|
||||
401:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/agent_bot'
|
||||
'401':
|
||||
description: Unauthorized
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/bad_request_error'
|
||||
|
||||
@@ -3,10 +3,20 @@ tags:
|
||||
operationId: delete-an-account-agent-bot
|
||||
summary: Delete an AgentBot
|
||||
description: Delete an AgentBot from the account
|
||||
security:
|
||||
- userApiKey: []
|
||||
responses:
|
||||
200:
|
||||
description: Success
|
||||
401:
|
||||
description: Unauthorized
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/bad_request_error'
|
||||
404:
|
||||
description: The agent bot does not exist in the account
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/bad_request_error'
|
||||
|
||||
@@ -3,14 +3,21 @@ tags:
|
||||
operationId: list-all-account-agent-bots
|
||||
summary: List all AgentBots
|
||||
description: List all agent bots available for the current account
|
||||
security:
|
||||
- userApiKey: []
|
||||
responses:
|
||||
200:
|
||||
'200':
|
||||
description: Success
|
||||
schema:
|
||||
type: array
|
||||
description: 'Array of agent bots'
|
||||
items:
|
||||
$ref: '#/definitions/agent_bot'
|
||||
|
||||
401:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
description: 'Array of agent bots'
|
||||
items:
|
||||
$ref: '#/components/schemas/agent_bot'
|
||||
'401':
|
||||
description: Unauthorized
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/bad_request_error'
|
||||
|
||||
@@ -3,12 +3,24 @@ tags:
|
||||
operationId: get-details-of-a-single-account-agent-bot
|
||||
summary: Get an agent bot details
|
||||
description: Get the details of an agent bot in the account
|
||||
security:
|
||||
- userApiKey: []
|
||||
responses:
|
||||
200:
|
||||
'200':
|
||||
description: Success
|
||||
schema:
|
||||
$ref: '#/definitions/agent_bot'
|
||||
401:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/agent_bot'
|
||||
'401':
|
||||
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
|
||||
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
Reference in New Issue
Block a user