OroPlatform bundle that provide multi-channel/Omni-Channel Message generation with query builder: SMS, Email, Inbox, IVR, Twitter, Facebook, etc -- DEVELOPMENT REPO
I also created an API to handle system to system notification. It works by first creating an entry in the DS system->Notifications->notifications. For example :
Title : Account Creation confirmation
Presentation content:
<p>Bonjour, </p>
<p>La création de votre compte Ville de Montréal est presque complétée, il ne vous reste qu'à confirmer le tout!</p>
<p>Cliquez sur ce lien ou copiez-le dans votre navigateur : {{urlvdm}}.</p>
<p>Ce lien ne peut être utilisé qu'une seule fois. Vous pourrez ensuite vous connecter avec votre adresse de courriel et le mot de passe que vous aurez choisi.</p>
<p>Cordialement, </p>
<p>L'équipe de la Ville de Montréal</p>
I would also create a generic template to use when using the email channel for my transport. Example :
Each method in the API would handle a specific type of notification, and therefore received a different set of parameters via a json input base on the need of that notification. The method would also receive the transport profile to use, and would also make a pre-rendering (twig variables) of the notification content with the received input before saving the render version in the message entity. Once in the transport class we simply replace the Twig variable {{Message|raw}} with the render content in the message entity passed to the transport class.
I also created an API to handle system to system notification. It works by first creating an entry in the DS system->Notifications->notifications. For example :
I would also create a generic template to use when using the email channel for my transport. Example :
Each method in the API would handle a specific type of notification, and therefore received a different set of parameters via a json input base on the need of that notification. The method would also receive the transport profile to use, and would also make a pre-rendering (twig variables) of the notification content with the received input before saving the render version in the message entity. Once in the transport class we simply replace the Twig variable {{Message|raw}} with the render content in the message entity passed to the transport class.