Zenvia:Envio de SMS utilizando a API Zenvia
Envio de SMS via Zenvia no CRM One
NoO CRM One disponibilizamos mediante a contratação de um serviço adicionalpermite o envio de SMS, em caso de dúvidas sobre a contratação, enviar e-mail para comercial@dwu.com.br
Além da contratação da funcionalidade no CRM One, a sua empresa necessita contratar os serviços da Zenvia.
Pré requisito é o Addon estar na versão CRM One 10 release 2021.09.6.001 ou superior.
Contratação Zenvia
Para acessar as informações de contratação poderá faze-loSMS através do link abaixo:
SMS
* Link válido em 25/11/2021 momento da publicação deste artigo, podendo ter sofrido alterações.
Criar uma conta na Zenvia e assinar um plano.

Com a sua conta criada, acessar o painel de administração

Zenvia – API SMS
Para integração com a Zenvia,Zenvia, foramdisponível seguidasmediante ascontratação orientaçõesadicional.
Pré-requisitos
- Ter uma conta ativa na Zenvia com plano contratado
- CRM One Add-on versão 2021.09.6.001 ou superior
Como contratar Zenvia
Você pode contratar o serviço de SMS diretamente no manual:site https://zenviasms.docs.apiary.io/#reference/servicos-da-api/envio-de-um-unico-smsoficial da Zenvia:


Integração com a API Zenvia
A integração utiliza o formatoendpoint REST de uso da API, desta forma a comunicação ocorre no endereço:REST:
https://api-rest.zenvia.com/services/send-sms
ParaConsulte oa correto funcionamento é importante observar as orientações da📘 documentação Zenvia,oficial quepara incluiverificar asportas, informaçõpermissões sobre liberação de portas e endereçosretornos deda internet.API.
Arquitetura de funcionamentoFuncionamento
NoO CRM One utiliza a tabela @DWU_MSG_SMS
no banco de dados do SAP BusinessB1. OneEla é criado pelo CRM One uma tabela, chamada [@DWU_MSG_SMS], nesta tabela deverãopode ser inseridosalimentada registrosmanualmente correspondentespor asformulário mensagensou de SMS, cada registro representa apenas uma mensagem.
Os registros podem ser inseridos através depor comandos SQL diretamente no banco de dados, ou através de um formulário padrão no SAP Business One, disponível através do menu “Ferramentas > Janelas definidas pelo usuário > DWU_MSG_SMS – CRM One – Mensagem SMS”automáticos.


Atravésdo

Embora, existario, a opção de utilização de um formulário no SAP Business One, a forma mais prática demais utilização da ferramentacomum é aautomatizar criaçãovia defunções comandos de banco de dados, que realizem o processamentoSQL e ausar inserçãonotificações dedo registrosSAP, decomo forma automatizada na tabela [@DWU_MSG_SMS], podendo para tanto o desenvolvimento de uma função e sua chamada através de gatilhos, via [SBO_SP_TransactionNotification] ou [SBO_SP_PostTransactionNotice]SBO_SP_TransactionNotification
.
Tabela [@DWU_MSG_SMS]@DWU_MSG_SMS - Campos Padrão
AConsulte a tabela [@DWU_MSG_SMS]completa possuino amanual relaçãoacima. deAlguns campos a seguir, onde cada campo possui uma característica para funcionamento do sistema.
Nesta tabela poderão ser adicionados campos extras pela empresa usuária do SAP Business One, que podem ser usados para controles internos, porém os campos adicionais serão ignorados pelo serviço de envio de SMS.
Na coluna Aplicação, as opções são:importantes:
“Leitura”U_Destinatario:énúmeroumnocampoformatoqueinternacionaldurante(ex:o processamento do serviço ele será apenas lido pelo serviço seus dados processados e enviados.5511987654321)“LeituraU_TextoSMS:e escrita” é um campo que durante o processamento do serviço poderá ter seus dados lidos, dependendo de na configuração de envio ele ser um campo utilizado e após o envio, dependendo da configuração de retorno poderá ter alguma informação gravada no campomensagem comalgumaté 160 caracteres (sem acento) ou 70 (com acento)- U_Status: 'N' (não enviado) ou 'Y' (enviado)
- U_StatusCode, U_DetailCode: retorno da
API.Zenvia
Exemplo de | |||
Função para inserir registros na tabela de SMS em SQL para SAP HANA
CREATE PROCEDURE CRMONE_ENVIOSMS
(
Filtro INT
-- Ao realizar a chamada para função, passar como parâmetro o número inteiro da última mensagem enviada e armazenada no campo "@DWU_MSG_SMS"."Code"
)
LANGUAGE SQLSCRIPT
AS
BEGIN
DECLARE CONTADOR INTEGER = :Filtro;
-- Declara uma variável para servir como contador
---------------------------------------------------------------------------------------------
-- Declaração de um cursor que receberá e armazena o resultado de uma consulta
DECLARE CURSOR _cursor FOR
SELECT '1' as "IdConfig",
'13' as "ObjType",
'123' as "ObjEntry",
'SMSNF' as "Assunto",
'5511987654321' as "Destinatario",
'Emitida a NF número 123' as "TextoSMS",
'N' as "Status",
CONCAT(CONCAT(CONCAT(CONCAT(CAST(EXTRACT(YEAR FROM NOW()) AS VARCHAR(4)),'-'),CONCAT(CAST(EXTRACT(month FROM NOW()) AS VARCHAR(4)),'-')),RIGHT(CONCAT('0',CAST(EXTRACT(DAY FROM NOW()) AS VARCHAR(4))),2)),'T09:00:00') AS "Obs1",
CAST(NOW() as date) as "DataProg",
'CRM One' as "Remetente",
'false' as "Bool"... FROM "DUMMY"
-- Abre cursor;
FOR _cursorRow AS _cursor
DO
----------------------------------------------------------------------------------------------------------------------------------
-- Insere linhas da tabela
----------------------------------------------------------------------------------------------------------------------------------
CONTADOR = CONTADOR + 1;
INSERT INTO "@DWU_MSG_SMS" (
"Code",
"Name",
"U_IdConfig",
"U_ObjType",
"U_ObjEntry",
"U_Assunto",
"U_Destinatario",
"U_TextoSMS",
"U_Status",
"U_Obs1",
"U_Obs2",
"U_DataProg",
"U_Remetente",
"U_Bool"
...) VALUES (
CONTADOR
,CONTADOR
,_cursorRow."IdConfig"
,_cursorRow."ObjType"
,_cursorRow."ObjEntry"
,_cursorRow."Assunto"
,_cursorRow."Destinatario"
,_cursorRow."TextoSMS"
,_cursorRow."Status"
,_cursorRow."Obs1"
,'NONE'
,_cursorRow."DataProg"
,_cursorRow."Remetente"
,_cursorRow."Bool"
...);
END FOR;
CLOSE _cursor;
END
---------------------------------------------------------------------------------------------------------------------------
Configuração
Acessar no SAP
Business
No One,SAP, menuvá “até:
Módulos > CRM One > Configurações > Serviços > Configuração de envio de
SMS”SMS


NoCampos formulário “Configuração de envio de SMS”, deverão ser realizadas as configurações:principais:
- Usuá
rio: informar o nome de usuáriodisponibilizado/ Senha: fornecidos pela Zenviapara consumo da API Senha: respectiva senha do usuário disponibilizado pela Zenvia para consumo da API- Endereço:
informar o endereço da API para envio de SMS, como por exemplohttps://api-rest.zenvia.com/services/send-sms - Tempo Sinc:
deverá selecionar a frequência que o serviçointervalo deenviosverificaçãodeverá verificar e enviar novos SMS’s, recomendamos(ex: 5minutos ou mais, para casos onde há apenas uma rotina de envios diários sugestão de usar 60 minutos.min) - Limite diá
riorio:detotalenvios: informar um valor inteiro maior que 1, esta informação é obrigatória, pode ser usada para controle de volume de envios evitando surpresas nos custos com envios, caso sejam inseridas para envio mais mensagens que o definido por dia, ao atingir o limitemáximo de mensagensos envios do dia serão interrompidos. - Envio:
NesteJSONcampo deveráa serconfigurado o formato para geração de Json de envio dos SMS’s, a seguir será explicado com detalhes a configuração deste campo.enviado - Retorno:
Neste campo deverá ser configurado o formatoJSON de retornodedaJson com a resposta de envio e resultará na atualização do registro do SMS com o status de processamento, a seguir será explicado com detalhes a configuração deste campo.Zenvia


Apêndice de tabelas com informaçõesTabelas de retorno
As tabelas abaixo representam os retornos da API Zenvia, conforme encontrados no manual disponível em https://zenviasms.docs.apiary.io/# consulta realizada em 25/11/2021.
🔸 statusCode
- 00: Ok
Delivered- 02:
SentCodeDescription- 03:
- 02:
- 06:
00Ok01Scheduled02Sent03Delivered04Not Received05Blocked – No Coverage06Blocked – Black listed - 10:
Error 07- 11:
detailCodeBlockedVerified–Invalid🔸
Number- 000: Message
Expired - 012:
09Blocked10Error11Verified
08Blocked – Content not allowed08 SentBlocked – - 10:
detailCode
Message content overflow | |
Message blocked | |
Authentication error | |