Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WhatsApp Templates #271

Open
nicpottier opened this issue Apr 16, 2019 · 7 comments
Open

WhatsApp Templates #271

nicpottier opened this issue Apr 16, 2019 · 7 comments

Comments

@nicpottier
Copy link
Member

So we need to figure out a strategy when it comes to WhatsApp templates.

As a context, WhatsApp prevents sending of messages to a contact if it is more than 24 hours since their last reply. So in the case where someone sends a question to be handled by U-Partners and say that is during a weekend when tickets aren't being handled, we won't be able to answer them.

WhatsApp answer to this is the use of templates, which are pre-approved message templates that can have a few simple substitutions in them.

WhatsApp has told us that they expect implementors to send a generic'ish "reply for you answer" template for these kinds of use cases, so that's the direction we are going.

The current thinking is:

  • upartner orgs can specify the "read reply" template to use (open to suggestions on what to call this stuff) That template should contain instructions to reply with a particular keyword to get their reply. IE something like: Your question has a response waiting for you, reply with "open" to read it (can be whatever a CO wants but the key is having a keyword here, open in this case)
  • when an agent looks at a message and writes a reply, U-Partners checks whether the contact is using WhatsApp (this will require API changes on RapidPro for anon orgs). If so, then it creates a "Pending Message" record (new db model on U-Partners) for that contact and triggers a send of the "read reply" template to the user.
  • U-Partners monitors incoming messages and when it receives an incoming message with the word open (or whatever keyword is used in the "read reply") then it sends any "Pending Message" for that contact.

Open questions:

  • what happens when someone sends the "read reply" keyword and there are no pending messages? (yet another template?!)
  • do we want to support some connection from FAQs to templates? Could allow for sending real answers if they are generic / common enough. (some stats on % of replies that are FAQs and appropriate for templates may help answer that) This may be a v2 thing.
  • since open is being handled by U-Partners in the above case, it won't work if someone is currently part of a flow. That is the same as any normal U-Partners response (if the contact replies to a clarifying question while in a flow that will be caught by the flow) so may not be that big a deal but if interactions are usually just a single response then that case is definitely worse.
@smn
Copy link
Contributor

smn commented Apr 17, 2019

what happens when someone sends the "read reply" keyword and there are no pending messages? (yet another template?!)

In this scenario the follow up won't need a template as that's a response to an inbound message, which if it's within 24 hrs, can be free form.

@nicpottier
Copy link
Member Author

what happens when someone sends the "read reply" keyword and there are no pending messages? (yet another template?!)

In this scenario the follow up won't need a template as that's a response to an inbound message, which if it's within 24 hrs, can be free form.

Ah yes, of course.

@JPow
Copy link

JPow commented May 8, 2019

@smn check out your average response times, we did some analysis and on one project 48% were longer than 24 hours, this is normally caused by 1) responders not working 24/7 so evening or sunday messages have higher response times) 2) Period where volume outweighs volunteers - could be due to a spike in messages or a spike in sick days. We will need a template solution for this.

  • How about a standard template in FAQd that reads "You contacted us over 24 hours ago, sorry about the late response, do you still need an answer to your question?". If they reply it opens up the window again - downside it unlike in an Open Case the councillor wont get an update alert.

Additional possible improvements - add a filter for channel using the contact info, and "time received" sort function and blast the template to everyone over 24 hours.

@nicpottier
Copy link
Member Author

So I don't think we should be sending people templates if we don't actually have an answer for them, that just starts the cycle all over again. Rather the template should be used to notify the user that they have a reply waiting and that they can receive that reply by reengaging. To me that seems then that the template can be totally generic which is also good, something of the form You have a message waiting for you, send "read" to read it or the like.

@JPow
Copy link

JPow commented May 17, 2019

The idea above is that the councillor is now online, and ready to answer but cant unless reporter replies to the template. So "We have an answer for you on your question, reply Read to read it" would work well for that. The councillor will need to open a case to send it though, because they need to catch the "read" coming back in and see the message history to know what the original question was. So now maybe this isn't in the FAQ section but within Cases? What do you think? I'll try and get a template like that approved in the meantime.

@nicpottier
Copy link
Member Author

Some nomenclature here so we are on the same page:
agent: the person answering questions on behalf of CasePro
contact: the person out in the field asking questions

So no, I don't think that makes sense really, because then you just set yourself up to the agent now only has 24 hours to respond again.

Agents shouldn't have to know whether they are interacting with someone on WhatsApp or not. Rather CasePro should present the question, the agent should answer it, and in the case where it's a WhatsApp contact who has interacted recently, then the "read reply" template is sent instead.

If/when the contact replies with "read" then the original answer the agent replied with is automatically send, no interaction is required on the agent's part. If the contact sends a followup then the process begins anew.

@JPow
Copy link

JPow commented May 17, 2019

oh got you, now that is very smart Nic. Great thinking. Ok that sounds like a really good plan. That really saves additional burden on the agent because of the technology.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants