# Create Channel # Overview Use this API to register and define custom channel parameters in the Conversation Manager which is used for chat messages. New Account API process flow: Authenticiation > Client Application > Participant > Channel > Orchestration > Account Note: You can configure your system to use third party Channels. The API instructions provided here assume you are using eGain's application setup. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned. Endpoint: POST /channels Security: oAuthClient ## Request fields (application/json): - `type` (string, required) Unique channel type. Do not prefix with 'custom.' for channels supported by eGain. Example: "custom.teams" - `displayName` (string, required) Example: "Teams" - `icon` (string, required) base64 encoded image. This icon is used in eGain Chat Advisor desktop for activities of this channel. If eGain Chat is used for live agents then use icon file in ‘png’ format with pixel dimensions 32 X 32. - `description` (string) - `active` (boolean) - `restrictions` (object) Channel restriction on inbound(from customer) and outbound( to customer) messages. - `restrictions.inbound` (object) Channel restrictions messages coming from customer. - `restrictions.inbound.maxTextLength` (integer) Number of characters allowed in text message. Example: 140 - `restrictions.inbound.attachmentPolicy` (object) - `restrictions.inbound.attachmentPolicy.enabled` (boolean) if this flag is set to true then application will allow inbound attachments - `restrictions.inbound.attachmentPolicy.maxSize` (integer) - `restrictions.inbound.attachmentPolicy.type` (string) Whether to allow or block files with extension provided in 'attachmentPolicy.extensions' Enum: "allow", "block" - `restrictions.inbound.attachmentPolicy.extensions` (array) File extensions - `restrictions.inbound.features` (array) if no features are provided then application will allow participants to send typing events, attachments and richText ( html content) Enum: "typing_events", "attachments", "richText", "delivery_receipts" - `restrictions.outbound` (object) Channel restrictions on messages/attachments sent to customer. - `restrictions.outbound.systemMessages` (boolean) Based on this flag eGain Agent application decides whether to send system messages or not - `restrictions.outbound.midChatAuth` (boolean) Based on this flag eGain Agent application will decides whether to support mid chat authentiation or not.. - `restrictions.outbound.features` (array) if no features are provided then application will not allow participants to send typing events, attachments and richText ( html content) Enum: "typing_events", "attachments", "richText", "delivery_receipts" - `restrictions.outbound.customerServiceWindow` (object) - `restrictions.outbound.customerServiceWindow.durationMinutes` (integer, required) After this duration advisor is not allowed to send free text reply to customer. Advisor can sed only message types defined in continueMessageTypes. - `restrictions.outbound.customerServiceWindow.continueMessageTypes` (array) Type of message to be allowed to send to customer after durationMinutes Enum: "listpicker", "timepicker", "richlink", "quickreply", "template", "form", "authentication", "payment", "app" - `restrictions.outbound.richMessageTypes` (array) Rich message types that channel supports. If no rich message types are provided then application will not allow participants to send rich messages types. Enum: "listpicker", "timepicker", "richlink", "quickreply", "template", "form", "authentication", "payment", "app" - `l10nProperties` (array) - `l10nProperties.language` (string, required) language of properties Enum: "en-US", "es-ES", "fr-FR", "it-IT", "de-DE", "nl-NL", "pt-BR", "pt-PT", "da-DK", "ru-RU", "fr-CA", "zh-CN", "ja-JP", "ko-KR", "sv-SE" - `l10nProperties.properties` (array, required) - `l10nProperties.properties.name` (string, required) name of attribute - `l10nProperties.properties.value` (string, required) value of attribute ## Response 201 fields (application/json): - `id` (string) UUID generated for the object. ## Response 400 fields (application/json): - `code` (string, required) String that follow the pattern {integer}-{integer}. * The first part is http status code. The code is unique as a whole. Nothing common between 400-101 and 404-101 - `developerMessage` (string, required) Response explaining what happened - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly message only supported by some API. * Client must request explicitly by passing X-egain-error-message=yes header ## Response 401 fields (application/json): - `code` (string, required) String that follow the pattern {integer}-{integer}. * The first part is http status code. The code is unique as a whole. Nothing common between 400-101 and 404-101 - `developerMessage` (string, required) Response explaining what happened - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly message only supported by some API. * Client must request explicitly by passing X-egain-error-message=yes header ## Response 403 fields (application/json): - `code` (string, required) String that follow the pattern {integer}-{integer}. * The first part is http status code. The code is unique as a whole. Nothing common between 400-101 and 404-101 - `developerMessage` (string, required) Response explaining what happened - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly message only supported by some API. * Client must request explicitly by passing X-egain-error-message=yes header ## Response 500 fields (application/json): - `code` (string, required) String that follow the pattern {integer}-{integer}. * The first part is http status code. The code is unique as a whole. Nothing common between 400-101 and 404-101 - `developerMessage` (string, required) Response explaining what happened - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly message only supported by some API. * Client must request explicitly by passing X-egain-error-message=yes header