# Conversation Manager APIs

This section provides the requisite APIs needed to create Conversation Manager accounts and to configure conversation workflows. 
To create the Conversation Manager acccount, use the Conversation APIs in this order when setting up a complete eGain application:
* Authentication
* Client Application
* Participant 
* Channel 
* Orchestration 
* Account 

After the account is created you can use the following APIs to send / receive messages.
* Conversation 
* Asset

Note: You can configure your system to use third party Bots and third party Channels. The API instructions provided here assume you are using eGain's application setup.



## Servers

Production Server
```
https://api.egain.cloud/conversation/conversationmgr/v3
```

## Security

### oAuthClient

Authenticate as a client (Server to Server).

Type: oauth2
Token URL: https://login.egain.cloud/global/f51302dd-7036-41b5-b619-e1a52a67c780/oauth2/v2.0/token
Scopes:
- `https://api.egain.cloud/auth/.default`: Default scope

## Download OpenAPI description

 - [Conversation Manager APIs](https://apidev.egain.com/_bundle/apis/v3/conversation/conversationmgr/api-bundled.yaml)

## Authentication

 - [POST /authentications](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/authentication/createauthentication.md): # Overview Use this API to register client callback Authentication methods using oAuth or Basic Authentication. This is the first step in creating a new Conversation Account. New Account API process f
 - [GET /authentications](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/authentication/getallauthentication.md): # Overview Use this API to Get details of all authentication types in the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' assigned to call this AP
 - [GET /authentications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/authentication/getauthentication.md): # Overview Use this API to get details of existing Authentication types in the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversatio
 - [PUT /authentications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/authentication/updateauthentication.md): # Overview Use this API to update an existing authentication type. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
 - [DELETE /authentications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/authentication/deleteauthentication.md): # Overview Use this API to delete an existing authentication method. An authentication method can not be deleted if it is in use in the client application. ## Scope Client application must have 'app.c
## Client Application

 - [POST /clientapplications](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/client-application/createclientapplication.md): # Overview API to register new Client Applications that can integrate with the Conversation Hub. Client applications are used to send and receive messages. New Account API process flow: Authenticiatio
 - [GET /clientapplications](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/client-application/getallclientapplication.md): # Overview Use this APi to get details of all Client applications. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope assi
 - [GET /clientapplications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/client-application/getclientapplication.md): # Overview Use this API to get details of the Client application in the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conve
 - [PUT /clientapplications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/client-application/updateclientapplication.md): # Overview Use this API to update an existing Client application registered with the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigne
 - [DELETE /clientapplications/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/client-application/deleteclientapplication.md): # Overview Use this APi to delete a Client application. If client application is used by a participant then it can not be deleted. ## Scope Client application must have 'app.conversation.conversationm
## Participant

 - [POST /participants](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/participant/createparticipant.md): # Overview This API allow you to register participant New Account API process flow: Authenticiation > Client Application > **Participant** > Channel > Orchestration > Account ## Scope Client applicati
 - [GET /participants](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/participant/getallparticipant.md): # Overview Use this API to Get details of all participants. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope assigned.
 - [GET /participants/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/participant/getparticipant.md): # Overview Use this API to Get details of an existing Participant ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope assig
 - [PUT /participants/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/participant/updateparticipant.md): # Overview Use this API to update an existing participant. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
 - [DELETE /participants/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/participant/deleteparticipant.md): # Overview Use this API to delete an existing participant. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
## Channel

 - [POST /channels](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/channel/createchannel.md): # 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
 - [GET /channels](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/channel/getallchannels.md): # Overview Use this API to Get all channel details for the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.re
 - [GET /channels/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/channel/getchannel.md): # Overview Use this API to Get channel detail information in the Conversation Manager. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversation
 - [PUT /channels/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/channel/updatechannel.md): # Overview Use this API to update an existing channel in the Conversation Manager with your specific custom requirements. ## Scope Client application must have 'app.conversation.conversationmgr.manage
 - [DELETE /channels/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/channel/deletechannel.md): # Overview Use this API to delete a channel in the Conversation Manager. A channel can not be deleted if it is in use in the client application. ## Scope Client application must have 'app.conversation
## Orchestration

 - [POST /orchestrations](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/orchestration/createorchestration.md): # Overview Use this API to configure workflows for conversations between participants (Customer/Agent/Bot applications). New Account API process flow: Authenticiation > Client Application > Participan
 - [GET /orchestrations](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/orchestration/getallorchestration.md): # Overview Use this API to Get all conversation orchestration details. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope
 - [GET /orchestrations/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/orchestration/getorchestration.md): # Overview Use this API to Get orchestration details. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope assigned.
 - [PUT /orchestrations/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/orchestration/updateorchestration.md): # Overview Use this API to update existing orchestration configuration. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
 - [DELETE /orchestrations/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/orchestration/deleteorchestration.md): # Overview Use this API to delete an existing orchestration. If an orchestration object is in use in a channel account, then the orchestration object cannot be deleted. ## Scope Client application mus
## Account

 - [POST /accounts](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/account/createaccount.md): # Overview Use this API to create a Conversation Account for the Conversation Manager. New Account API process flow: Authentication > Client Application > Participant > Channel > Orchestration > **Acc
 - [GET /accounts](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/account/getallaccounts.md): # Overview This APIs allows you to get details of all accounts ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmgr.read' scope assigned
 - [GET /accounts/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/account/getaccount.md): # Overview Use this API to get details of a registered Conversation Manager account. ## Scope Client application must have 'app.conversation.conversationmgr.manage' or 'app.conversation.conversationmg
 - [PUT /accounts/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/account/updateaccount.md): # Overview This APIs allows you to update an existing Conversation Manager account. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
 - [DELETE /accounts/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/account/deleteaccount.md): # Overview Use this API to delete a Conversation Manager account. ## Scope Client application must have 'app.conversation.conversationmgr.manage' scope assigned.
## Conversation

 - [POST /conversations/messages](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/conversation/sendmessage.md): # Overview Use this API to send different types of messages to the Conversation Hub. Conversation Hub delivers messages on a callback URL of registered client applications of recipient. Recipient clie
 - [GET /conversations/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/conversation/fetchconversation.md): # Overview Use this API to get details of a completed conversation using conversation id. ## Scope Client application must have 'app.conversation.conversationmgr.interaction.manage' or 'app.conversati
## Assets

 - [POST /assets](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/assets/createasset.md): # Overview Use this API to generate a signed URL for uploading an asset. Use contentUrl in response as it is used for uploading content. Make sure you upload files which have the same content type and
 - [GET /assets/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/assets/getasset.md): Use this API to generate a signed URL for downloading content. Use contentUrl in response as it used is for downloading content. ## Scope Client application must have 'app.conversation.conversationmgr
 - [DELETE /assets/{id}](https://apidev.egain.com/apis/v3/conversation/conversationmgr/api-bundled/assets/deleteasset.md): # Overview Use this API to delete an asset. After an asset is used in a message the asset cannot be deleted. ## Scope Client application must have 'app.conversation.conversationmgr.interaction.manage'
