nesse canal eu falo sobre automações sobre inteligência artificial e sobre negócios eu falo sobre isso porque eu acredito que se você dominar essas três habilidades se você se tornar uma pessoa competente em aprender a conectá-las você vai estar apto a se posicionar numa das maiores oportunidades profissionais que eu vejo hoje tá bom que vai ser se tornar aquele profissional que vai ser capaz de oferecer transformação tecnológica para empresas Ou aquele profissional que vai ser capaz de criar produtos né E aí você consegue vender esses produtos para empresas Ou para as pessoas mesmo essa aqui que
é a ideia Tá e é por isso que eu tô publicando cada vez mais vídeos aqui no meu canal eu quero ten uma meta pessoal de publicar pelo menos um vídeo por dia pelo menos no próximo mês na semana passada Já comecei funcionou deu certo e eu quero que você e se junte a mim nessa jornada e se qualifique cada vez mais para poder entrar dentro desse mercado tá bom essa que é a ideia com esse canal aqui dito isso no vídeo de hoje eu resolvi trazer uma aula técnica de como que você consegue pegar
uma resposta do seu assistant da Open e fracionar essa resposta em pequenas respostas em pequenas partes dessa mesma resposta por que que isso é legal porque quando você tá trabalhando por exemplo com assistent conectado ao WhatsApp e ele tá atendendo uma pessoa a gente consegue simular como se fosse uma resposta de uma pessoa P mesmo né quando a gente envia uma resposta para um usuário a gente envia geralmente pequenas pequenas partes daquela resposta né pequenos pedaços de textos e eu nesse vídeo eu vou te ensinar como que você faz isso tá bom último aviso é
que é o seguinte esse vídeo aqui que eu vou te mostrar foi uma aula que eu dei lá dentro da e Builders a minha comunidade junto com André onde eu ensino pessoas a saírem do zero né as entrarem nesse mundo dominarem todas as habilidades necessárias para que elas entrem nesse mudo e possam se tornar esses profissionais essa aqui é a ideia se você tiver mais interessado sobre a comunidade eu vou deixar o link aqui embaixo para você conhecer um pouquinho mais e eu espero que você aproveite essa aula tá bom se você gostou deixa aquele
like se inscreve no canal e deixa um comentário aqui embaixo para que eu saiba um pouquinho mais sobre seu feedback beleza Aproveita a aula fala pessoal tudo bem Ó nesse vídeo aqui eu vou ensinar vocês a como vocês podem criar esse tipo de experiência aqui no bote de vocês tá bom onde o seu bote a sua inteligência artificial vai ser capaz de enviar mensagem de uma forma fracionada ele vai conseguir quebrar os seus textos tá de uma forma que emite um pouquinho mais eh um ser humano enviando uma mensagem né um ser humano geralmente ele
não envia uma mensagem completona assim a gente vai viando pequenos pedaços da nossa mensagem que fazem sentido dentro daquele raciocínio tá então a gente vai enviar esse tipo de mensagem aqui do jeito que vocês estão vendo nesse print beleza chega de falação Vamos colocar a mão na massa Ok ó a gente vai construir esse fluxo aqui tá bom a gente vai construir esse fluxo aqui na nossa automação porém antes eu quero passar com vocês né dentro dessa etapa aqui que é uma etapa que a maioria das pessoas fariam naturalmente mas eu vou mostrar porque não
fazer Tá bom então o que que acontece deixa eu testar aqui ó vou dar um vou tá beleza e eu vou testar esse step aqui também para mostrar para vocês que que eu tô fazendo aqui Tá eu tô simulando que o o meu assistant do openi enviou uma mensagem para mim tá essa mensagem aqui ó Olá novamente Felipe fico feliz é um texto genérico aqui que eu criei beleza como é que a gente normalmente Faria aqui tá como é que a gente normalmente faria a gente pegaria essa string aqui mensagem Nós quebramos essa string em
substrings em ped de tex ou seja transformar ela em um Array uma lista que contém pequenos pedaços de textos Ok como é que a gente faz isso geralmente a gente faz isso utilizando esse módulo chamado split né que é uma função pronta que o n8n oferece pra gente então a gente vai dar um ponto e colocar split tá dentro do split da função split ele pede sempre pra gente qual é o separador que a gente quer utilizar para fazer as quebras Então a gente vai colocar por exemplo aqui sempre a né geralmente a gente coloca
pontuação então por exemplo vou colocar uma exclamação aqui ou seja toda vez que tiver uma exclamação né ele vai quebrar e transformar em uma uma nova string então geralmente é a forma tradicional que a gente faz então eu vou dar um vou aumentar aqui PR você ver ó se eu usar a exclamação como separador que que vai acontecer vai ficar Olá novamente Felipe aqui tem uma exclamação então ele quebrou tá ele quebrou e criou um outro item aqui ó fico feliz em ver sua mensagem quebrou de novo vamos continuar nossa conversa sobre o seu negócio
tá tá tá então isso aqui funciona funciona só que qual quais são os problemas com isso né primeiro se você quiser agora que ele quebre por exemplo com uma interrogação você vai ter que adicionar aqui também uma outra uma um outro separador né que é uma interrogação se você quiser que ele cobre com um ponto final você vai ter que também adicionar aqui ou seja você sempre vai precisar ficar adicionando os separadores aqui e se você não tiver um separador que ele não tiver mapeado aqui dentro ele não vai quebrar o seu texto Então vai
ficar de uma forma que talvez não seja ideal pro seu usuário final beleza Esse é o primeiro problema o segundo problema é que eh ele remove ele remove O separador do seu texto então por exemplo aqui deveria ter um ponto de exclamação né e ele removeu porque ele tá utilizando isso como separador Então tá vendo que ele não preservou isso é muito ruim pra leitura então ficou sem pontuação aqui ó Olá novamente Felipe e tá sem a pontuação entendeu é uma coisa uma experiência que não é muito legal e o terceiro ponto é que se
por exemplo você for enviar uma url e nessa URL tiver ponto final que obviamente vai ter você vai quebrar seu RL também então você vai perder a formatação dela e não é uma coisa legal pro seu usuário né então você vai teria que fazer um tratamento específico para aquela URL então só complica a nossa vida Tá bom então a gente não vai fazer dessa forma a gente vai fazer utilizando o nosso próprio assistent que é a forma mais fácil de fazer que eu já que eu já encontrei muito tranquilo de ser implementado e vocês vão
entender porque senão a gente vai tratar alguns nozinhos que a gente que vocês já conhecem para fazer isso tá então como é que é o primeiro passo eu vou testar esse workflow Enquanto isso vou deixar rodando aqui tá mas eu vou vir aqui no meu assistente tá então esse aqui o assistente que eu tô utilizando lá naquela automação que eu tô mostrando para vocês que é o Bot de agendamento que a gente vai ensinar na cer ação Beleza então ó com Rad tá até aqui o nome que que acontece a primeira etapa que a gente
precisa fazer é configurar o formato da nossa resposta e o formato padrão do Assistente ele vem a resposta em uma única string então a resposta vai vir em um testão gigante que a gente tá acostumado a lidar com esse testão a gente envia pro nosso usuário final quando eu venho aqui e eu ativo essa opção que eu quero a minha resposta seja um Jon Object que que eu tô falando pro pro meu assistente que eu quero que ele formate aquela resposta em um Jon Ok E aí ele pede pra gente aqui ó você precisa especificar
exatamente o formato de Jon que você quer tá bom então ele fala isso faça essa especificação dentro da instrução então o que que a gente vai fazer vai vir aqui na instrução nós vamos especificar o nosso padrão de resposta então eu coloquei esse texto aqui que é o jeito de especificar que eu criei que para mim é necessário Então você sempre vai colocar a forma que vai funcionar para você e você inclusive não precisa necessariamente utilizar só para quebrar as mensagens aqui você pode utilizar de outras formas também é um Jon Então usa imaginação você
pode utilizar para dentro do seu sistema aí OK então o que que eu fiz aqui ó todas as respostas que você enviar ao usuário precisa estar formatada em um Array de Strings onde cada string seja uma parte dessa resposta seja transforma sua resposta em uma lista com pequenos pedacinhos né a deque cada uma das Strings para que seja legível ao usuário busque utilizar as pontuações como separador eu coloquei dessa forma aí eu coloquei um exemplo aqui do output que eu espero então eu espero esse output aqui ó é um Jon onde eu tenho uma chave
mensagem e essa chave ela representa um Array tá e dentro desse Array eu tenho aqui os pedacinhos da string então Eh se você não domina esses termos Fica tranquilo só só copia isso daqui que ao longo do tempo tempo você vai entender tá bom mas isso aqui tem a ver com estruturação de dados então por exemplo vai vir um um Jon messages e aqui vai vir a primeira parte da resposta a segunda parte a terceira parte da resposta ok é dessa forma vou copiar esse textinho e deixar aqui embaixo do Circle para que você possa
copiar e inserir aí dentro do seu eh assistente Ok Além disso o que que acontece todo se você rodar isso daqui sem que esteja esteja escrito Jon na instrução eh vai dar erro o o assistent devolve um erro para você falando ó precisa ter a palavra Jon dentro da sua instrução Então você precisa colocar em algum lugar tá bom eu coloquei aqui a primeira vez um Jon mas aqui como que tá escrito Talvez isso aqui já seja eh suficiente tá então de qualquer forma eu copiei isso aqui e insere aí dentro do seu assistente só
fazer essa alteração já vai ser já vai ser suficiente aqui na parte do nosso assistente Ok vamos então agora pra nossa automação em si o que que acontece tá vamos lá vamos para aquele nó que você pega a última mensagem da sua trade e depois geralmente a gente já Envia essa mensagem né então a gente vai fazer alguns passos aqui depois disso então na hora de pegar essa última mensagem você vai ver que a mensagem ela veio formatada de forma diferente olha aqui ó tá vendo aqui ó Geralmente vem no value né E aqui ao
invés de vir só o texto veio dessa forma do jeitinho que eu pedi lá então ele veio um objeto Jon do tipo e com uma chave chamado messages e veio um Array aqui um Array zinho com pedacinhos da nossa mensagem então Olá Felipe parece que você está preso no Olá porque eu fiz um monte de teste né e está tudo bem Estamos aqui para qualquer coisa que seja interessante quando você sentir pronto para continuar P pá pá ele vai construindo essas mensagens então ele construiu uma mensagem aqui uma segunda aqui uma terceira uma quarta e
uma quinta e mensagem tá bom perfeito exatamente isso que eu queria Então agora a gente precisa tratar esses dados para que no final do dia a gente consiga enviar uma de cada vez pro nosso usuário para que ele consiga ler uma de cada vez Ok como é que a gente vai fazer isso primeira coisa que eu tô fazendo aqui é formatar isso daqui tá bom em um objeto porque que que acontece tá vendo que aqui ó a gente sabe que ele veio formatado como Jon só que o n8n Ele não reconheceu dessa forma Ele acha
que isso aqui é um texto Ele acha que é um texto normal por quê Por que que você sabe disso Felipe porque eu não consigo acessar aqui ó por exemplo eu queria só as messages né eu não consigo acessar né se fosse um Jon mesmo teria um outro item aqui embaixo escrito messages que seria uma lista e aqui cada um dos itens Então como eu não consigo acessar quer dizer que ele tá com string e eu preciso transformar ele em um objeto Tá bom então eu tô fazendo essa primeira etapa aqui ou seja eu tô
criando uma nova variável chamado return né retorno sei lá você pode criar o nome que você quiser e eu tô especificando esse valor aqui então tô passando para cá assim ó cara transforma esse essa esse conteúdo em um objeto cujo nome é return ó ele fez exatamente isso daqui no lado ó então ele criou essa variável return que é um objeto e aqui eu consigo acessar já ó messages ele já capturou ele entendeu que isso aqui é um objeto e que é um Array entendeu ele já entendeu isso é exatamente isso que eu precisava fazer
agora eu já poderia vir aqui fazer um split e ir lá pro loop que eu já vou mostrar como é que funciona porém porém o que acontece quando eu tava testando eh uma das vezes que eu testei com um outro modelo aqui na hora de vir a resposta ele não veio com o nome messages aqui ele veio como answer ele eh ele viajou na maionese né ele trouxe mal formatado para mim pelo menos com o nome dessa variável veio errado e isso causa um problema pra gente por quê Porque na hora de você fazer um
split você sempre precisa passar exatamente eh o item que você quer fazer um split tá E você vai passar o nome desse item onde que ele tá localizado dentro do seu Jon aqui do n8n e se você não tem um nome exato o n8n vai se confundir ele não vai saber exatamente qual que é o dado que você quer capturar para fazer split então a gente precisa tratar isso aqui de forma dinâmica como é que a gente faz isso a gente vai fazer uma etapa anterior aqui onde nós vamos capturar o nome dessa chave que
o nosso assistente tá enviando pra gente então por exemplo aqui ó o que que eu tô fazendo eu tô criando uma nova variável chamado kein que é chave né em inglês ela é do tipo texto ele é um string e aqui ó como é que isso aqui funciona tá deixa eu mostrar para vocês como é que vocês capturam isso tá então o que que acontece tô pegando de forma dinâmica aqui né agora eu tô acessando O Jone inteiro eu vou dar um ponto e eu quero acessar o return Ok então return Vou colocar aqui ó
vai apareceu para mim então se eu acesso o return ele vai me trazer tudo o objeto inteiro não é isso que eu quero eu quero só as chaves Ok então o que que eu faço aqui ó ele sugeriu para mim ó que values eh se tá vazio se tem Campos a gente vai trazer só as k só a chave beleza Tá vendo que ele traz uma lista de Chaves por quê Porque se tivesse mais Chaves aqui ele traria aqui dentro né então se tivesse outros itens aqui dentro desse Jon ele traria para mim não é
o caso e ele trouxe só um item mas ainda assim é uma lista então a gente pensa fazer agora pegar sempre o primeiro item dessa lista Então vou colocar aqui ó pegar o zero tá bom Não se preocupa você não precisa saber exatamente como fazer isso eu vou copiar esse código deixar aqui embaixo também mas eu tô explicando para você entender o conceito tá então o que que eu tô fazendo aqui eu tô capturando a primeira tá por isso que tá zero aqui a primeira chave que do return dentro do meu Jon entendeu da direita
pra esquerda fica mais mais claro né E aí o que que ele tá mostrando para mim que ó a chave capturada é messages é um texto chamado message perfeito eraa exatamente isso que eu queria agora sim eu consigo fazer um split com exatidão tá que que eu tô fazendo assim falando aqui para n8n n8n faça um Split para mim e do messages ó se eu fizer assim vai dar errado porque tá indo de forma estática o que que eu preciso aqui ó faça um Split para mim do return só que eu quero que você faça
o seguinte aqui você sempre vai colocar e o Jon k assim ó beleza olha aqui ó olha o resultado final ó return P message Beleza mas se eu mudasse aqui lá por exemplo para answer ele colocaria return pans ou seja o meu n8n sempre saberia se localizar no meu Jon para poder acessar essa chave e fazer um split tranquilo deixei de forma dinâmica para você evitar erros aí e aqui e o n8n trouxe pra gente cinco itens Ah ele quebrou pra gente então o primeiro é Olá Felipe segundo parece que você está preso no Olá
e terceiro quarto e quinto deu super certo Era exatamente isso que eu queria tá agora todo mundo já sabe o que tem que fazer né É só fazer um loop over items Ou seja eu quero sempre agora fazer uma ação para cada um daqueles itens que ele fez o Split para mim então ó por exemplo a primeira vez que passou para mim aqui deixa eu entrar aqui deixa eu pegar Ah porque eu tô vendo wiit é isso split out isso aqui ó então ó por exemplo a primeira vez que entrou ele vai pegar aqui o
foi pro looping isso aqui ó eu que eu falar e gravar vídeo é difícil gente ficar pensando em gravar vídeo ao mesmo tempo mas vamos lá ó Então o que acontece a primeira vez que passa ele foi pro looping e passou o Olá Felipe Ok A segunda foi a segunda mensagem a terceira foi a terceira mensagem e aí vocês já estão carca de saber então o que acontece aí como entrou no loop o que que acontece agora eu quero pegar cada uma dessas dessas mensagens e enviar pelas zst então o que que eu tô fazendo
aqui eu tô fazendo uma chamada para enviar mensagem lá da das apster e eu tô passando o primeiro item que chegou que é o Olá Felipe aí ele vai enviar vai esperar do segundos e vai voltar para cá aí o loop vai passar o segundo item para cá eu vou enviar pro meu usuário vou esperar 2 segundos e vai voltar 3 4 5 quando quando deu cinco vezes ele vai ver que ele já fez tudo e vai passar pela Sexta vez ou seja vai jogar pela saída vai vai pro Dan e aí ele vai encerrar
o processo entendeu então dessa forma você constrói um loop que vai enviando esses pedacinhos de mensagem e é assim que vocês conseguem Construir aquela experiência então o que que a gente fez aqui recapitulando tá então a gente construiu eh dentro do nosso assistent uma formatação de saída da resposta dele depois nós capturamos essa resposta transformamos em um Array capturamos aqui a chave desse Jon só para fazer um tratamento de dados aí nós fizemos um split dessa resposta onde cada pedacinho ali é um item e passamos pro looping para ficar enviando essas respostas de uma uma
de cada vez pro nosso usuário final eu sei que se você é iniciante você pode estar um pouco assustado com linguajar pode ser um pouquinho mais difícil para você entender mas tenta implementar isso daqui tenta entender os conceitos por trás é importante que você passe por esse processo de entender esses nós né como é que você consegue implementar cada um deles esses nó são os mais importantes do n8n com eles você consegue fazer muita coisa e eu tenho certeza que vai conseguir oferecer uma experiência muito legal pro seu usuário tá antes de terminar uma coisa
bem importante aqui na zst se vocês entrarem na Instância de vocês provavelmente isso daqui vai tá ligado ó habilitar atraso para envio de mensagens que que acontece aqui a zst ela seleciona um eh uma quantidade de segundos aleatória aqui tamb meu tá de 1 a 30 para enviar essa mensagem pro pro seu usuário ou seja isso causa uma sensação pro usuário de que a mensagem é mais dinâmica né de que como se fosse uma pessoa que tá enviando aquilo a gente precisa desabilitar isso daqui por quê Tá por quê porque se a gente deixar de
forma aleatória o que que vai acontecer vai entrar a primeira mensagem aqui a gente vai enviar vai dar como enviado e a zaper vai ter um valor aleatório de 1 a 30 vamos dizer que ele colocou 20 segundos beleza só que no nosso loop aqui ele vai continuar ele vai vir vai contar 2 segundos e vai vir um segundo item pum jogou um segundo item a zaper vai receber lá e vai colocar agora que ela vai enviar daqui 3 segundos esse segundo item que que vai acontecer na prática ele vai enviar segunda mensagem antes da
primeira mensagem então ele vai confundir a ordem então o que que a gente precisa fazer desabilitar esse item aqui e a gente precisa sempre controlar esse atraso aqui no nosso aid então bateu aqui envia pro usuário espera a quantidade de segundo que você quer esperar e depois vem pra segunda mensagem enviou espera mais um pouquinho e vai enviando e dessa forma você consegue controlar certinho a ordem dessas mensagens para não ter tá bom Espero que tenha sido útil para você implementa isso aí dentro do seu bot tenho certeza que o seu usuário vai ficar muito
feliz com a experiência dele tá bom eh se você gostou desse vídeo deixa o seu feedback aqui embaixo porque é bem importante pra gente para trazer esse tipo de conteúdo para vocês abraço e até a próxima