Skip to content

Plugin: Stop manager

tenzap edited this page Mar 16, 2022 · 2 revisions

If you regularly send SMS to people like advertisements, or anything on subscription, they may want to stop receiving these messages and reply with a STOP SMS.

In European countries it is actually mandatory to take STOP responses into account.

This plugin allows recipients to opt-out or opt-in for any type of message. But it also permits to refine the type of communication the user can opt-in or opt-out. Thus giving the possibility to still allow some types of messages.

For example, a user may not want to receive ads, but still wants to receive important messages like a reminder for an apointment. In this case, he could send "STOP ads" which would opt him out only for ads, but not for other types of messages. If later he wants to opt-in again, he may send "START ads". In that case, the plugin will not filter outgoing ads anymore for this recipient.

Use cases that are supported:

  • The recepient wants to opt out.
  • The recipient wants to opt in again. This is like undoing the opt out.
  • The recipient wants to opt out only for one or more specific type of messages.
  • The recipient wants to opt in only for one or more specific type of messages.
  • An operator can manually add or remove a record into/from the "Stop manager" database (whatever the configuration of the plugin).

Configuration options:

  • Set one or more keywords for opt-out. (STOP, NO, QUIT, UNSUBSCRIBE...)
  • Enable or disable support for opt-in
    • Set one or more keywords for opt-in. (START, YES, SUBSCRIBE...)
  • Enable the support for partial opt-in/opt-out by the use of types (STOP ads, STOP reminder...)
    • Set one or more keywords for the type of communication to filter out.
  • Enable or disable auto-reply on command success (when the message of the recipient is understood by the system)
  • Enable or disable auto reply on command failure (when the message of the recipient is not understood by the system)
  • Language used for the auto-reply message
  • Filter some phone numbers out from auto reply (for example if some numbers need to pay an additional fee/tax)

→ Set these options in the configuration file in application/plugins/stop_manager/config/stop_manager.php

How should I write my outgoing message so that it is properly filtered

This requires some explanation on how outgoing messages are filtered:

  • For the case when type filtering is not enabled:
    • Stop manager checks if the phone number of the recipient of the outgoing message is in the stop manager database. If it is, the message will not be sent to that number.
    • The message is sent without modification to the user.
  • If type filtering is enabled:
    • Stop manager checks for the presence of the type keyword enclosed in tilds ~ at the end of the outgoing SMS. If present, the plugin searches all phone numbers having opted out for this type. The matching phone numbers will be filtered out from the recipient list and not be sent. The other recipients will receive the message from which the type keyword is removed. However, the type is removed only if it is in the list of type keywords.

      → So you have to put in your message the information of the type of the message. Enclose it between tild ~ character at the end of your message. For example ~ads~ or ~reminder~. The text of your SMS would be:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
      incididunt ut labore et dolore magna aliqua. ~ads~
      

      The recipient will receive it without ~ads~:

      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
      incididunt ut labore et dolore magna aliqua.
      

Database content

  • Recipient phone number.
  • type for which STOP is active. If type filtering is disabled in the config, then the value is set to this fixed value TYPE_NOT_SET_SO_STOP_ALL.
  • The last time the record was added or updated in the DB.
  • The full original opt-out message.

There is ony one entry per "Number+type"

Good to know

  • If a user was added to the DB when type filtering was enabled and if after that type checking is disabled, then the user will receive no messag (to protect the recipient, he won't receive messages in that case). He can still opt in if he wants. Opting in will remove the entry from the database, thus the recipient will receive the messages again.
  • If a user was added to the DB when the type filtering was not enabled, and if after that type checking is enabled, then he will receive all the messages. Recipient can send new opt-out message for a specific type.
Clone this wiki locally