O OTOBO é o novo sistema de atendimento baseado no OTRS, tem se apresentando uma solução prática e estável.
Vou mostrar aqui como fazer uma integração com API de WhatsApp para enviar notificações, sem desenvolvimento e sem necessidade de AddOns. 🙂
Vamos em frente.
Nesse caso vamos usar a API do Winzap é um API não oficial que vem funcionando bem com a gente.
Como funciona o Winzap ?
Você pode cadastrar no link abaixo.
https://winzap.com.br/usuarios/login/
Faz a assinatura e vai receber um token para enviar mensagens.
Veja a documentação aqui.
https://winzap.com.br/docs/envio/
Crie um web service como abaixo.
Use um invoker.
Generic::PassThrough
No XLTS
<?xml version=”1.0″ encoding=”UTF-8″?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
<xsl:template match=”RootElement”>
<xsl:copy>
<cmd>chat</cmd>
<to>TEFEFONE@c.us</to>
<token>TOKEN_WINZAP</token>
<msg>
Assunto : <xsl:value-of select=”//OldTicketData/Title” />
Proposta : <xsl:value-of select=”//OldTicketData/TicketID” />
https://crm.serviceup.com.br/otobo/index.pl?Action=AgentTicketZoom;TicketID=<xsl:value-of select=”//OldTicketData/TicketID” />
</msg>
</xsl:copy>
</xsl:template>
<xsl:template match=”content” />
</xsl:stylesheet>
No REST use as configurações abaixo.
Com isso ao criar um chamado ou adicionar uma nota ele vai enviar uma notificação via Whatsapp
Vou enviar a fonte do Web Service para facilitar pra vocês.
—
Debugger:
DebugThreshold: debug
TestMode: ‘0’
Description: ”
FrameworkVersion: 10.0.9
Provider:
Transport:
Type: ”
RemoteSystem: ”
Requester:
Invoker:
Alert:
Description: ”
Events:
– Asynchronous: ‘1’
Event: ArticleCreate
MappingOutbound:
Config:
DataInclude: []
PostRegExFilter: ~
PostRegExValueCounter: ~
PreRegExFilter: ~
PreRegExValueCounter: ~
Template: “<?xml version=\”1.0\” encoding=\”UTF-8\”?>\r\n<xsl:stylesheet
version=\”1.0\” xmlns:xsl=\”http://www.w3.org/1999/XSL/Transform\”>\r\n
\ <xsl:template match=\”RootElement\”>\r\n <xsl:copy>\r\n <cmd>chat</cmd>\r\n
\ <to>TELEFONE@c.us</to>\r\n <token>TOKEN</token>\r\n
\ <msg>\r\nAssunto : <xsl:value-of select=\”//OldTicketData/Title\”
/>\r\nProposta : <xsl:value-of select=\”//OldTicketData/TicketID\” />\r\nhttps://crm.serviceup.com.br/otobo/index.pl?Action=AgentTicketZoom;TicketID=<xsl:value-of
select=\”//OldTicketData/TicketID\” />\r\n </msg>\r\n </xsl:copy>\r\n
\ </xsl:template>\r\n <xsl:template match=\”content\” />\r\n</xsl:stylesheet>”
Type: XSLT
Type: Generic::PassThrough
Transport:
Config:
DefaultCommand: GET
Host: https://api.winzap.com.br
InvokerControllerMapping:
Alert:
Command: GET
Controller: /send/?token=:token&msg=:msg&cmd=:cmd&to=:to
Timeout: ’30’
Type: HTTP::REST
Esse mesmo conceito você pode usar para integração com Twillio, utalk ou qualquer outro serviço que aceite um POST ou GET com JSON para alguma ação.
Espero que a dica de hoje seja útil