37
a TAKING YOUR SMS APP GLOBAL TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER DON'T PANIC

Twilio Signal 2016 Taking Your SMS App Global

Embed Size (px)

Citation preview

a

TAKING YOUR SMS APP GLOBAL

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

DON'T PANIC

GLOBAL SMS

Global SMS is awesome.

•Billions of people.

•Thousands of carriers.

•Hundreds of countries.

•One Twilio API

But...

• Not exactly that simple.

• There are issues.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

WHAT WE HOPE YOU'LL LEARN

The most commonly encountered issues when sending SMS globally.

The cause of these issues.

How we can detect these issues.

What Twilio does to prevent or correct these issues.

What you can do in order to ensure your message gets through.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

MESSAGE DELIVERY PATH

App Twilio Network Device User

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

APP TO TWILIO ISSUES

Issues:

• International permissions

• Queuing

• Invalid 'To' phone numbers

App Twilio Network Device User

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

X

PHONE NUMBER VALIDATION

• Validates every REST request you make and responds with a 21211 error if you attempt to send to a non-mobile number.

• Validate with the user's help.

• Don't try to write your own validation.

A. Twilio Lookups API: Carrier Info. No updates necessary.

B. Google Libphonenumber: "as you type" validation and example numbers.

What you can doWhat Twilio does

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

PHONE NUMBER VALIDATION: INSIDIOUS QUIRKS

Mexico

• Special prefix needed when dialing or texting a mobile number

• Required format: +5215512345678, +525512345678

• Users might enter: 0445512345678 or 15512345678.

Suggestions:

• Don't rely on homegrown validation

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

PHONE NUMBER VALIDATION: INSIDIOUS QUIRKS

Argentina

• When calling a mobile phone number within Argentina, users add a "15" after the area code. When calling from outside of Argentina, users add a "9" after the country code. Neither of these should be included when sending an SMS over Twilio.

• Users might enter: 0296615123456, +54296615123456, +5492966123456

• Required format: +542966123456

Suggestions:

• Display example phone numbers to users

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

PHONE NUMBER VALIDATION: INSIDIOUS QUIRKS

http://www.anatel.gov.br/setorregulado/index.php/nono-digito

Brazil

• In the middle of a multi year renumbering project.

• On May 29th, 2016 Mobiles in the light blue area codes will get a 9 after the area code.

Suggestions:

• If you do use Libphonenumber, update it regularly.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

NETWORK LEVEL ISSUES

Issues:

• Filtering

• Service disruptions

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

App Twilio Network Device User

X

NETWORK LEVEL ISSUES: FILTERING

Why: Carriers are trying to protect users.

Detection:

• Rarely possible. Very few carriers will let anyone know when or how they are filtering. They don't want unsavory types probing their filters.

Types of filters:

• Content - phishy, spammy, controversial, complaints

• Volume - blasts, traffic imbalances

• Sender - phone numbers, alpha sender ids

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

NETWORK LEVEL ISSUES: FILTERING

• Preregisters traffic with carriers.

• Has per-number rate limits.

• Works with networks to try to reduce the impact of filtering on legitimate traffic.

• Create a good user experience.

• Test your body content if possible.

• Avoid sending "blasts" of messages.

TRENTON MCMANUS | [email protected] ROBERT

What you can doWhat Twilio does

NETWORK LEVEL ISSUES: PREREGISTRATION

What is "preregistration":

• Conveniently, does precisely as its name suggests.

• An SMS may be able to bypass filters if content is preregistered with carriers.

• Only for particular use cases, and process is very manual.

Supported countries:

• Short codes: United States, Canada, United Kingdom

• Japan, China, Philippines, Thailand, India, Oman, Saudi Arabia, Egypt

How do I start:

• Email [email protected] to learn more.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

NETWORK LEVEL ISSUES: SERVICE DISRUPTIONS

Why:

• Machines break

• People make mistakes

• The market changes

Detection:

• Active Testing

• Monitoring delivery statuses

• Feedback API

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

NETWORK LEVEL ISSUES: DELIVERY STATUSES

What are "delivery statuses"?

• Twilio normalizes carrier DLRs, which may contain some helpful info.

• Sends this to your app a via web hook.

How is this useful?

• Anomaly detection on aggregated data can detect some service disruptions.

• Statuses other than "Delivered" may assist in troubleshooting.

However...

• #$*@%*^&$@%!

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

FEEDBACK API

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

App Twilio Network Device User

FEEDBACK API

App Twilio Carrier Device User

Route

Network

Route

94%

85%

77%

Route

92%

User A

ction

Feedback API

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

FEEDBACK API

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

* FUTURE LOCATION OF HYPERSPACE BYPASS

*

FEEDBACK API

Who should participate:

• Applications which have a trackable user action.

Why should you participate:

• Better deliverability. Allows us to customize your routing to meet your needs.

• Better support. Data from the Feedback API helps us resolve your issues faster.

How can I participate:

• In developer preview. Email [email protected] for early access.

• Generally available after helper library update.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

# Send a message with the new parameter provider_feedback

set as true

message = client.messages.create(

to="+18085551234",

from_="+14155559876",

body="Verification Code: 314-159",

provide_feedback="true"

)

Tell Twilio you expect a customer to enter a code

FEEDBACK API STEP #1

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

# Update the Message Instance with the outcome set as

confirmed

message.feedback.update(outcome="confirmed")

Tell Twilio when the customer actually enters the code

FEEDBACK API STEP #2

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

NETWORK LEVEL ISSUES

• Active testing in major markets

• Monitors delivery statuses

• Monitors Feedback API

• Adjusts routing when service disruptions are detected

• Participate in the Feedback API

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

What you can do What Twilio does

DEVICE ISSUES

App Twilio Network Device User

Issues:

• Phone turned off

• Unable to receive SMS

• Still a lot of feature phones in the world

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

X

USER EXPERIENCE

App Twilio Network Device User

Issues:

User doesn't read or act on the message

• Appropriate Sender ID

• Message content

• Time and frequency

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

X

SENDER ID

Mobile number: +18085551234 or Short code (12345) or Alphanumeric Sender ID (“BobsBurgers”)

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

• One vs. two-way

• Local expectations

• Branding/familiarity

CONSIDERATIONS

TWILIO HAS

• Mobile numbers in 22 countries

• The ability to set Alphanumeric Sender IDs in 151 countries

• Short codes in the US, Canada and the UK

SENDER ID: COPILOT

Guten Tag!

+49 731 xxxxHello there!

408 384 1111

408 384 1111Hello again!

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

Use local phone numbers when sending messages globally to automatically create a local experience for your users.

GEOMATCHSend messages with the same recognizable phone number to create a consistent experience and maintain conversation history.

STICKY SENDER

YOUR NAME | TWITTER

CONSIDERATIONS • Use local language when possible.

MESSAGE CONTENT:

Tíngzhǐ suǒyǒu de shízhōng, qiē duàn diànhuà, yīkuài nóng zhī de gǔtou fèi jiào, àn yǎle gāngqín, suízhe dīchén de gǔ fángzhǐ gǒu

CONSIDERATIONS • Use local language when possible. • KISS (Keep It Short. Seriously.)

YOUR NAME | TWITTER

Join us this Thursday, April 15th for our yearly Toyota SALE OF THE CENTURY. THAT’S RIGHT, EVERYTHING MUST GO from our inventory. This special one time anniversary sale won’t come again. Ever. Camry, Avalon, Highlander, Tundra, Tacoma, and even the world-renowned Prius. It’s all yours for the taking at this clearance event. If you think our prices are crazy, you should see our 0.0595% APR financing. All cars are either new or Certified Pre-Owned. If you can spot a

MESSAGE CONTENT:

CONSIDERATIONS • Use local language when possible. • KISS (Keep It Short. Seriously.) • Watch for message concatenation.

YOUR NAME | TWITTER

Good news regarding your delivery. It will arrive tomorrow between the hours of 10am PST

technician will be onsite to install your appliance.

and 3pm PST. Because you signed up for our Signature White Glove Delivery Service, a

MESSAGE CONTENT:

CONSIDERATIONS • Use local language when possible. • KISS (Keep It Short. Seriously.) • Watch for message concatenation. • Make message intent clear.

Did you hear the news? It is open to us that the landmark is the river above the Ozark farm. The depts number is 415-909-1281

MESSAGE CONTENT:

CONSIDERATIONS • Use local language when possible. • KISS (Keep It Short. Seriously.) • Watch for message concatenation. • Make message intent clear. • Use short-hand and CAPS sparingly.

OMG. IDK HOW WE”RE GOING TO MOVE ALL THESE HIGH-END SPEAKERS. ICYMI, SALE ENDS FRIDAY @ crazyeddies.com/now

MESSAGE CONTENT:

USING TWILIO • Unicode • Concatenation - in & outbound

MESSAGE CONTENT:

CONSIDERATIONS • Use local language when possible. • KISS (Keep It Short. Seriously.) • Watch for message concatenation. • Make message intent clear. • Use short-hand and CAPS sparingly.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

MESSAGE CONTENT: NO SHENANIGANS

CONSIDERATIONS • Avoid looking phishy. • Set expectations for content. • Make content relevant to opt-in. • Offer clear opt-out instructions

Alert: your account password was changed. BTW: Check out our latest 30yr mortgage rates at cbank.com

Go ahead. click.me/6b5t9rr32

USING TWILIO • Automatic opt-out response and

blacklist for long-codes

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

TIME OF DAY…AND FREQUENCY

• Complaints = carrier filtering • R.e.s.p.e.c.t • Know your time zones • Review local restrictions • Avoid weekends & holidays

Received 2:31 AM

Hi! Your dentist appointment is at 4:30pm today.

TRENTON MCMANUS | [email protected] ROBERT FENSTERMACHER | @RFENSTERMACHER

RECAP

TRENTON MCMANUS | [email protected] ROBERT

App Twilio Network Device User

• Validate 'to' phone numbers with user help

• Preregister content

• Implement the Feedback API

• Remember the feature phones

• Good content

• Short messages

• Which users expect

• From a trusted Sender ID

GO TO IT, AND GOOD LUCK.

ROBERT @RFENSTERMACHER

*FOR ALL THE FISH

TRENTON MCMANUS [email protected]

SO LONG AND

*