Kształt nadawcy decyduje o tym, czy odpowiedzi mają adres. Kwalifikujący się numer SMS może odebrać wiadomość; nazwa alfanumeryczna nie może.
To rozróżnienie brzmi jak funkcja, którą się włącza. W rzeczywistości jest bliższe fizycznej właściwości tego, z czego wysyłasz, z nałożoną na to polityką danego kraju.
Co sprawia, że nadawca jest jednokierunkowy?
Brak adresu za nim.
Odpowiedź to wiadomość zaadresowana do tego, kto wysłał ostatnią. Jeśli nadawcą był numer, ten adres istnieje i telefon może go użyć. Jeśli nadawcą był alfanumeryczny sender ID, nie ma numeru do zaadresowania, a model Bird rejestruje ten brak wprost: kod kraju takiego nadawcy jest null, opisywany jako "the country of the number this sender sends from", i nie ma identyfikatora numeru, ponieważ "an alphanumeric sender has no number behind it".
Pierwsze kryterium jest więc strukturalne. Numery długie, numery bezpłatne i numery krótkie mogą odbierać. Nadawca alfanumeryczny nie może, w żadnym kraju, przy żadnej rejestracji.
Drugie kryterium jest per kraj. Każdy typ nadawcy, który dany kraj obsługuje, raportuje direction o wartości one_way lub two_way, więc typ numeru przyjmujący odpowiedzi w jednym kraju może być tylko do wysyłki w innym. Polityka SMS danego kraju ma też własną flagę is_two_way_supported. Obie wartości są per kraj i mogą się zmieniać, dlatego publikowane są na stronach SMS destinations, a nie wymieniane tutaj; każda strona kraju podaje, czy wiadomości dwukierunkowe są obsługiwane.
Jak odpowiedź trafia do mojej aplikacji?
Jako zdarzenie, wypchnięte do ciebie, z wiadomością już zapisaną.
Gdy subskrybent wyśle wiadomość na jeden z twoich numerów, Bird zapisuje ją obok twoich wysyłek i emituje sms.received. Payload zawiera treść, podział na segmenty, oba numery i operatora, jeśli operator go zgłasza. Nie ma tu czego odpytywać.
Zanim to zdarzenie do ciebie dotrze, dzieje się jedna rzecz, która zmienia to, co powinieneś zrobić w handlerze. Bird najpierw sprawdza odpowiedź względem reguł słów kluczowych dla danego numeru. Obsługiwane słowo kluczowe stop rejestruje blokadę nadawca–subskrybent i wysyła potwierdzenie rezygnacji, a mimo to emituje sms.received. Wiadomość przychodząca będąca rezygnacją trafia więc na twój endpoint wyglądając jak każda inna wiadomość przychodząca, ale już obsłużona.
Konsekwencja dla twojego kodu: nie traktuj każdego sms.received jako tury konwersacji. Część z nich to rezygnacje, które Bird już obsłużył, a ponowne wysłanie czegokolwiek w odpowiedzi na taką wiadomość to błąd, do którego ten wzorzec prowadzi. Czym jest słowo kluczowe STOP opisuje, które słowa kluczowe są rozpoznawane, gdzie i co dzieje się w kraju spoza katalogu.
Z jakiego nadawcy odpowiadam?
Użyj numeru, z którym dana osoba się kontaktowała, jeśli wciąż się kwalifikuje, aby odpowiedź była rozpoznawalna. Twoja aplikacja wysyła przez publiczny endpoint SMS ze standardowymi sprawdzeniami nadawcy, kraju i odbiorcy.
Wbudowane potwierdzenia słów kluczowych Bird mają oddzielny wewnętrzny kontekst odpowiedzi. Tego kontekstu nie można przypisać w żądaniu API. Nie pozwala on na odpowiedź konwersacyjną ani na ominięcie przez kampanię rejestracji, dostępu do kraju czy rezygnacji danej osoby.
Przed odpowiedzią sklasyfikuj wiadomość przychodzącą. Żądanie STOP lub pomocy powinno przejść odpowiedni przepływ obsługi, zamiast wywoływać niezwiązaną odpowiedź automatyczną. Wymagania dotyczące nadawcy i obsługa słów kluczowych opisują odpowiednie sprawdzenia.
Co kosztuje mnie dwukierunkowe, a jednokierunkowe nie?
Cztery rzeczy, żadna z nich opcjonalna, gdy zaczniesz przyjmować odpowiedzi.
- Endpoint, który weryfikuje i niezawodnie przetwarza zdarzenia. Wiadomości przychodzące są wypychane; uwzględnij ponowienia i zduplikowane dostarczenia. Obsługa webhooków opisuje sygnatury, ponowienia i powtórki. Identyfikator zdarzenia znajduje się w nagłówku
webhook-id, poza treścią. Użyj jego wartości jako klucza do deduplikacji. - Numer w każdym kraju, który go wymaga. Nadawca alfanumeryczny nie może być częścią programu dwukierunkowego, więc kampania, która je łączy, potrzebuje planu dla krajów, w których dostępna jest tylko nazwa. Przejście na jednokierunkowe też nie zwalnia z obowiązku: regulacja przyznająca prawo do rezygnacji może wymagać od jednokierunkowego nadawcy informacji, że odpowiedzi nie działają, i wskazania innej drogi, co opisuje czym jest TCPA.
- Obsługa wiadomości, których nie zaprojektowałeś. Ludzie odpowiadają na powiadomienia. Część tych odpowiedzi to pytania, część to rezygnacje, a część nie jest ani jednym, ani drugim.
- Monitorowanie ruchu przychodzącego na własnych numerach. Bird raportuje wolumen przychodzący oddzielnie od wychodzącego, więc program dwukierunkowy ma drugi zestaw liczb do obserwacji.
Jeśli nic z tego cię nie dotyczy, jednokierunkowe nie jest gorszą opcją. To mniejsze zobowiązanie, a nadawca alfanumeryczny daje ci rozpoznawalną nazwę w polu nadawcy w krajach, które go obsługują. Jakiego typu nadawcy użyć opisuje kompromis w pełni, a dwukierunkowe SMS opisuje, co Bird dostarcza po stronie odpowiedzi.
W skrócie
Jednokierunkowość to właściwość nadawcy, nie ustawienie.
Nazwa nie ma adresu, więc nic nie można na nią odesłać. Nadawca numeryczny wciąż potrzebuje możliwości SMS i trasy przychodzącej; nadawca alfanumeryczny nie może odbierać odpowiedzi.
Kierunek w danym kraju może być jednokierunkowy dla typu, który ten kraj skądinąd obsługuje.
Każdy typ nadawcy, który dany kraj obsługuje, raportuje własny kierunek, więc ten sam typ numeru może być dwukierunkowy w jednym kraju i jednokierunkowy w innym.
Odpowiedź przychodzi jako zdarzenie, nie jako odpytywanie.
Bird zapisuje wiadomość przychodzącą i emituje
sms.receivedz treścią, podziałem na segmenty, obydwoma numerami i operatorem, gdy operator go zgłasza.Twoja odpowiedź przez API to wysyłka z własnymi sprawdzeniami.
Użyj kwalifikującego się nadawcy i uszanuj żądanie odbiorcy. Wewnętrzne potwierdzenia słów kluczowych nie przyznają twojej aplikacji zwolnienia z rejestracji ani blokady.