Using Communication APIs to enhance your UX

Using Communication APIs to enhance your UX

And reduce notifications!

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Who am I?

  • Sr Android Developer Advocate at Vonage
  • Android Developer for 12+ years
  • DevRel for 2 years
  • Pet Dad
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Who am I?

  • Sr Android Developer Advocate DevRel Manager at Vonage
  • Android Developer for 12+ years
  • DevRel for 2 years
  • Pet Dad
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Android

Other platforms are available

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Takeaways

  • History of notifications on Android
  • Why today notifications suck!
  • What are communication APIs?
  • How might you use them in your applications?
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

In the beginning there was... notifications!

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

It was great!

Quick access to important information

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

It was great!

Push content to users while the app is closed

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

It was great!

Access to controls for music apps.

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Look at your phone.

How many notifications do you have right now?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

5?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

10?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

32767?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Then it wasn't great.

Users bombarded with notifications. Avg 46 per day

Source: Businessofapp.com

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Then it wasn't great.

Notifications treated like spam. Reaction rate 4.6%

Source: Businessofapp.com

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Then it wasn't great.

UX nightmare

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Control is Yours!

Android introduces ways for users to mute/stop notifications

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Control is Yours!

Great UX! But at what cost?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Terrible for Developers

Users completely shut off notifications

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Terrible for Developers

Can't rely on notifications for important stuff!

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Notifications for less important stuff

Info that may or may not be seen by the user

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Notifications for less important stuff

Become used even more for 'spam'

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

But what about the important stuff?

When you need a user to action something

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

But what about the important stuff?

Time sensative infomation

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

But what about the important stuff?

Start a Conversation Flow

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Conversation Flow

Send notification, pray the user sees it

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Conversation Flow

Wait until they open the app (may or may not be 10+ years)

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Conversation Flow

Start conversation

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Not a good User Experience

Slow

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Not a good User Experience

Requires a lot of steps

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Not a good User Experience

May or may not be actioned

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Not a good User Experience

What happens when the app isn't installed?

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

How do we improve this?

Better guarantee the user sees important info

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

How do we improve this?

Quickly start interactive conversations

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Communication APIs

A way to provide new experiences

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Communication APIs

Platform independent

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Text

Send and receive Text Messages via code

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Voice

App to App, App to Phone, Text to Speach

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Video

Screen sharing, live streaming, meetings

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Vonage Communication APIs

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

SDKs

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Restful APIs

curl -X "POST" "https://rest.nexmo.com/sms/json" \
  -d "from=$VONAGE_BRAND_NAME" \
  -d "text=A text message sent using the Vonage SMS API" \
  -d "to=$TO_NUMBER" \
  -d "api_key=$VONAGE_API_KEY" \
  -d "api_secret=$VONAGE_API_SECRET"
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Use Case - SMS Alerts

  • Avg open rate 99%
  • Users select and receive important alerts
  • Direct and actionable via in app linking

Source: redeye.com

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

SMS Alerts

  • Stock alerts for high demand items
  • User signs up via an app
  • Selected SMS alerts
  • Direct alerts sent even if the app is no longer installed
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

SMS Alerts - NodeJS

const from = VONAGE_BRAND_NAME
const to = TO_NUMBER
const text = 'PS5 is now in stock!'

await vonage.sms.send({to, from, text})
.then(resp => { 
    console.log('Message sent successfully'); 
    console.log(resp); 
})
.catch(err => { 
    console.log('There was an error sending the messages.'); 
    console.error(err); 
});
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Voice Help Desk

  • Museum has a physical phone help desk
  • Calling in foreign countries is expensive
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Voice Help Desk

  • Build the "call" button into the app
  • Audio call within the app
  • User never leaves your app
  • Process doesn't change
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Voice Help Desk - Kotlin

var client = NexmoClient.Builder().build(this)
client.login("JWT")
client.serverCall("PHONE_NUMBER", 
    null, 
    object : NexmoRequestListener<NexmoCall> {
        override fun onSuccess(call: NexmoCall?) {}

        override fun onError(apiError: NexmoApiError) {}
    }
)
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

In App Video Doctor

  • Enable virtual 1:1 with doctor
  • Doctor can see many more patients
  • Still able to provide visual diagnosises
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

In App Video Support

  • User signs up to virtual doctor app
  • Can book and directly video within the app
  • User never leaves app
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

In App Video Support - Kotlin

private val sessionListener: Session.SessionListener = object : Session.SessionListener {
    override fun onConnected(session: Session) {
        publisher = Publisher.Builder(activity).build()
        session.publish(publisher)
    }
    override fun onStreamReceived(session: Session, stream: Stream) {
        if (subscriber == null) {
            subscriber = Subscriber.Builder(activity, stream).build()
            session.subscribe(subscriber)
        }
    }
    override fun onStreamDropped(session: Session, stream: Stream) {
        if (subscriber != null) {
            subscriber = null
        }
    }
}
session = Session.Builder(activity, apiKey, sessionId).build()
session?.setSessionListener(sessionListener)
session?.connect(token)
@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Reducing notifications

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Maximise Engagement

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Get started!

Sign up at developer.vonage.com

@devwithzachary@androiddev.social
Using Communication APIs to enhance your UX

Thank you!

polywork.com/devwithzachary

github.com/devwithzachary/presentations

@devwithzachary@androiddev.social

Stats source: https://www.businessofapps.com/marketplace/push-notifications/research/push-notifications-statistics/

Stats source: https://www.businessofapps.com/marketplace/push-notifications/research/push-notifications-statistics/

Stat source https://www.redeye.com/resources/sms-marketing-vs-email-marketing-who-wins-the-battle-for-effectiveness/

Stat source https://www.redeye.com/resources/sms-marketing-vs-email-marketing-who-wins-the-battle-for-effectiveness/