SMS

Qual è la differenza tra SMS one-way e two-way?

SMS one-way invia messaggi senza accettare risposte; SMS two-way riceve anche messaggi dal destinatario.

La forma del mittente determina se le risposte hanno un indirizzo. Un numero SMS idoneo può ricevere un messaggio; un nome alfanumerico no.

La distinzione sembra una funzione da attivare. È più vicina a una proprietà fisica di ciò da cui hai inviato, con una policy per paese sovrapposta.

Cosa rende un mittente one-way?

Non avere un indirizzo dietro di sé.

Una risposta è un messaggio indirizzato a chi ha inviato l'ultimo. Se il mittente era un numero, quell'indirizzo esiste e un telefono può usarlo. Se il mittente era un sender ID alfanumerico, non c'è nessun numero a cui indirizzare, e il modello di Bird registra direttamente quell'assenza: il country code di un mittente di questo tipo è null, descritto come "the country of the number this sender sends from", e non porta un number id perché "an alphanumeric sender has no number behind it".

Quindi il primo discrimine è strutturale. I long code, i numeri toll-free e gli short code possono ricevere. Un mittente alfanumerico no, in nessun paese, con nessuna registrazione.

Il secondo discrimine è per paese. Ogni tipo di mittente supportato da una destinazione riporta una direction di one_way o two_way, quindi un tipo di numero che accetta risposte in una destinazione può essere solo invio in un'altra. La policy SMS del paese porta anche un proprio flag is_two_way_supported. Entrambi sono valori per destinazione che cambiano, quindi sono pubblicati sulle destinazioni SMS anziché elencati qui; ogni pagina di destinazione indica se la messaggistica two-way è supportata.

Come arriva una risposta alla mia applicazione?

Come evento, inviato a te in push, con il messaggio già memorizzato.

Quando un iscritto invia un messaggio a uno dei tuoi numeri, Bird memorizza il messaggio insieme ai tuoi invii ed emette sms.received. Il payload contiene il corpo, il dettaglio dei segmenti, entrambi i numeri e l'operatore se il carrier lo riporta. Non c'è nulla da interrogare con polling.

Una cosa succede prima che quell'evento ti raggiunga, e cambia cosa dovresti fare nel handler. Bird valuta la risposta confrontandola con le regole sulle keyword di quel numero. Una keyword di stop supportata registra una soppressione mittente-iscritto e invia la conferma di opt-out, ed emette comunque sms.received. Quindi un messaggio in entrata che era un opt-out arriva al tuo endpoint con lo stesso aspetto di qualsiasi altro messaggio in entrata, già gestito.

La conseguenza per il tuo codice: non trattare ogni sms.received come un turno di conversazione. Alcuni sono opt-out che Bird ha già rispettato, e reinviare qualcosa in risposta a uno di questi è l'errore che questo pattern invita a commettere. Cos'è una keyword STOP descrive quali keyword sono riconosciute, dove, e cosa succede in un paese fuori dal catalogo.

Da quale mittente rispondo?

Usa il numero che la persona ha contattato finché resta idoneo, così la risposta rimane riconoscibile. La tua applicazione invia attraverso l'endpoint pubblico SMS con i consueti controlli su mittente, destinazione e destinatario.

Gli acknowledgement interni delle keyword di Bird hanno un contesto di risposta interno separato. Quel contesto non è un campo che la tua richiesta API può rivendicare. Non consente una risposta conversazionale né a una campagna di aggirare la registrazione, l'accesso alla destinazione o l'opt-out di una persona.

Prima di rispondere, classifica il messaggio in entrata. Una richiesta STOP o di aiuto dovrebbe seguire il proprio flusso di gestione, anziché attivare una risposta automatica non correlata. Requisiti del mittente e gestione delle keyword descrivono i controlli pertinenti.

Cosa mi costa il two-way che il one-way non costa?

Quattro cose, nessuna delle quali opzionale una volta che accetti risposte.

  1. Un endpoint che verifica e processa gli eventi in modo affidabile. L'inbound è in push; tieni conto dei tentativi ripetuti e delle consegne duplicate. Gestione dei webhook descrive firme, tentativi e replay. L'identità dell'evento è nell'header webhook-id, fuori dal body. Usa il suo valore come chiave di deduplicazione.
  2. Un numero in ogni destinazione che ne richiede uno. Un mittente alfanumerico non può far parte di un programma two-way, quindi una campagna che li mescola ha bisogno di un piano per le destinazioni in cui è disponibile solo il nome. Passare al one-way non è nemmeno un modo per aggirare l'obbligo: un regime che garantisce il diritto di opt-out può richiedere a un mittente one-way di dichiarare che le risposte non funzionano e di offrire un percorso alternativo, come indicato in cos'è il TCPA.
  3. Gestire i messaggi che non hai previsto. Le persone rispondono alle notifiche. Alcune di queste risposte sono domande, alcune sono opt-out e alcune non sono né l'una né l'altra cosa.
  4. Monitorare il lato inbound dei tuoi numeri. Bird riporta il volume inbound separatamente dall'outbound, quindi un programma two-way ha un secondo set di numeri da tenere d'occhio.

Se nessuno di questi punti si applica, il one-way non è un downgrade. È l'impegno minore, e un mittente alfanumerico ti offre un nome riconoscibile nel campo mittente nelle destinazioni che lo supportano. Quale tipo di mittente dovrei usare contiene il confronto completo, e two-way SMS descrive cosa Bird fornisce per il lato risposte.

In breve

  1. One-way è una proprietà del mittente, non un'impostazione.

    Un nome non ha un indirizzo, quindi non è possibile inviargli nulla in risposta. Un mittente numerico ha comunque bisogno della capacità SMS e di un percorso inbound; un mittente alfanumerico non può ricevere risposte.

  2. Una destinazione può essere one-way per un tipo che altrimenti supporta.

    Ogni tipo di mittente supportato da un paese riporta la propria direzione, quindi lo stesso tipo di numero può essere two-way in una destinazione e one-way in un'altra.

  3. Una risposta arriva come evento, non come polling.

    Bird memorizza il messaggio in entrata ed emette sms.received con il corpo, il dettaglio dei segmenti, entrambi i numeri e l'operatore quando il carrier lo riporta.

  4. La tua risposta API è un invio con i propri controlli.

    Usa un mittente idoneo e rispetta la richiesta del destinatario. Gli acknowledgement interni delle keyword non concedono alla tua applicazione un'esenzione dalla registrazione o dalla soppressione.

Mettilo in pratica.

Prosegui con la documentazione, le guide e gli esempi per questo argomento. Le risorse sono in inglese.

Ottieni un brief di implementazione

Costruisci sulla stessa rete.

Una chiave API di test è subito tua. L'accesso alla produzione si sblocca quando aggiungi un metodo di pagamento e verifichi un mittente.

La tua prossima idea.
Pronta a partire.