β
Demo to preview the settings
Introduction
Elevate your Bubble app's email capabilities with the Rich Postmark Emails Plugin. This robust plugin enables you to send highly customized emails directly from your application, enriching user communication with advanced formatting and dynamic content capabilities.
The Rich Postmark Emails Plugin allows for complete customization of email templates using HTML and CSS, giving you the freedom to design emails that align perfectly with your brand's aesthetic. Incorporate rich media, custom fonts, and interactive elements to make your emails stand out and engage your audience more effectively.
Beyond aesthetic customization, the plugin supports the integration of dynamic content, ensuring that each email can be personalized based on user data or actions within your app. This makes it ideal for sending tailored notifications, promotional messages, or essential communication, enhancing the relevance and impact of each message.
Leverage the power of the Rich Postmark Emails Plugin to deliver beautifully crafted emails that not only look great but also perform optimally. Implement this plugin in your Bubble app to enhance your email campaigns, improve user engagement, and provide a professional-level communication tool right within your digital environment.
How to setup
- Install Rich Postmark Emails plugin
- Use plugin actions in the workflow
Element actions
1) Postmark - Send email
Allows you send an email
Title | Description | Type |
From | Sender email. You can change the "From" field at https://account.postmarkapp.com/signature_domains. Also, it's possible to write in this field a different from name, like this, without quotes: "Vinicius Brito support@unlimitedbubbling.dev" instead of just the email "support@unlimitedbubbling.dev". | Text, Required |
To | Recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Required |
Text body | Plain text email body. Example: Hello! | Text, Optional |
HTML Body | Email body with HTML tags. Example: <b>Hello</b> <img src=\"cid:image.jpg\"/> | Remember to escape double quotes! | Text, Optional |
Reply to | Message reply | Text, Optional |
Subject | Email's subject | Text, Optional |
CC | Cc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
BCC | Bcc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
Stream ID | Leave empty to send through your default transactional emails stream. Get this ID from your Postmark dashboard, click "Servers", then choose your server, then the message stream you want to sent the message through. If you're in doubt on how any of this works, check https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams. When using a transactional message stream, do mind these rules https://postmarkapp.com/transactional-email. When using a broadcast message stream, do mind these rules https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams and https://postmarkapp.com/support/article/1208-how-to-add-an-unsubscribe-link | Text, Optional |
Attach file(s) | Too many files and the action may time out and fail. A list of files. And by file I mean Bubble's normal "file type" field. Total message size, including attachments, can be up to 10MB total. Forbidden File Types: vbs, exe, bin, bat, chm, com, cpl, crt, hlp, hta, inf, ins, isp, jse, lnk, mdb, pcd, pif, reg, scr, sct, shs, vbe, vba, wsf, wsh, wsl, msc, msi, msp, mst. | File, Optional |
Track opens | If you want to track whenever an email gets opened. You can see the data in your Postmark dashboard. | Yes/No |
Track link clicks | Whether you want to track whenever a link inside your email is clicked and in which version(s) you want this tracking to happen. See this data in your Postmark dashboard. | Dropdown |
Server API tokens | By default the action uses API key from plugin tabs. Fill in this file to use another key | Text, Optional |
Unsubscribe workflow endpoint | (Optional) The backend workflow endpoint (or a cloud function) url for unsubscribing subscribers (deleting or changing their status in database) | Text, Optional |
Returned values
Title | Description | Type |
Message ID | ID of the message | Text |
Error code | Error Code | Number |
Message | Message | Text |
Submitted at | Time message was submited | Text |
To | Person the message was sent to | Text |
Cc | Cc recipient email address | Text |
Bcc | Bcc recipient email address | Text |
2) Postmark - Send email DEBUGGER
Allows you send an email debugger
Title | Description | Type |
From | Sender email. You can change the "From" field at https://account.postmarkapp.com/signature_domains. Also, it's possible to write in this field a different from name, like this, without quotes: "Vinicius Brito support@unlimitedbubbling.dev" instead of just the email "support@unlimitedbubbling.dev". | Text, Required |
To | Recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Required |
Reply to | Message reply | Text, Optional |
Subject | Email's subject | Text, Optional |
Text body | Plain text email body. Example: Hello! | Text, Optional |
HTML Body | Email body with HTML tags. Example: <b>Hello</b> <img src=\"cid:image.jpg\"/> | Remember to escape double quotes! | Text, Optional |
Stream ID | Leave empty to send through your default transactional emails stream. Get this ID from your Postmark dashboard, click "Servers", then choose your server, then the message stream you want to sent the message through. If you're in doubt on how any of this works, check https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams. When using a transactional message stream, do mind these rules https://postmarkapp.com/transactional-email. When using a broadcast message stream, do mind these rules https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams and https://postmarkapp.com/support/article/1208-how-to-add-an-unsubscribe-link | Text, Optional |
Attach file(s) | Too many files and the action may time out and fail. A list of files. And by file I mean Bubble's normal "file type" field. Total message size, including attachments, can be up to 10MB total. Forbidden File Types: vbs, exe, bin, bat, chm, com, cpl, crt, hlp, hta, inf, ins, isp, jse, lnk, mdb, pcd, pif, reg, scr, sct, shs, vbe, vba, wsf, wsh, wsl, msc, msi, msp, mst. | File, Optional |
Unsubscribe workflow endpoint | (Optional) The backend workflow endpoint (or a cloud function) url for unsubscribing subscribers (deleting or changing their status in database) | Text, Optional |
Returned values
Title | Description | Type |
Would be sent | Would be sent | Text |
3) Postmark - Send batch email
Allows you send a batch email
Title | Description | Type |
From | Sender email. You can change the "From" field at https://account.postmarkapp.com/signature_domains. Also, it's possible to write in this field a different from name, like this, without quotes: "Vinicius Brito support@unlimitedbubbling.dev" instead of just the email "support@unlimitedbubbling.dev". | Text, Required |
To | Recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Required |
Text body | Plain text email body. Example: Hello! | Text, Optional |
HTML Body | Email body with HTML tags. Example: <b>Hello</b> <img src=\"cid:image.jpg\"/> | Remember to escape double quotes! | Text, Optional |
Reply to | Message reply | Text, Optional |
Subject | Email's subject | Text, Optional |
CC | Cc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
BCC | Bcc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
Stream ID | Leave empty to send through your default transactional emails stream. Get this ID from your Postmark dashboard, click "Servers", then choose your server, then the message stream you want to sent the message through. If you're in doubt on how any of this works, check https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams. When using a transactional message stream, do mind these rules https://postmarkapp.com/transactional-email. When using a broadcast message stream, do mind these rules https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams and https://postmarkapp.com/support/article/1208-how-to-add-an-unsubscribe-link | Text, Optional |
Attach file(s) | Too many files and the action may time out and fail. A list of files. And by file I mean Bubble's normal "file type" field. Total message size, including attachments, can be up to 10MB total. Forbidden File Types: vbs, exe, bin, bat, chm, com, cpl, crt, hlp, hta, inf, ins, isp, jse, lnk, mdb, pcd, pif, reg, scr, sct, shs, vbe, vba, wsf, wsh, wsl, msc, msi, msp, mst. | File, Optional |
Track opens | If you want to track whenever an email gets opened. You can see the data in your Postmark dashboard. | Yes/No |
Track link clicks | Whether you want to track whenever a link inside your email is clicked and in which version(s) you want this tracking to happen. See this data in your Postmark dashboard. | Dropdown |
Var 1 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 2 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 3 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 4 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 5 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 6 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 7 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 8 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 9 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Var 10 | Use this in the email body as {{var1}}. Is a list of anything parseable as text. Accepts text, number, date, images, files and yes/no. Note that images and files will be rendered as their URL text, like "//myapp.com/file.jpg". | Anything, Optional |
Server API tokens | By default the action uses API key from plugin tabs. Fill in this file to use another key | Text, Optional |
Unsubscribe workflow endpoint | (Optional) The backend workflow endpoint (or a cloud function) url for unsubscribing subscribers (deleting or changing their status in database) | Text, Optional |
Returned values
Title | Description | Type |
Message ID | ID of the message | Text |
Error code | Error Code | Number |
Message | Message | Text |
Submitted at | Time message was submited | Text |
To | Person the message was sent to | Text |
Cc | Cc recipient email address | Text |
Bcc | Bcc recipient email address | Text |
4) Postmark - Send Template email
Allows you send an email template
Title | Description | Type |
From | Sender email. You can change the "From" field at https://account.postmarkapp.com/signature_domains. Also, it's possible to write in this field a different from name, like this, without quotes: "Vinicius Brito support@unlimitedbubbling.dev" instead of just the email "support@unlimitedbubbling.dev". | Text, Required |
To | Recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Required |
Template ID | ID of the template to use | Text, Required |
Template Model | JSON Object containing the variables to use inside the template | Text, Required |
Reply to | Message reply | Text, Optional |
CC | Cc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
BCC | Bcc recipient email address. Multiple addresses are comma separated, like this (without quotes) "email1@example.com,email2@example.com,email3@example.com". Max 50. | Text, Optional |
Stream ID | Leave empty to send through your default transactional emails stream. Get this ID from your Postmark dashboard, click "Servers", then choose your server, then the message stream you want to sent the message through. If you're in doubt on how any of this works, check https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams. When using a transactional message stream, do mind these rules https://postmarkapp.com/transactional-email. When using a broadcast message stream, do mind these rules https://postmarkapp.com/support/article/1207-how-to-create-and-send-through-message-streams and https://postmarkapp.com/support/article/1208-how-to-add-an-unsubscribe-link | Text, Optional |
Attach file(s) | Too many files and the action may time out and fail. A list of files. And by file I mean Bubble's normal "file type" field. Total message size, including attachments, can be up to 10MB total. Forbidden File Types: vbs, exe, bin, bat, chm, com, cpl, crt, hlp, hta, inf, ins, isp, jse, lnk, mdb, pcd, pif, reg, scr, sct, shs, vbe, vba, wsf, wsh, wsl, msc, msi, msp, mst. | File, Optional |
Track opens | If you want to track whenever an email gets opened. You can see the data in your Postmark dashboard. | Yes/No |
Track link clicks | Whether you want to track whenever a link inside your email is clicked and in which version(s) you want this tracking to happen. See this data in your Postmark dashboard. | Dropdown |
Server API tokens | By default the action uses API key from plugin tabs. Fill in this file to use another key | Text, Optional |
Unsubscribe workflow endpoint | (Optional) The backend workflow endpoint (or a cloud function) url for unsubscribing subscribers (deleting or changing their status in database) | Text, Optional |
Returned values
Title | Description | Type |
Message ID | ID of the message | Text |
Error code | Error Code | Number |
Message | Message | Text |
Submitted at | Time message was submited | Text |
To | Person the message was sent to | Text |
Cc | Cc recipient email address | Text |
Bcc | Bcc recipient email address | Text |
FAQ
How to use βUnsubscribe workflow endpointβ in the workflow
Providers like Gmail and Yahoo have stated that theyβll enforce the one-click method for unsubscribing starting in June 2024. To include a one-click unsubscribe method you need to first create a workflow that deletes or updates the subscribers that have unsubscribed.
- To create this endpoint head over to your bubble app and click the search bar at the top left.
2. At the bottom of the list click the 'Backend workflows' page.
3. Create a new api workflow.
4. Give it a name and fill in the data as shown below:
5. Add to it an action for updating or deleting a record in the database.
In this example I update the isSubscribed property of the user whose email comes into the workflow from outside.
6. Then go to the Settings β Api page of your app.
There you will find the url of your workflow webhooks.
7. Copy the url, and append the name of the workflow you created previously to it. For example:
https://zeroqode-demo-33.bubbleapps.io/version-test/api/1.1/wf/unsubscribe
That's it. You can now pass this url to the Send email actions of of the plugin and the plugin will attach the necessary List-Unsubscribe-Post and List-Unsubscribe headers to your email.
π‘
Unsubscribe headers do not assure you of getting the βUnsubscribeβ button on top of your emails. That is button is displayed depending on every email provider conditions that have to be met for that purpose.
So we suggest you even with Unsubscribe headers in the email to keep the βUnsubscribeβ link in your emails if you want to be sure the users will have that option.
π‘
Usually unsubscribe is managed by Postmark, and if you want to implement your own Unsubscribe process as shown above, keep in mind that you have to get Postmark team approval for that.
π‘
Unsubscribe managed by Postmark is shown here.
Changelogs
Update 19.11.24 - Version 1.21.0
- Minor update(Marketing update).
Update 15.09.24 - Version 1.20.0
- Minor update (Marketing update).
Update 24.07.24 - Version 1.19.0
- Minor update .
Update 18.07.24 - Version 1.18.0
- New Send Template Email action.
Update 19.06.24 - Version 1.17.0
- Updated demo/service links.
Update 31.05.24 - Version 1.16.0
- "Unsubscribe workflow" field made optional for all actions.
Update 20.05.24 - Version 1.15.0
- Added "Unsubscribe workflow endpoint" field.
Update 15.05.24 - Version 1.14.0
- Internal Changes.
Update 14.05.24 - Version 1.13.0
- Internal Changes.
Update 03.05.24 - Version 1.12.0
- minor update.
Update 22.04.24 - Version 1.11.0
- Upgraded to node-18, added detail return values Error code, Message,To, Cc, and Bcc.Added check for empty attached files.
Update 12.04.24 - Version 1.10.0
- Acquired by Zeroqode.
Update 23.02.23 - Version 1.9.0
- Batch email WF action now returns message ID for easier logging..
Update 23.02.23 - Version 1.8.0
- Single email WF action now returns Message ID for easier logging..
Update 21.10.22 - Version 1.7.4
- Description update.
Update 14.09.22 - Version 1.7.3
- Description update..
Update 24.08.22 - Version 1.7.2
- Added "buy me a coffee" link in the description πβ.
Update 27.07.22 - Version 1.7.1
- Do you rely on this plugin commercially and want to fund maintenance so it never stops working? Email me, the author π.
Update 17.03.21 - Version 1.7.0
- Did anyone said... VARIABLES in email body? New batch (500 at once) action that allows variables in the email body..
Update 20.01.21 - Version 1.6.0
- Added two new fields to manage link tracking and email open tracking..
Update 22.12.20 - Version 1.5.1
- Quick adjustment, marked "Subject" field as optional. .
Update 22.12.20 - Version 1.5.0
- Added CC and BCC fields. Split fields into different sections for clarity on what's mandatory..
Update 26.11.20 - Version 1.4.0
- Yet another improvement on debugger action..
Update 20.11.20 - Version 1.3.0
- Improvement on debugger action.
Update 20.11.20 - Version 1.2.1
- Field description update..
Update 20.11.20 - Version 1.2.0
- Debugger action.
Update 05.11.20 - Version 1.1.3
- Fix to "Only absolute URLs are supported" error when using URLs already with protocol..
Update 01.10.20 - Version 1.1.2
- "JScomp is not defined" error fixed.
Update 27.09.20 - Version 1.1.1
- Description update.
Update 27.09.20 - Version 1.1.0
- Now with attachments, message streams (for broadcast, not just transactional emails), reply to address and better docs..
Update 21.07.20 - Version 1.0.0
- First public.
Update 06.07.20 - Version 0.0.3
- Long text fields update.
Update 03.07.20 - Version 0.0.2
- Icon update.
Update 03.07.20 - Version 0.0.1
- First!.