Skip to main content
Při odesílání zprávy přes SmsManager můžete definovat flow — seřazený seznam kanálů, které se pro každého příjemce zkusí. Pokud první kanál není schopen zprávu doručit (například příjemce nemá nainstalovaný Viber), SmsManager automaticky vyzkouší další kanál v seznamu. To vám umožňuje maximalizovat míru doručení přes SMS, Viber a WhatsApp bez nutnosti psát vlastní logiku pro opakování.

Co je tok zpráv?

Vlastnost flow je pole objektů kanálů. Každý objekt obsahuje přesně jeden klíč — sms, viber, whatsapp_text nebo whatsapp_template — spolu s konfigurací toho kanálu. SmsManager prochází pole od prvního k poslednímu: vyzkouší první kanál, a pokud selže nebo je nedostupný pro daného příjemce, přejde na druhý a tak dále.
Ve výše uvedeném příkladu se SmsManager nejprve pokusí doručit zprávu přes Viber. Pokud příjemce nemá Viber, nebo Viber TTL vyprší před doručením, SmsManager přejde a odešle zprávu jako standardní SMS.

Výchozí chování (bez flow)

Pokud do svého požadavku nezahrnete vlastnost flow, SmsManager použije SMS přes bránu high jako výchozí kanál. To je ekvivalentní zápisu:
Pole body z kořene vašeho požadavku se použije jako text zprávy a platí standardní směrování SMS.

Příklady flow

Jednoduchý tok pouze pro SMS

Když chcete jemné řízení SMS — například určení jména odesílatele, brány nebo zpracování Unicode — definujte jednoprvkový flow s kanálem sms:

Viber s SMS zálohou (nejčastější vzor)

Toto je doporučený produkční vzor pro propagační nebo transakční zprávy. Nejprve se pokusí doručit přes Viber; pokud selže z jakéhokoli důvodu, zpráva přejde na SMS, abyste dosáhli každého příjemce.
Všimněte si, že Viber krok má bohatší tělo s emoji a tlačítkem, zatímco SMS záloha používá prostý textový ekvivalent. Hodnoty body na úrovni kanálu vám umožňují přizpůsobit obsah pro každý kanál.

WhatsApp šablona s SMS zálohou

Pro proaktivní oslovování, kdy vám příjemce jako první nenapsal, použijte předschválenou WhatsApp šablonu. Pokud doručení přes WhatsApp selže, SmsManager přejde na SMS.

Podmínky selhání flow

SmsManager přeskočí kanál a zkusí další, když nastane některá z následujících podmínek: Viber
  • Příjemce nemá na svém zařízení nainstalovaný Viber.
  • Viber ttl vyprší před doručením zprávy.
WhatsApp šablona
  • Určená šablona nebyla ještě schválena Metou.
  • WhatsApp ttl vyprší před doručením zprávy.
WhatsApp text
  • Příjemce vám nikdy neposlal zprávu ani neodpověděl na jednu z vašich šablonových zpráv. WhatsApp textové zprávy jsou povoleny pouze v rámci 24hodinového zákaznického okna, které se otevře poté, co příjemce zahájí kontakt.
SMS
  • Protože SMS je nejuniverzálnějším dostupným kanálem, jen zřídka selže na úrovni kanálu. Selhání SMS označuje hlubší problém (neplatné číslo, nedostatečný kredit apod.), nikoli problém dostupnosti kanálu.

Kdy se přejde na další kanál — ttl a ttl_condition

První objekt v poli flow je vždy ihned přijat a zařazen k odeslání. Ve stejném okamžiku vznikne pravidlo, které po uplynutí ttl zkontroluje výsledek odesílání — a podle něj se rozhodne, zda přejít na další kanál. Pole ttl se zadává v minutách (typ float), nejméně 0.5 (30 sekund), nejvíce 43200 (30 dní). Hodnoty do 15 včetně mohou mít jedno desetinné místo (1.5 = 90 sekund); od 15 výše se zaokrouhluje nahoru na celé minuty (16.1 = 17 minut). Co přesně znamená „doručeno” se ale liší kanál od kanálu — u SMS je sent často konečný účtovaný stav, kdežto u WhatsApp nebo Viberu sent ještě nezaručuje doručení. Proto lze podmínku splnění časového testu určit polem ttl_condition: Hodnota ttl_condition určuje, které stavy se považují za „splněno” (a tedy se další kanál neodešle):
WhatsApp šablona s SMS zálohou po 30 s
V tomto příkladu se v čase T+30s ověří, zda byla WhatsApp zpráva doručena. Pokud ano, SMS se už neodesílá; pokud ne, odejde SMS záloha.

Priorita body a sender

Pole body můžete definovat na kořenové úrovni požadavku i uvnitř jednotlivých objektů kanálů v flow. Pokud jsou přítomny obě hodnoty, body na úrovni kanálu má prioritu pro daný kanál. Pokud kanál nezadá své vlastní body, použije se kořenové body.
V tomto příkladu Viber krok použije tělo s emoji, zatímco SMS záloha využije prostý kořenový text.
Vždy zahrnujte SMS jako poslední kanál ve svém flow pro produkční provoz. SMS je k dispozici na každém mobilním zařízení a nevyžaduje instalaci žádné aplikace, což z ní činí nejspolehlivější zálohu, která zajistí, že vaše zpráva dojde každému příjemci.