Azure / azure-functions-java-library

Contains annotations for writing Azure Functions in Java
MIT License
42 stars 42 forks source link

@SendGridOutput ignores personalizations->dynamic_template_data #146

Open vgarmash opened 3 years ago

vgarmash commented 3 years ago

Hello.

We are trying to use SendGridOutput to send outbound emails from our functions. For each email we need to use dynamic template with handlebars. Learn more on these here:

  1. https://sendgrid.com/docs/ui/sending-email/how-to-send-an-email-with-dynamic-transactional-templates/
  2. https://sendgrid.com/docs/for-developers/sending-email/using-handlebars/

We've created several dynamic templates and for all of them we see similar issue: the dynamic_template_data is not being applied to the template so all placeholders are empty.

Here is the real example:

Template code:

<p>Hello {{ firstName }}.</p>
<br>
<p>We've received new call back request {{ callbackId }} at {{ callbackTimestamp }}.</p>
<p>Please follow up with the new enrollee {{ enrolleeFirstName }} {{ enrolleeLastName }} at <a href="tel:{{ enrolleePhone }}">{{ enrolleePhone }}</a> .</p>
<br>
<p>Yours truly, subscription bot.</p>

The value we put into the output value (OutputBinding outSendgridMessage):

{
  "personalizations":
     [
       {
        "to": [{"email":"my@email.com"}],
        "dynamic_template_data: {
            "firstName":"Coach",
            "enrolleePhone":"7879090099",
            "callbackId":null,
            "enrolleeFirstName":"Joe",
            "enrolleeLastName":"Test105",
            "callbackTimestamp":1615493135111
          }
       }
    ],
  "content":[{"type":"text/html","value":"The new call back request has been received."}],
  "template_id":"d-7a92d5731fc942bb87dd4bfc2ac02afd"
}

The email comes without data: image

Please investigate why it is happening.