Acessar artigos

Condicionais

Para seguir diferentes abordagens a depender da resposta do usuário, utiliza-se condicionais com if/else.

Exemplo:

QUESTION(
  'Olá! Você está podendo falar agora?',
  'resposta',
  'string',
  ['Sim', 'Não']
);
if (data.resposta == 'Sim') {
  QUESTION(
    'Qual o seu email?',
    'email',
    'string',
  );
} else {
  QUESTION(
    'Em que horário você estará disponível?',
    'horario',
    'string',
    ['8-12h', '12-18h', '18-22h']
  );
  MESSAGE(
    'Ok, entraremos em contato no horário de ' + data.horario
  );
}

Para as respostas não, o bot retorna:

É possível gerar ifs/elses para todas as possíveis respostas do usuário. Para isso, basta utilizar o else if, como no exemplo abaixo.

QUESTION(
  'Olá! Você está podendo falar agora?',
  'resposta',
  'string',
  ['Sim', 'Não', 'Talvez', 'Não e não estarei'],
  'Escolha uma opção'
);
if (data.resposta == 'Sim') {
  QUESTION(
    'Qual o seu email?',
    'email',
    'string'
  )
}
else if (data.resposta == 'Não') {
  QUESTION(
    'Em que horário você estará disponível?',
    'horario',
    'string',
    ['8-12h', '12-18h', '18-22h']
  );
  MESSAGE(
    'Ok, entraremos em contato no horário de ' + data.horario
  );
}
else if (data.resposta == 'Talvez') {
  QUESTION(
    'Iremos te fazer umas perguntas, topa?',
    'talvezResposta',
    'string',
    ['Sim', 'Não']
  );
  if (data.talvezResposta == 'Sim') {
    QUESTION(
      'Qual o seu email?',
      'email',
      'string'
    );
  } else {
    MESSAGE(
      'Ok, até a próxima!'
    );
  }
} else if (data.resposta == 'Não e não estarei') {
  MESSAGE(
    'Ok, até a próxima!'
  );
}

Vamos analisar o retorno de todos esses ifs/elses:

Caso a pessoa selecione "Sim", o bot retorna:

Qual o seu email?

Caso a pessoa selecione "Não", o bot retorna:

Em que horário você estará disponível?
( )8-12h
( )12-18h
( )18-22h

Caso a pessoa selecione "Talvez", o bot retorna:

Iremos te fazer umas perguntas, topa?
( )Sim
( )Não

Caso a pessoa selecione "Talvez" e "Sim", o bot retorna:

Qual o seu email?

Caso a pessoa selecione "Talvez" e "Não", o bot retorna:

Ok, até a próxima!

Caso a pessoa selecione "Não e não estarei", o bot retorna:

Ok, até a próxima!

Para o bot ficar mais organizado é possível colocar algumas chamadas, que aparecerão mais de uma vez, em uma funçao, e chamá-la abrindo e fechando parênteses, como no exemplo abaixo, que usa as funções pegaEmail(), finalizaAtendimento() e inicio().

function pegaEmail() {
  QUESTION(
    'Qual o seu email?',
    'email',
    'string'
  );
}
function finalizaAtendimento() {
  MESSAGE(
    'Ok, até a próxima!'
  )
}
function inicio() {
  QUESTION(
    'Olá! Você está podendo falar agora?',
    'resposta',
    'string',
    ['Sim', 'Não', 'Talvez', 'Não e não estarei'],
    'Escolha uma opção'
  );
  if (data.resposta == 'Sim') {
    pegaEmail()
  } else if (data.resposta == 'Não') {
    QUESTION(
      'Em que horário você estará disponível?',
      'horario',
      'string',
      ['8-12h', '12-18h', '18-22h']
    );
    MESSAGE(
      'Entraremos em contato no horário de ' + data.horario
    );
    finalizaAtendimento()
  } else if (data.resposta == 'Talvez') {
    QUESTION(
      'Iremos te fazer umas perguntas, topa?',
      'talvezResposta',
      'string',
      ['Sim', 'Não']
    );
    if (data.talvezResposta == 'Sim') {
      pegaEmail()
    } else {
      finalizaAtendimento()
    }
  } else if (data.resposta == 'Não e não estarei') {
    finalizaAtendimento()
  }
}
inicio()

O bot acima retorna as mesmas mensagens que o exemplo anterior.

crosslistmenu-circle