Documents the existing API inbox webhook_url request field and expands inbox create/update request docs with channel-specific schemas and examples. Closes #14591 ## Why API inboxes already accept channel.webhook_url through Channel::Api editable attributes, but the OpenAPI request schemas did not document the field. The previous mixed channel object also made it hard to see which fields belong to each supported channel type. ## What changed - Added named channel payload schemas for supported inbox create channel types. - Added channel-specific create request samples in this order: Website inbox, API channel, Email channel, LINE channel, Telegram channel, WhatsApp channel, SMS channel. - Added common inbox fields such as greeting_enabled, greeting_message, enable_auto_assignment, working_hours_enabled, and timezone to request samples. - Kept website-only flags such as allow_messages_after_resolved and enable_email_collect only in website inbox samples. - Annotated inbox request field descriptions with channel availability where Swagger UI cannot dynamically filter fields. - Added channel-specific update settings schemas and request samples for editable channel attributes. - Documented channel.webhook_url for API inbox create/update payloads. - Rebuilt generated Swagger JSON and tag-group specs. ## Screenshots **Website inbox request sample** Shows the request sample selector set to Website inbox, including website-only fields such as enable_email_collect and allow_messages_after_resolved. <img width="3840" height="2160" alt="Website inbox request sample" src="https://github.com/user-attachments/assets/ad130f04-b336-4cc3-aba1-e934b646d447" /> **API channel request sample** Shows the selector switched to API channel, with API-specific fields such as webhook_url, hmac_mandatory, and additional_attributes. <img width="3840" height="2160" alt="API channel request sample" src="https://github.com/user-attachments/assets/09484816-1d47-490f-9ab4-195835ed5cd3" /> **Expanded channel schema** Shows the request-body schema with channel expanded, including the type selector and channel-specific fields under it. <img width="3840" height="2160" alt="Expanded channel schema" src="https://github.com/user-attachments/assets/f6c4878e-ac34-40fe-8be3-5913f27cbdd8" /> ## Validation - bundle exec rake swagger:build - bundle exec rspec spec/swagger/openapi_spec.rb - Rendered the local Swagger page and verified the request sample dropdown order and API channel payload. --------- Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
185 lines
5.8 KiB
YAML
185 lines
5.8 KiB
YAML
get:
|
|
tags:
|
|
- Inboxes
|
|
operationId: GetInbox
|
|
summary: Get an inbox
|
|
security:
|
|
- userApiKey: []
|
|
description: Get an inbox available in the current account
|
|
parameters:
|
|
- $ref: '#/components/parameters/account_id'
|
|
- name: id
|
|
in: path
|
|
schema:
|
|
type: number
|
|
description: ID of the inbox
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/inbox'
|
|
'404':
|
|
description: Inbox not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/bad_request_error'
|
|
'403':
|
|
description: Access denied
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/bad_request_error'
|
|
patch:
|
|
tags:
|
|
- Inboxes
|
|
operationId: updateInbox
|
|
summary: Update Inbox
|
|
security:
|
|
- userApiKey: []
|
|
description: Update an existing inbox
|
|
parameters:
|
|
- $ref: '#/components/parameters/account_id'
|
|
- name: id
|
|
in: path
|
|
schema:
|
|
type: number
|
|
description: ID of the inbox
|
|
required: true
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/inbox_update_payload'
|
|
examples:
|
|
web_widget:
|
|
summary: Website inbox settings
|
|
value:
|
|
name: Support
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_email_collect: true
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
allow_messages_after_resolved: true
|
|
channel:
|
|
website_url: https://example.com
|
|
welcome_title: Welcome to our support
|
|
welcome_tagline: We are here to help you
|
|
widget_color: '#FF5733'
|
|
reply_time: in_a_few_minutes
|
|
pre_chat_form_enabled: false
|
|
continuity_via_email: true
|
|
hmac_mandatory: false
|
|
selected_feature_flags:
|
|
- attachments
|
|
- emoji_picker
|
|
- end_conversation
|
|
api:
|
|
summary: API channel settings
|
|
value:
|
|
name: API Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
webhook_url: https://example.com/webhook
|
|
hmac_mandatory: false
|
|
additional_attributes:
|
|
source: mobile_app
|
|
email:
|
|
summary: Email channel settings
|
|
value:
|
|
name: Email Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
email: support@example.com
|
|
imap_enabled: false
|
|
smtp_enabled: false
|
|
line:
|
|
summary: LINE channel settings
|
|
value:
|
|
name: LINE Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
line_channel_id: '1234567890'
|
|
line_channel_secret: line-channel-secret
|
|
line_channel_token: line-channel-token
|
|
telegram:
|
|
summary: Telegram channel settings
|
|
value:
|
|
name: Telegram Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
bot_token: 123456789:telegram-bot-token
|
|
whatsapp:
|
|
summary: WhatsApp channel settings
|
|
value:
|
|
name: WhatsApp Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
phone_number: '+15551234567'
|
|
provider: whatsapp_cloud
|
|
provider_config:
|
|
api_key: your-api-key
|
|
phone_number_id: your-phone-number-id
|
|
business_account_id: your-business-account-id
|
|
sms:
|
|
summary: SMS channel settings
|
|
value:
|
|
name: SMS Inbox
|
|
greeting_enabled: true
|
|
greeting_message: Hello, how can I help you?
|
|
enable_auto_assignment: true
|
|
working_hours_enabled: true
|
|
timezone: America/New_York
|
|
channel:
|
|
phone_number: '+15551234567'
|
|
provider_config:
|
|
api_key: your-api-key
|
|
api_secret: your-api-secret
|
|
application_id: your-application-id
|
|
account_id: your-account-id
|
|
responses:
|
|
'200':
|
|
description: Success
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/inbox'
|
|
'404':
|
|
description: Inbox not found
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/bad_request_error'
|
|
'403':
|
|
description: Access denied
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/bad_request_error'
|