Skip to main content

Pessoal, bom dia! 

Estou sofrendo com uma configuração. Toda vez que executo o disparo de uma msg com a função change user state eu ainda caio no bloco de início e não no bloco específico!!

 

Pelo que os logs indicam, mesmo após a mudança de estado (que é executada com sucesso), o bot continua movendo o usuário para o estado "Boas vindas" (stateId: welcome), o que sugere que há algo no fluxo do bot ou nas configurações que está sobrescrevendo a mudança de estado realizada via API.

 

Os stateid e o flowIdentifier estão conferidos e correspondem ao id do bloco e ao id do fluxo. Um disparo manual via curl foi enviado e a mensagem caiu no bloco correto. Porém, não através do seguinte script.

Basicamente o script está montado neste formato:
   // Define o payload para enviar a mensagem
  // Envia a mensagem
  // Adiciona um pequeno atraso para garantir que a mensagem foi processada
  // Define o payload para alterar o estado do usuário
  // Altera o estado do usuário

 

function sendBlipMessage() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();

// Iterate through all rows in the sheet
for (var i = 1; i < data.length; i++) {
var row = datagi];
var phoneNumber = row[2]; // assuming the phone number is in the third column (index 2)
var status = row(5]; // assuming the status is in the sixth column (index 5)

if (status !== "Enviado") {
var identificadorCliente = phoneNumber + "@wa.gw.msging.net";

// Define the payload for sending message
var payloadMessage = {
"id": generateUUID(),
"to": identificadorCliente,
"type": "application/json",
"content": {
"type": "template",
"template": {
"name": "sulamericadental1",
"language": {
"code": "pt_BR",
"policy": "deterministic"
},
"components": ]
}
}
};

var optionsMessage = {
"method" : "post",
"contentType": "application/json",
"headers": {
"Authorization": "Key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"payload" : JSON.stringify(payloadMessage)
};

// Send the message
var responseMessage = UrlFetchApp.fetch("https://http.msging.net/messages", optionsMessage);
var responseMessageText = responseMessage.getContentText();
Logger.log("Response Message: " + responseMessageText);

if (responseMessage.getResponseCode() === 202) {
// Adiciona um pequeno atraso para garantir que a mensagem foi processada
Utilities.sleep(2000); // Espera 2 segundos

// Define the payload for changing user state
var payloadChangeState = {
"id": generateUUID(),
"to": "[email protected]",
"method": "set",
"uri": "/contexts/" + identificadorCliente + "/stateid@d62e756b-512a-4c27-8901-eaa6b1de0f79",
"type": "text/plain",
"resource": "4e141eab-f0ba-42fa-8ddd-4cf58d0561f0"
};

var optionsChangeState = {
"method" : "post",
"contentType": "application/json",
"headers": {
"Authorization": "Key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"payload" : JSON.stringify(payloadChangeState)
};

// Change the user state
var responseChangeState = UrlFetchApp.fetch("https://http.msging.net/commands", optionsChangeState);
var responseChangeStateText = responseChangeState.getContentText();
Logger.log("Response Change State: " + responseChangeStateText);

if (responseChangeState.getResponseCode() === 200) {
// Mark as "Enviado" in column F
sheet.getRange(i + 1, 6).setValue("Enviado"); // i+1 because rows in Sheets are 1-indexed
} else {
Logger.log("Failed to change user state. Status code: " + responseChangeState.getResponseCode());
}
} else {
Logger.log("Failed to send message. Status code: " + responseMessage.getResponseCode());
}
}
}
}

function generateUUID() { // Generate a unique identifier
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/xxy]/g, function(c) {
var r = (d + Math.random()*16)%16 | 0;
d = Math.floor(d/16);
return (c=='x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
}



Estou fazendo algo errado? Isso é comum de acontecer? 

 

Olá @Vitor Faria tudo bem? 

 

Conforme guia : 

 

Você tem que trocar também o master state.

 

 


Olá @Vitor Faria tudo bem? 

 

Conforme guia : 

 

Você tem que trocar também o master state.

 

 

Bom dia, Rafael! 

Mesmo trocando o master state seguindo criteriosamente a orientação do colega que fez o post que mencionou, ainda caio no bloco de início: 

 

log

 

 

É possível alguma coisa sobrescrever a API? 


Olá @Vitor Faria tudo bem? 

 

Conforme guia : 

 

Você tem que trocar também o master state.

 

 

Bom dia, Rafael! 

Mesmo trocando o master state seguindo criteriosamente a orientação do colega que fez o post que mencionou, ainda caio no bloco de início: 

 

log

 

 

É possível alguma coisa sobrescrever a API? 

 

@Vitor Faria vi sua request e no numero do contato está faltando o 55 para o change user state, no send NA funciona pq a api faz o ajuste, mas o outro end point não.


Olá @Vitor Faria tudo bem? 

 

Conforme guia : 

 

Você tem que trocar também o master state.

 

 

Bom dia, Rafael! 

Mesmo trocando o master state seguindo criteriosamente a orientação do colega que fez o post que mencionou, ainda caio no bloco de início: 

 

log

 

 

É possível alguma coisa sobrescrever a API? 

 

@Vitor Faria vi sua request e no numero do contato está faltando o 55 para o change user state, no send NA funciona pq a api faz o ajuste, mas o outro end point não.

 

 

Rafael, deu certo !! Era isso mesmo. Muito obrigado pela ajuda, salvou !!!! 

 

 


Comente