listmonk icon indicating copy to clipboard operation
listmonk copied to clipboard

Messenger v2 (for non-email recipients)

Open relikd opened this issue 1 year ago • 0 comments

I think the whole handling of messengers needs some segregation or so. Most settings either do not apply for non-email recipients or have to be restricted somehow. Lets take the example of sending an sms to subscribers.

  • First, I need to store the phone number somewhere. This can be done via custom attributes but is error-prone. Further, you cannot create a phone-only subscriber since the email field is mandatory (luckily "-@-" is accepted as valid, I'll come to that later).
  • Second, the form of the communcation has nothing in common with email / html. I would want to restrict the UI to plain text and prevent anyone from accidentially enabling html. Btw. the html-alternative text is not send to the messenger endpoint.
  • Third, I have restrictions on the subscribers list. I can only send sms to people who have a phone number assigned. This can be solved by a temporary list with advanced search. However, I also want to have a fail-safe against accidentally selecting the wrong list or template. Filtering at the messenger-endpoint may be already too late in that case.

And lastly, I have to constantly switch between both, email and sms, and always remember to select the right template, the right list, and the right text-format for the right messenger-endpoint. I could manage two seperate lists and, at least, be sure that "-@-" will prevent any accidential email because the domain is malformed.

One possible solution would be to have everything list-centered. E.g. When I edit the list "sms-contacts", I can assign a default template, text-format, and messenger-endpoint. Also, it would be nice if the list then would allow to insert the phone directly instead of having to write a fake email address (and ensure everyone has the same property).

One last consideration, none of the properties should be hard-wired for phone or plain-text, etc. Because another use-case for messengers would be actual social-media messengers. For example, send to a Telegram or Signal bot or a public group (allows only basic styling and requires chat-id instead of phone). My current workaround would be to create a seperate list with just one item and ignore the sender. This would trigger the endpoint only once per campaign instead of once per subscriber.

relikd avatar Nov 22 '23 01:11 relikd