Skip to main content

Boa Tarde a todos

Em um Bot (Menu principal), faço a triagem do cliente. Quando pergunto se ele é cliente ou não…
Se
for cliente e contact.source = wa.gw.msging.net
então
Menu já é cliente - Whats

Se
for cliente e contact.source = 0mn.io
então
Menu já é cliente - Blip

Erro: a variável - contact.source, está vazia…
(mas estava funcionando).

Se alguém puder me ajudar…

Grata

Eliane
Variável

Boa tarde, Eliane

Seria interessante investigar o motivo dessa variável estar vindo vazia, mas de qualquer forma para uma solução rápida, vc pode utilizar o contact.idenitity como alternativa, fazendo uma adaptação no script se for o caso.
O contact.identity contém uma string no formato id-do-usuario@canal, onde canal é exatamente o que vinha no seu contact.source. Você pode usar o includes do javascript pra adaptar seu script, por exemplo:

contact.identity == “wa.gw.msging.net” //false, pois existe o id-do-usuário@ antes do canal
contact.identity.includes(“wa.gw.msging.net”) //true, pois essa sub-string existe na string principal


Boa tarde Eliane, tudo bem?

A variável contact.source realmente não funciona muito bem. Ela é uma solução depreciada. O recomendado é utilizar o contact.identity para identificar o canal do usuário. Você pode utilizar este scprit:

function run(contactIdentity) {
    return getUserChannel(contactIdentity);
}

function getUserChannel(contactIdentity) {
    const DEFAULT_CHANNEL = 'default';
    const CHANNEL_INDEX = 1;

    const CHANNEL_IDENTIFIERS = {
        'wa.gw.msging.net': 'whatsapp',
        '0mn.io': 'blipchat',
        'take.io': 'takeSMS',
        'messenger.gw.msging.net': 'facebook',
        'instagram.gw.msging.net': 'instagram',
        'abs.gw.msging.net': 'teams',
        'businessmessages.gw.msging.net': 'gbm',
        'skype.gw.msging.net': 'skype',
        'telegram.gw.msging.net': 'telegram',
        'workplace.gw.msging.net': 'workplace',
        'mailgun.gw.msging.net': 'email',
        'pagseguro.gw.msging.net': 'pagseguro'
    };

    let contactChannelId = contactIdentity.split('@')[CHANNEL_INDEX];

    return CHANNEL_IDENTIFIERS[contactChannelId] || DEFAULT_CHANNEL;
}

Este script recebe como parâmetro a variável contact.identity e retorna o nome do canal que o usuário está conversando com o bot. Nele está todos os canais que o Blip suporta nativamente.


Bom dia, @raphael.silva e @Victor_Carvalho,

Show meninos…
Inseri o script e funcionou…

Muito obrigada.