Servicio humano
Cuando se elige Webhook como método de acceso al servicio humano, primero se debe crear un servicio Webhook en el entorno del servidor. Se deben proporcionar las tres interfaces siguientes según las especificaciones para recibir solicitudes de servicio humano, mensajes de usuario y mensajes de respuesta del servicio de atención al cliente humana. GPTBots también proporciona dos interfaces para recibir mensajes de respuesta del servicio de atención al cliente e instrucciones de cierre de conversación.
Notas importantes:
- Se debe garantizar que el servicio Webhook funcione correctamente, ya que afecta directamente al funcionamiento del servicio de soporte humano.
- Si se muestra «Busy» tras iniciar el soporte humano, indica que el servicio Webhook no funciona correctamente.
- Si se muestra «Connecting» tras iniciar el soporte humano, indica que el servicio Webhook funciona con normalidad.
- Después de iniciar correctamente una solicitud de servicio de soporte humano:
- Se debe llamar a la interfaz Reply to User Message (https://api.gptbots.ai/v1/human/message/receive) para responder al usuario con, al menos, un mensaje, a fin de establecer la conexión de la conversación.
- Si no se responde al mensaje del usuario dentro del período de waiting timeout configurado (valor predeterminado: 60 segundos), la conversación de soporte humano se finalizará automáticamente.
Recepción de la solicitud de conversación de servicio humano
Cuando un usuario final inicia una solicitud de servicio humano, GPTBots reenvía dicha solicitud al servicio Webhook. Un código de estado de respuesta 200 devuelto por el servicio de interfaz indica que la conversación del servicio humano se ha creado correctamente.
Método de solicitud
POST
Endpoint
https://YOUR_DOMAIN/human/service/conversation/establish
Ejemplo de solicitud
curl -X POST 'https://YOUR_DOMAIN/human/service/conversation/establish' \
-H 'Content-Type: application/json' \
-d '{
"body": [
{
"text": "human service",
"message_type": "QUESTION"
},
{
"text": "content",
"message_type": "ANSWER"
},
{
"text": "content",
"files": {
"content_type":"Image",
"url":"http://gptbots.ai/example.jpg"
},
"message_type": "QUESTION"
}
],
"timestamp": 1742265090895,
"email": "bob@gmail.com",
"conversation_id": "67d8db020fa31d1ef64f53dg",
"bot_id": "665d88b03ce2b13cf2d573454",
"user_info": {
"phone": null,
"email": "bob@gmail.com",
"user_id": "KDslas",
"anonymous_id": "652face5184b30540a6ea7fe"
}
}'
Nota: El
conversation_idde este cuerpo de solicitud solo se utiliza para identificar el ID único de la conversación en escenarios de conversación de servicio humano, que es diferente del ID único generado por Crear ID de conversación (Create Conversation ID) para escenarios de conversación del agente.
Parámetros de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| conversation_id | string | ID de conversación para escenarios de atención al cliente humana (distinto de los ID de conversación del agente); se debe retransmitir a GPTBots en la interfaz de respuesta del servicio de atención al cliente |
| timestamp | long | Marca de tiempo |
| string | Correo electrónico del usuario; algunos sistemas de servicio humano requieren un correo electrónico para prestar servicios correctamente | |
| bot_id | string | ID del agente (anteriormente bot) |
| body | list<Object> | Cuerpo del mensaje |
| message_type | string | Tipo de mensaje, QUESTION/ANSWER |
| text | string | La pregunta iniciada por el cliente para el servicio de atención al cliente humana y su contexto |
| files | Object | Información de archivos |
| content_type | string | Tipo de archivo |
| url | string | URL del archivo |
| user_info | object | Información del usuario |
| user_info.phone | string | Número de teléfono del usuario; actualmente solo disponible al cambiar a atención al cliente humana mediante WhatsApp |
| user_info.email | string | Correo electrónico del usuario; disponible cuando el usuario introduce su correo electrónico |
| user_info.user_id | string | ID de usuario. Identificador único de la identidad del usuario definido por los desarrolladores empresariales; lo establecen los desarrolladores para un ID anónimo específico |
| user_info.anonymous_id | string | ID anónimo. Cuando un usuario inicia una conversación con el agente en plataformas de canal que no son API, el sistema genera un ID anónimo que contiene la información de la plataforma de canal en función de la plataforma de canal del usuario |
Notas sobre el campo
- Al iniciar el servicio humano mediante iframe/Share/Bubble Widget, el usuario debe completar su correo electrónico. También se permite a los desarrolladores personalizar el correo electrónico del usuario para evitar que el usuario tenga que introducir un correo electrónico.
- Al solicitar el servicio humano a través de plataformas de terceros como WhatsApp/Telegram/livechat, el correo electrónico predeterminado utilizado es support@gptbots.ai. Para livechat, se puede personalizar el correo electrónico del usuario.
- Al solicitar el servicio humano mediante API, el campo
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | int | Código de respuesta |
| message | string | Detalles |
Interfaz de chat
Con el conversation_id creado, se envía el mensaje del usuario al servicio de atención al cliente humana.
Método de solicitud
POST
Endpoint
Parámetros de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| conversation_id | string | ID de conversación; debe pasarse a GPTBots en la interfaz de respuesta del servicio de atención al cliente |
| timestamp | long | Marca de tiempo |
| body | string | Mensaje del usuario |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | int | Código de respuesta |
| message | string | Detalles |
Interfaz para cerrar la conversación
Cuando se agota el tiempo de espera de una conversación de usuario o el agente cierra la conversación de forma activa, se llama a esta interfaz para cerrar la conversación.
Método de solicitud
POST
Endpoint
https://your_domain/conversation/close
Cabecera de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${token} | Se utiliza Authorization: Bearer ${token} para la autenticación. El token se obtiene en la página «API Key» (clave de API). |
| Content-Type | application/json | Tipo de contenido; se establece en application/json. |
Parámetros de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| conversation_id | string | ID de conversación; debe pasarse a GPTBots en la interfaz de respuesta del servicio de atención al cliente |
| timestamp | long | Marca de tiempo |
| type | string | Tipo de cierre: TIMEOUT (cierre por tiempo de espera) / USER_CLOSED (cierre activo por parte del usuario) |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | int | Código de respuesta |
| message | string | Detalles |
Responder a mensajes del usuario
Cuando se elige webhook como método de integración de servicio humano, GPTBots proporciona una interfaz para responder a mensajes de usuario. Esta interfaz permite a los agentes de atención al cliente humanos enviar el contenido del mensaje de vuelta a los usuarios.
Método de solicitud
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/human/message/receive
Cabecera de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${token} | Se utiliza Authorization: Bearer ${token} para la autenticación. El token se obtiene en la página «API Key» (clave de API). |
| Content-Type | application/json | Tipo de contenido; se establece en application/json. |
Parámetros de la solicitud
| Parámetro | Tipo | Descripción | Obligatorio |
|---|---|---|---|
| conversation_id | string | ID de conversación; se pasa en la interfaz de creación de conversación y en la interfaz de chat; basta con retransmitirlo | true |
| timestamp | long | Marca de tiempo | true |
| body | string | Contenido de la respuesta del servicio de atención al cliente humana | true |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | int | Código de respuesta |
| message | string | Detalles |
El servicio de atención al cliente humana cierra la conversación
Cuando se elige webhook como método de acceso al servicio humano, el servicio de atención al cliente humana proporcionado por GPTBots puede cerrar activamente la conversación cuando sea necesario. Tras el cierre, el usuario ya no recibirá mensajes del servicio de atención al cliente, a menos que el usuario inicie de nuevo una conversación de atención al cliente humana.
Método de solicitud
POST
Endpoint
https://api-${endpoint}.gptbots.ai/v1/human/close
Cabecera de la solicitud
| Campo | Tipo | Descripción |
|---|---|---|
| Authorization | Bearer ${API Key} | Se utiliza Authorization: Bearer ${API Key} para la autenticación. La clave de API se obtiene en la página «API Key» (clave de API). |
| Content-Type | application/json | Tipo de contenido; se establece en application/json. |
Parámetros de la solicitud
| Parámetro | Tipo | Descripción |
|---|---|---|
| conversation_id | string | ID de conversación; debe pasarse a GPTBots en la interfaz de respuesta del servicio de atención al cliente |
| timestamp | long | Marca de tiempo |
Respuesta
| Parámetro | Tipo | Descripción | Obligatorio |
|---|---|---|---|
| conversation_id | string | ID de conversación; se pasa en la interfaz de creación de conversación y en la interfaz de chat; basta con retransmitirlo | true |
| timestamp | long | Marca de tiempo | true |
