Richard
Richard

Reputation: 391

Clickable link in email sent with the Trigger Email firebase extension

I am currently using the Trigger Email extension from Firebase to send emails whenever someone is invited to use the app by another user. I configured everything correctly and it is working perfectly except for one thing which is clickable links in the email.

I am using Handlebars with a template which is defined within a Firestore document. The template is made with HTML and looks like this:

<p>Hello {{invitedUser.firstName}},</p>
<p>You've been invited by {{user.fullName}} to join them on App Name here. By clicking on the link below you can accept this invitation.</p>
<p><a>{{inviteUrl}}</a></p>
<p>Best,<br>App Name here</p>

The email will be delivered but the inviteUrl is not clickable, it does display the url within the email. I also tried it using three brackets like {{{inviteUrl}}}.

I have also tried the following:

<p>Hello {{invitedUser.firstName}},</p>
<p>You've been invited by {{user.fullName}} to join them on App Name here. By clicking on the link below you can accept this invitation.</p>
<p><a href="{{inviteUrl}}">Accept invitation</a></p>
<p>Best,<br>App Name here</p>

But in this case the email is not delivered at all.. I don't know whats going wrong there. If I do the same but define a url directly instead of using inviteUrl the url is displayed but not clickable.

I have also seen some weird cases where I pasted a html example of a link online in my html and it worked and it stopped working whenever I modified the url, even when I changed the url back to the original one which was working before.

Using helpers for handlebars is not really an option as far as I have read as I am using the Trigger Email extension.

Maybe something is going wrong with storing the HTML in a string field in Firestore but I tried everything I know which is why I am asking this question here.

Upvotes: 1

Views: 330

Answers (1)

Richard
Richard

Reputation: 391

Alright, found the answer myself...

I was creating the Firestore mail objects from node js and the url I was using was of type any, casting it to String made it work.

The data object was:

{
    inviteUrl: dynamicLink,
}

Changing it to this fixed it:

{
    inviteUrl: String(dynamicLink),
}

The working html is:

<a href="{{inviteUrl}}">Accept invitation</a>

Upvotes: 1

Related Questions