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-Business Channel #5010

Closed
15 tasks done
Mirtaaa opened this issue Jan 17, 2024 · 0 comments
Closed
15 tasks done

WhatsApp-Business Channel #5010

Mirtaaa opened this issue Jan 17, 2024 · 0 comments

Comments

@Mirtaaa
Copy link

Mirtaaa commented Jan 17, 2024

Summary

Zammad as a helpdesk software has a lot of communication channels built in. They are used to keep in touch with customers and, for sure, to offer the best service that is possible.
Currently, Zammad lacks the possibility to use WhatsApp as one way of communicating with customers, which is very popular nowadays.

Use Cases

  1. As a customer, I want to open tickets by chatting with a company via WhatsApp.
  2. As a customer, I want to receive information on my tickets by a WhatsApp message.
  3. As an admin, I want to configure multiple WhatsApp Business Numbers and route them to different groups.
  4. As an admin, I want to configure a trigger that sends out a WhatsApp message in case of an emergency call by a VIP customer (even outside of defined business hours).
Additional use cases for a later iteration
  • As an agent, I want to be able to send a WhatsApp message within an existing ticket to get in touch with one of my colleagues. In WhatsApp, it's possible to initiate the connection with a target user in certain situations (advanced subscription plan). This may make agent-to-agent use cases viable, at least from a technical perspective. It's an entirely different matter if this is something that makes sense for Zammad as a ticket system.
  • Creation of outbound tickets via WhatsApp channel. As an agent, I want to be able to get in touch with customers directly via WhatsApp.

Currently, it's not possible to say for sure if all use cases are technically feasible. We need to dig deeper, but one thing is clear: The initial use case for responding to a customer-initiated communication within the allowed time window seems possible. Everything else is still just theoretically possible.

ACCEPTANCE CRITERIA

  • Create a ticket when a customer sends a Message via WhatsApp Business Channel
  • Usage of multiple phone numbers
  • Normal ticket communication where the agent can continue the conversation with the customer
  • Zammad must take care of sending reminders for all WhatsApp tickets that are currently open to avoid losing the conversation with the customer (see https://internalnote.com/breaking-the-24h-rule-for-whatsapp-in-zendesk/).
  • It must be possible to send images via WhatsApp to Zammad.

Ideas for later iteration

  • Scheduler/triggers should work with incoming WhatsApp tickets (Limitations: Notification only possible in 24 Windows without usage of the WhatsApp template)
  • Creation of outbound tickets and answers without an existing WhatsApp conversation via WhatsApp channel (to make this possible we would need templates approved by Meta and the other side needs to give the agreement first that you are allowed to contact him

Known Requirements and Limitations

  • Verified Meta Business Account (Business App is distinct from personal Mobile App, much stricter parameters but more features are available)
  • registered app in Meta for Developers (Display name has to match the registered business name, otherwise it may be rejected!)
  • A Business Manager contact is required
  • WhatsApp integration must be enabled
  • The phone number used needs to be able to receive international phone calls/SMS (Meta requirement)
  • A phone number can't be connected with the WhatsApp for Business mobile app and the WhatsApp Business API at the same time (Meta limitation). Only a fresh phone number can be used with the WhatsApp Business API (not tied to the mobile app).
  • If your phone number is currently in use with the WhatsApp for Business mobile app, you will need to follow Meta's process to remove the account.
  • A phone number that is connected to the WhatsApp Business API is not usable for incoming WhatsApp calls anymore.
  • The display name needs to match your business name/branding, otherwise, WhatsApp will reject it.
  • A Meta Business Manager for the company is needed.
  • Need to check the details of how to start a conversation with a user directly (e.g. agent -> customer, agent -> agent)
  • Need to check if notifications via WhatsApp are possible
  • Possible to initiate communication with a customer only with a pre-approved message template.

Pricing/different kinds of messages
This is a topic that should maybe be explained in the documentation or at least some references should be added to find some information.

24h window to reply
WhatsApp for example has a 24-hour rule which prevents business integrations from replying to customers that haven't interacted with your business for over 24 hours. The 24-hour window for reply, outside's not allowed; possibility to assist the customer to extend this window on-demand when the limit is approaching.

Example: If a customer sends a ticket at 10 AM, you need to make sure your agent replies AND you get a reply from the customer before 10 AM the next day. If those 24h pass without a customer reply to your agents' remark, you can't send any reminders or more info to that customer anymore.


Additional information from other sources:
https://developers.facebook.com/docs/whatsapp/overview/getting-opt-in/?locale=de_DE
https://business.whatsapp.com/policy
https://developers.facebook.com/docs/whatsapp/conversation-types#faq_715120295540784
https://developers.facebook.com/docs/messenger-platform/policy/policy-overview/

Sources regarding Creation of Outbound Tickets and Templates

About starting a conversation from Zammad's side

https://developers.facebook.com/docs/whatsapp/cloud-api/guides/send-message-templates?locale=en_US

WhatsApp message templates are specific message formats that businesses use to send out notifications or customer care messages to people who have opted into notifications. Messages can include appointment reminders, shipping information, issue resolution, or payment updates.

Before sending a template message, you need to create a template. See Create Message Templates for Your WhatsApp Business Account for more information. If your account is not verified yet, you can use one of our pre-approved templates.

https://developers.facebook.com/docs/whatsapp/message-templates/guidelines

Templates are used in template messages to open marketing, utility, and authentication conversations with customers. Unlike free-form messages, template messages are the only type of message that can be sent to customers who have yet to message you, or who have not sent you a message in the last 24 hours.

Templates must be approved before they can be sent in template messages. In addition, templates may be disabled automatically based on customer feedback. Once disabled, a template cannot be sent in a template message until its quality rating has improved or it no longer violates our business or commerce policies.

Prototypes

Admin - Link-Figma

01WithoutAccounts 02AccountModalStep1 02AccountModalStep2 02AccountModalStep3 03WithAccount 04AccountModalWithAccountStep1 04AccountModalWithAccountStep2 04AccountModalWithAccountStep3 05WithDisabled 06WithConfirmation

Agent - Figma-Link

07IncomingTicket 08Reply 09Headers 10TwoArticles 11ThreeArticles 13Closed 1224hWindowClosed

Technical Implementation

Gem or completely own implementation?

Maybe this gem can be used?
https://github.com/facebook/facebook-ruby-business-sdk

Can we send images/attachments from our side?

Check how images can be sent from our side (related to the WhatsApp-API) and if it's matching with our current editor situation.
Maybe we need a different kind of WhatsApp article type?
In the end, a decision is needed, if we implement the Zamamd->WhatsApp direction for images/attachments (the other way is no problem).

Detection when a new ticket needs to be created or a message should be added in an existing one

Here we need to find a good solution. Maybe check also already existing channels, but maybe here is no special logic behind.

Tasks

@Mirtaaa Mirtaaa mentioned this issue Jan 19, 2024
@dominikklein dominikklein changed the title WhatsApp Integration WhatsApp-Business Channel Jan 23, 2024
@fliebe92 fliebe92 reopened this Feb 20, 2024
@fliebe92 fliebe92 reopened this Feb 23, 2024
@dominikklein dominikklein reopened this Mar 11, 2024
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

9 participants