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