Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Cuando una conversación está activa, los eventos y los mensajes del representante del servicio de atención al cliente se envían al punto de conexión de webhook configurado. El webhook es necesario para recibir actualizaciones en tiempo real en el canal de mensajería personalizado.
El servicio se reintenta tres veces, con un tiempo de espera de 10 segundos en cada intento.
Punto final
{webhook_url}/v3/conversations/{conversationId}/activities
Where
- es la dirección URL base que configuró en el canal personalizado.
- con el GUID de la conversación activa.
Método
POST
Encabezados de solicitud
| Header | Description |
|---|---|
| Authorization | Token de portador de autorización obtenido de la aplicación Microsoft Entra registrada. |
Nota:
Asegúrese de configurar las credenciales de identidad federada para que este encabezado esté habilitado.
Directiva de reintentos
- El servicio de webhook reintenta hasta tres veces.
- Cada reintento permite un tiempo de espera de 10 segundos.
- Después de tres intentos fallidos, no se realizan más reintentos.
Solicitar carga útil
Las cargas siguen el esquema de actividad de Bot Framework. La estructura incluye contenido del mensaje, tipo de actividad, detalles del remitente y datos adjuntos opcionales.
Campos del cuerpo de la solicitud
| Clave de nivel 1 | Clave de nivel 2 | Clave de nivel 3 | Description | Tipo |
|---|---|---|---|---|
| type | Tipo de actividad (mensaje, evento, escritura) | string (máximo 256) | ||
| channelId | Identificador del canal (por ejemplo, "MessagingApi") | string (máximo 256) | ||
| desde | Objeto emisor | objeto | ||
| id | Id. de remitente | string (máximo 256) | ||
| nombre | Nombre para mostrar de emisor | string (máximo 256) | ||
| conversación | id | Id. de la conversación | string (máximo 256) | |
| textFormat | Formato del texto del mensaje (Markdown) | string (máximo 256) | ||
| datos adjuntos | [ ] | Lista de datos adjuntos (si los hay) | array | |
| tipo de contenido | Tipo MIME de los datos adjuntos | string (máximo 256) | ||
| URL de contenido | Dirección URL del archivo | cuerda / cadena | ||
| contenido | Normalmente null | — | ||
| nombre | Nombre del archivo | string (máximo 256) | ||
| URL de miniatura | Normalmente null | — |
Tipos de actividad admitidos
| Tipo | Description |
|---|---|
| Mensaje | Texto estándar o mensaje enriquecido |
| escritura | Indica que el agente o representante del servicio al cliente (representante de servicio o representante) está escribiendo |
| evento | Eventos de nivel de sistema como join/close |
Nombres de actividad de eventos
Los siguientes valores se envían en el campo nombre de las actividades de eventos:
- AgentAccepted
- AgenteFinalizarSesión
- PrimaryAgentEndConversation
- AgenteDesconectado
- AgentStartSecondaryChannel
- AgentRaiseSecondaryChannel
- AgentEndSecondaryChannel
- Cerrar conversación
- SupervisorForceClosedConversation
- ConsultAgentInitiated
- ConsultAgentFailed
- ConsultAgentAcceptSession
- ConsultAgentEndSession
- ConsultAgentRejectSession
- ConsultAgentSessionTimedOut
- AgenteDeConsultaEliminado
- TransferToAgentInitiated
- TransferToAgentFailed
- TransferAgentAcceptSession
- TransferAgentRejectSession
- TransferAgentTimedOutSession
- AgentEndedConsult
- ElAgenteSeUnióALaConversaciónConElCliente
- ConsultAgentLeftPublicConversation
- TransferToQueueInitiated
- TransferToQueueFailed
- CustomerDisconnected
- CustomerDisconnectedAgentWaiting
- AgenteAsignado
- OutOfOperatingHoursDueToNonWorkingHours
- FueraDeHorarioDeOperaciónPorVacaciones
Cargas de ejemplo
Las cargas de ejemplo representan diferentes tipos de actividades en tiempo real, como mensajes, indicadores de escritura, eventos del agente y datos adjuntos que la aplicación envía al webhook durante una conversación activa.
Agente/Representante aceptado
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_AgentAccepted_**",
"name": "AgentAccepted"
}
Escritura de agente o representante
{
"type": "typing",
"channelId": "MessagingApi",
"conversation": {
"id": "{conversation_id}"
},
"recipient": {
"id": "{recipient_id}"
}
}
Mensaje de agente o representante
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}",
"name": "{sender_name}"
},
"conversation": {
"id": "{conversation_id}"
},
"textFormat": "markdown",
"text": "hello"
}
Agente/Representante envía adjunto
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}",
"name": "{sender_name}"
},
"conversation": {
"id": "{conversation_id}"
},
"textFormat": "markdown",
"attachments": [
{
"contentType": "image/jpeg",
"contentUrl": "{attachment_url}",
"content": null,
"name": "issue (1).jpg",
"thumbnailUrl": null
}
]
}
Agente o representante cerrado
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}"
},
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_AgentClosed_**",
"name": "AgentClosed"
}
Conversación cerrada
{
"type": "message",
"channelId": "<custom channel Id GUID>",
"from": {
"id": "{sender_id}"
},
"conversation": {
"id": "{conversation_id}"
},
"text": "EventName: **_ConversationClosed_**",
"name": "ConversationClosed"
}
Respuesta
Código HTTP 200. Se omiten los datos publicados en el cuerpo de la solicitud.
Información relacionada
Introducción a las API de mensajería