Conversion API

A Conversion API permite que você informe à Vonage sobre a confiabilidade do seu 2FA comunicações. O envio de dados de conversão de volta à Vonage permite uma entrega mais rápida e confiável das suas mensagens.

Nota: Se você estiver usando o Verify API Para a autenticação de dois fatores (2FA), você não precisa nos enviar dados de conversão. A API do Verify faz isso automaticamente.

A Vonage utiliza esses dados de conversão, juntamente com comprovantes de entrega (DLRs) para facilitar o Adaptive Routing™. O algoritmo do Adaptive Routing determina automaticamente as melhores rotas das operadoras para a entrega de SMS e chamadas de voz em qualquer momento específico. Na maioria dos casos, um DLR é a confirmação de que sua mensagem foi entregue ao destinatário. No entanto, nem todos os DLRs das operadoras são confiáveis e algumas nem mesmo os fornecem. Portanto, os dados de conversão são nosso melhor indicador da qualidade da rota.

Nota: Os dados de conversão que você nos envia são confidenciais: a Vonage nunca os compartilhará com terceiros.

Antes de enviar os dados de conversão

O acesso à Conversion API não está habilitado por padrão ao criar sua conta na Vonage. Para usar a Conversion API, você deve primeiro solicitar acesso enviando um e-mail para apoio.

Ao nos enviar dados de conversão, você deve diferenciar entre seus 2FA mensagens e outras formas de comunicação. Por exemplo, alertas baseados em eventos ou mensagens de marketing. Para isso, use um Chave de API para autenticar solicitações à Conversion API para a autenticação de duas etapas (2FA) e uma chave de API diferente para todo o resto.

Relatórios de dados de conversão

O diagrama a seguir mostra o fluxo de trabalho da Conversion API:

Conversion API workflow

Para enviar dados de conversão à Vonage:

  1. Inicie um fluxo de trabalho de autenticação de duas etapas (2FA) ao enviando uma solicitação de autenticação de duas etapas

  2. A Vonage envia uma mensagem de texto ou de voz para o seu usuário.

  3. O usuário responde à sua mensagem ou ao seu pedido de verificação.

  4. Enviar imediatamente uma Conversion API solicitação com informações sobre a mensagem identificada por message-id:

    //You use the information you received in response from a request to SMS API or Call API.
    
    var https = require('https');
    
    var data = JSON.stringify({
     api_key: 'API_KEY',
     api_secret: 'API_SECRET',
     message-id: message-id,
     timestamp: yyyy-MM-dd HH:mm:ss,
     delivered: true_or_false
    });
    
    var options = {
     host: 'api.nexmo.com',
     path: '/conversions/sms',
     port: 443,
     method: 'POST'
    };
    
    var req = https.request(options);
    
    req.write(data);
    req.end();
    
    var responseData = '';
    req.on('response', function(res){
     res.on('data', function(chunk){
       responseData += chunk;
     });
    
    });
    
    val client = Vonage {
        apiKey(VONAGE_API_KEY)
        apiSecret(VONAGE_API_SECRET)
    }
    
    client.conversion.convertSms(
        messageId = MESSAGE_UUID,
        delivered = true,
        timestamp = Instant.now()
    )
    
    VonageClient client = VonageClient.builder()
        .apiKey(VONAGE_API_KEY)
        .apiSecret(VONAGE_API_SECRET)
        .build();
    
    client.getConversionClient().submitConversion(
        ConversionRequest.Type.SMS, // Conversion product type
        MESSAGE_ID,                 // ID of the message that was sent
        true,                       // Whether the message was sent successfully
        Date.from(Instant.now())    // Timestamp to associate with the conversion
    );
    
    <?php
    //You use the information you received in response from a request to SMS API or Call API.
      $url = 'https://api.nexmo.com/conversions/sms?' . http_build_query([
              'api_key' => 'API_KEY',
              'api_secret' => 'API_SECRET',
              'message-id'=> message-id,
              'timestamp'=> yyyy-MM-dd HH:mm:ss,
              'delivered'=> true_or_false
          ]);
    
      $ch = curl_init($url);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch, CURLOPT_HEADER, 1);
      $response = curl_exec($ch);
      $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
      $header = substr($response, 0, $header_size);
      if (strpos($header, '201')){
        echo ("Success");
      }
    }
    
    from vonage import Auth, Vonage
    
    client = Vonage(Auth(api_key=VONAGE_API_KEY, api_secret=VONAGE_API_SECRET))
    
    client.sms.submit_sms_conversion(
        message_id='MESSAGE_ID',
        delivered=True,
        timestamp='2020-01-01T12:00:00Z',
    )
    
    require "net/http"
    require "uri"
    
    #You use the information you received in response from a request to SMS API or Call API.
    
    uri = URI.parse("https://api.nexmo.com/conversions/sms?")
    params = {
        "api_key" => 'API_KEY',
        "api_secret" => 'API_SECRET',
        "message-id" => THE_ID_FROM_THE_RESPONSE,
        "timestamp" => IN_UTC_yyyy-MM-dd HH:mm:ss,
        "delivered" => true_or_false
    }
    
    response = Net::HTTP.post_form(uri, params)
    
    puts response.body
    

    Importante: Você deve sempre enviar essas solicitações o mais rápido possível após o usuário ter respondido ao seu convite para a autenticação de duas etapas (2FA) e não esperar para enviá-las em lotes. O roteamento adaptativo depende de dados de conversão atualizados para tomar as melhores decisões de roteamento.