Skip to main content

Olá,

 

estamos tentando aplicar o uso do n8n em um builder, e ao final do fluxo dentro do n8n precisamos transferir o usuário para outro chatbot (que é o nosso chatbot de atendimento), mas não estamos conseguindo fazer via API. nos logs ele fala que deu sucesso código 200, mas o usuário não chega ao outro chatbot. Já tentamos quase todos os meios ditos pela comunidade, ter 2 requisições para realizar a transferência mas temos o mesmo resultado.

Queremos fazer isso, mas por meio de API.

 

Olá,

 

estamos tentando aplicar o uso do n8n em um builder, e ao final do fluxo dentro do n8n precisamos transferir o usuário para outro chatbot (que é o nosso chatbot de atendimento), mas não estamos conseguindo fazer via API. nos logs ele fala que deu sucesso código 200, mas o usuário não chega ao outro chatbot. Já tentamos quase todos os meios ditos pela comunidade, ter 2 requisições para realizar a transferência mas temos o mesmo resultado.

Queremos fazer isso, mas por meio de API.

 

Olá ​@Aline D. tudo bem ? 

Essa operação só seria possível se o chatbot setor 2 estivesse dentro do roteador setor 1.

Entendo que receber via requisição http um 200 parece ser algo que indica sucesso, só que o ponto é que ela retorna 200 para qualquer requisição que tenha autenticação valida e json escrito dentro do padrão. Recomendo que para esse situação adicione o chat bot setor 2 no roteador setor 1 e mantenha esse mesmo bot no roteador setor 2 que a operação ira fluir dento do esperado. 


Olá,

 

estamos tentando aplicar o uso do n8n em um builder, e ao final do fluxo dentro do n8n precisamos transferir o usuário para outro chatbot (que é o nosso chatbot de atendimento), mas não estamos conseguindo fazer via API. nos logs ele fala que deu sucesso código 200, mas o usuário não chega ao outro chatbot. Já tentamos quase todos os meios ditos pela comunidade, ter 2 requisições para realizar a transferência mas temos o mesmo resultado.

Queremos fazer isso, mas por meio de API.

 

Olá ​@Aline D. tudo bem ? 

Essa operação só seria possível se o chatbot setor 2 estivesse dentro do roteador setor 1.

Entendo que receber via requisição http um 200 parece ser algo que indica sucesso, só que o ponto é que ela retorna 200 para qualquer requisição que tenha autenticação valida e json escrito dentro do padrão. Recomendo que para esse situação adicione o chat bot setor 2 no roteador setor 1 e mantenha esse mesmo bot no roteador setor 2 que a operação ira fluir dento do esperado. 

Tudo bem sim e você?

Então, eu também tentei fazer isso.

No router do setor 1 eu coloquei nos serviços o chatbot main e  o chatbot atendimento. Mas ainda tem o mesmo resultado.


Olá,

 

estamos tentando aplicar o uso do n8n em um builder, e ao final do fluxo dentro do n8n precisamos transferir o usuário para outro chatbot (que é o nosso chatbot de atendimento), mas não estamos conseguindo fazer via API. nos logs ele fala que deu sucesso código 200, mas o usuário não chega ao outro chatbot. Já tentamos quase todos os meios ditos pela comunidade, ter 2 requisições para realizar a transferência mas temos o mesmo resultado.

Queremos fazer isso, mas por meio de API.

 

Olá ​@Aline D. tudo bem ? 

Essa operação só seria possível se o chatbot setor 2 estivesse dentro do roteador setor 1.

Entendo que receber via requisição http um 200 parece ser algo que indica sucesso, só que o ponto é que ela retorna 200 para qualquer requisição que tenha autenticação valida e json escrito dentro do padrão. Recomendo que para esse situação adicione o chat bot setor 2 no roteador setor 1 e mantenha esse mesmo bot no roteador setor 2 que a operação ira fluir dento do esperado. 

Tudo bem sim e você?

Então, eu também tentei fazer isso.

No router do setor 1 eu coloquei nos serviços o chatbot main e  o chatbot atendimento. Mas ainda tem o mesmo resultado.

@Aline D. tudo bem ? 

 

Poderia enviar o body de como você fez ? pois tem que executar duas requisições http : https://community.blip.ai/automacao%2De%2Dprocessos%2Dvia%2Dapi%2D141/como%2Ddesignar%2Dum%2Dcontato%2Dpara%2Dum%2Dponto%2Despecifico%2Ddo%2Dfluxo%2Ddo%2Dbot%2D3336

Lembrando que tem que usar a chave do bot router para que isso funcione e o contexto do router esteja habilitado em todos os bots builder.

 


Boa tarde,

 

Então estamos usando o router como key das requisições e tentamos dois fluxos pra tentar fazer funcionar: 

Esse é o que segue o que você orientou.

1) msg1 — POST /messages 

 

{ "id": "{{$execution.id}}", "to": "{{ $('Webhook').item.json.body.metadatad'#tunnel.originator'] }}", "type": "text/plain", "content": "Estamos transferindo seu atendimento…" }

2) Master — POST /commands (Master-State)

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.from || $('Webhook').item.json.headerst'lime-from'] }}/Master-State", "type": "text/plain", "resource": "[email protected]" }

3) Redirecionar — POST /commands (Change User State)

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.from || $('Webhook').item.json.headers)'lime-from'] }}/stateid@xxxxx_atendimento", "type": "text/plain", "resource": "xxxx-xx-xx-xx-xxxxxx" }

 

E dessa forma tambem testamos:

1) msg2 — POST /messages 

 

{ "id": "{{$execution.id}}", "to": "{{ $('Webhook').item.json.body.metadata.'#tunnel.originator'] }}", "type": "text/plain", "content": "Estamos transferindo seu atendimento…" }

2) clean_state — POST /commands (DELETE state) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "delete", "uri": "/contexts/{{ $('Webhook').item.json.body.metadatah'#tunnel.originator'] }}/stateid@xxxx_atendimento" }

3) set_owner — POST /commands (Master-State) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.metadata''#tunnel.originator'] }}/master-state", "type": "text/plain", "resource": "[email protected]" }

4) goto_block — POST /commands (Change User State) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.metadata{'#tunnel.originator'] }}/stateid@atendimento", "type": "text/plain", "resource": "xxxx-xx-xx-xx-xxxx" }

Caso não tenha ficado claro é só me avisar. Agradeço a atenção.


Boa tarde,

 

Então estamos usando o router como key das requisições e tentamos dois fluxos pra tentar fazer funcionar: 

Esse é o que segue o que você orientou.

1) msg1 — POST /messages 

 

{ "id": "{{$execution.id}}", "to": "{{ $('Webhook').item.json.body.metadatad'#tunnel.originator'] }}", "type": "text/plain", "content": "Estamos transferindo seu atendimento…" }

2) Master — POST /commands (Master-State)

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.from || $('Webhook').item.json.headerst'lime-from'] }}/Master-State", "type": "text/plain", "resource": "[email protected]" }

3) Redirecionar — POST /commands (Change User State)

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.from || $('Webhook').item.json.headers)'lime-from'] }}/stateid@xxxxx_atendimento", "type": "text/plain", "resource": "xxxx-xx-xx-xx-xxxxxx" }

 

E dessa forma tambem testamos:

1) msg2 — POST /messages 

 

{ "id": "{{$execution.id}}", "to": "{{ $('Webhook').item.json.body.metadata.'#tunnel.originator'] }}", "type": "text/plain", "content": "Estamos transferindo seu atendimento…" }

2) clean_state — POST /commands (DELETE state) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "delete", "uri": "/contexts/{{ $('Webhook').item.json.body.metadatah'#tunnel.originator'] }}/stateid@xxxx_atendimento" }

3) set_owner — POST /commands (Master-State) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.metadata''#tunnel.originator'] }}/master-state", "type": "text/plain", "resource": "[email protected]" }

4) goto_block — POST /commands (Change User State) 

 

{ "id": "{{$execution.id}}", "to": "[email protected]", "method": "set", "uri": "/contexts/{{ $('Webhook').item.json.body.metadata{'#tunnel.originator'] }}/stateid@atendimento", "type": "text/plain", "resource": "xxxx-xx-xx-xx-xxxx" }

Caso não tenha ficado claro é só me avisar. Agradeço a atenção.

@Aline D. o change user state está errado. 

 

olha : 

{

"id": "{{$guid}}",

"to": "[email protected]",

"method": "set",

"uri": "/contexts/{{contact.identity}}/stateid@{{flow-identifier}}",

"type": "text/plain",

"resource": "{{state-id}}"

}

aqui fia o flow-identifier : 

lembre sempre de fazer as requisições de redireiconamento com a chave do bot router e usando o id do contato direto exemplo : [email protected] 


Sim, tentamos tanto com o stateid do fluxo quanto com o nome do serviço vinculado no router.

Esse é um exemplo do output do body devidamente preenchido:

E aqui o output da requisição: 

p
  {
    "method": "set",
    "status": "success",
    "id": "16900",
    "from": "[email protected]/#msging-application-builder-99b57fbbc-tfz6b",
    "to": "[email protected]/!msging-server-84dc8d7b7-84tbg-6y7qk83u",
    "metadata": {
      "traceparent": "00-6de5177e2e062ced442793f2d8a93204-b66b7d01e20ba0d5-01",
      "#command.uri": "lime://[email protected]/contexts/[email protected]/stateid@xxxxxx-xxx-xxxx-xxxxx-xxxxxxxx"
    }
  }
]


Sim, tentamos tanto com o stateid do fluxo quanto com o nome do serviço vinculado no router.

Esse é um exemplo do output do body devidamente preenchido:

E aqui o output da requisição: 

>
  {
    "method": "set",
    "status": "success",
    "id": "16900",
    "from": "[email protected]/#msging-application-builder-99b57fbbc-tfz6b",
    "to": "[email protected]/!msging-server-84dc8d7b7-84tbg-6y7qk83u",
    "metadata": {
      "traceparent": "00-6de5177e2e062ced442793f2d8a93204-b66b7d01e20ba0d5-01",
      "#command.uri": "lime://[email protected]/contexts/[email protected]/stateid@xxxxxx-xxx-xxxx-xxxxx-xxxxxxxx"
    }
  }
]

@Aline D.  certo ai após vc fazer esse redirecionamento envie mais um input para o bot e veja se esta no bloco a frente do qual vc redirecionou. lembre que ao  redireciona para um bloco vc cai no ponto de responder o bot e o q vc responder serve como input e vai te avançar de acordo com as condições de saida do bloco que vc foi redirecionada. 


Bom dia,

Certo, vamos tentar aqui. Tenho mais uma duvida, conseguimos simular o input do usuário? pra que ele não precise mandar nada no bloco?

estamos tentando fazer o input “fantasma” dessa forma:
{
  "id": "{{$execution.id}}",
  "to": "{{ $('Webhook').item.json.body.metadata.'#tunnel.originator'] }}",
  "type": "application/vnd.lime.redirect+json",
  "content": {
    "address": "atendimento_hmg",
    "context": {
      "type": "text/plain",
      "value": "Service Desk"
    }
  }
}


Caso quisemos fazer o processo de transferência pro inicio do outro chatbot sem definir id do bloco especifico de inicio e com um input pré definido de forma padrão (ex:SD) saberia informar o passo a passo? 


Bom dia,

Certo, vamos tentar aqui. Tenho mais uma duvida, conseguimos simular o input do usuário? pra que ele não precise mandar nada no bloco?

estamos tentando fazer o input “fantasma” dessa forma:
{
  "id": "{{$execution.id}}",
  "to": "{{ $('Webhook').item.json.body.metadata.'#tunnel.originator'] }}",
  "type": "application/vnd.lime.redirect+json",
  "content": {
    "address": "atendimento_hmg",
    "context": {
      "type": "text/plain",
      "value": "Service Desk"
    }
  }
}

Olá ​@Aline D. tudo bem? 

Essa requisição funciona e é otima pra isso, mas ela tem que ser feita da seguinte forma. 

a url é a : https://{{contract.id}}.http.msging.net/messages

a chave de autorização é do bot builder principal que está atrelado ao router.

o usuário tem que ser o tunel que está registrado no bot builder principal não é fácil ter isso do contato caso faça via api, pois teria que ficar dando get nos contatos e procurar a informação lá. 

{

    "id": "2",

    "to": "[email protected]",

    "type": "application/vnd.lime.redirect+json",

    "content": {

        "address": "[email protected]",

        "context": {

            "type": "text/plain",

            "value": "oi"

        }

    }

}

 


Caso quisemos fazer o processo de transferência pro inicio do outro chatbot sem definir id do bloco especifico de inicio e com um input pré definido de forma padrão (ex:SD) saberia informar o passo a passo? 

@Aline D. para isso passe no id do bloco a palavra welcome ou onboarding que ele vai tratar o id como o inicio do bot.


Comente