Como usar Apps no Dashboard?
Aplicativos de Dashboard no FalAIChat
Os aplicativos de dashboard permitem que você integre um app diretamente no dashboard do FalAIChat para uso dos agentes.
Com esse recurso, é possível criar um aplicativo de forma independente e incorporá-lo para fornecer informações dos
clientes, como pedidos, histórico de pagamentos, etc.
Quando incorporado ao dashboard do FalAIChat, o seu aplicativo receberá o contexto da conversa e do contato como um
evento de janela. Para isso, implemente um listener na sua página para o evento de mensagem e receba o contexto.
📢 P.S.: Veja nosso vídeo ao vivo no YouTube sobre como criar um App de Dashboard.
Como criar um aplicativo para o dashboard?
Passo 1:
Vá para Configurações → Integrações → Apps de Dashboard. Clique no botão "Configurar" correspondente aos Apps de
Dashboard.
Passo 2:
Adicione o nome do seu aplicativo e a URL onde ele está hospedado.
Depois de concluído, uma nova aba com o nome escolhido aparecerá na janela de conversa. Neste exemplo, a aba se chamará
"Pedidos do Cliente".
Ao clicar na nova aba, você verá seu aplicativo puxando dados diretamente no dashboard do FalAIChat.
Recebendo dados do FalAIChat no seu app
O FalAIChat enviará o contexto da conversa e do contato como um evento de janela. Para acessá-lo, implemente um listener
de evento em seu app, como mostrado abaixo:
javascriptCopyEditwindow.addEventListener("message", function (event) {
if (!isJSONValid(event.data)) {
return;
}
const eventData = JSON.parse(event.data);
});
Solicitação de dados sob demanda no FalAIChat
Caso seja necessário solicitar dados da conversa sob demanda, você pode enviar uma mensagem para a janela principal
usando a API postMessage do JavaScript.
O FalAIChat ficará atento a essa chave:
falaiChat-dashboard-app:fetch-info.
Exemplo:
O código a seguir pode ser usado para consultar o app do dashboard. O FalAIChat responderá fornecendo os dados
atualizados da conversa.
javascriptCopyEditwindow.parent.postMessage('falaiChat-dashboard-app:fetch-info', '*');
Você receberá uma mensagem no listener com os dados do contexto do aplicativo.
Carga útil do evento
jsonCopyEdit{
"conversation": {
"meta": {
"sender": {
"additional_attributes": {
"description": "string",
"company_name": "string",
"social_profiles": {
"github": "string",
"twitter": "string",
"facebook": "string",
"linkedin": "string"
}
},
"availability_status": "string",
"email": "string",
"id": "integer",
"name": "string",
"phone_number": "string",
"identifier": "string",
"thumbnail": "string",
"custom_attributes": "object",
"last_activity_at": "integer"
},
"channel": "string",
"assignee": {
"id": "integer",
"account_id": "integer",
"availability_status": "string",
"auto_offline": "boolean",
"confirmed": "boolean",
"email": "string",
"available_name": "string",
"name": "string",
"role": "string",
"thumbnail": "string"
},
"hmac_verified": "boolean"
},
"id": "integer",
"messages": [
{
"id": "integer",
"content": "Hello",
"inbox_id": "integer",
"conversation_id": "integer",
"message_type": "integer",
"content_type": "string",
"content_attributes": {},
"created_at": "integer",
"private": "boolean",
"source_id": "string",
"sender": {
"additional_attributes": {
"description": "string",
"company_name": "string",
"social_profiles": {
"github": "string",
"twitter": "string",
"facebook": "string",
"linkedin": "string"
}
},
"custom_attributes": "object",
"email": "string",
"id": "integer",
"identifier": "string",
"name": "string",
"phone_number": "string",
"thumbnail": "string",
"type": "string"
}
}
],
"account_id": "integer",
"additional_attributes": {
"browser": {
"device_name": "string",
"browser_name": "string",
"platform_name": "string",
"browser_version": "string",
"platform_version": "string"
},
"referer": "string",
"initiated_at": {
"timestamp": "string"
}
},
"agent_last_seen_at": "integer",
"assignee_last_seen_at": "integer",
"can_reply": "boolean",
"contact_last_seen_at": "integer",
"custom_attributes": "object",
"inbox_id": "integer",
"labels": "array",
"muted": "boolean",
"snoozed_until": null,
"status": "string",
"timestamp": "integer",
"unread_count": "integer",
"allMessagesLoaded": "boolean",
"dataFetched": "boolean"
}
}