Customizable email templates via Connectors - Brevo

Hello everyone,

I want to show a solution I used to work around the current limitation of formatting emails sent from Tulip, using a free external solution .

Inspired by Gio’s post on using SendGrid to send emails, I researched free solutions with a higher - free - daily send limit and discovered that Brevo (formerly SendinBlue) offers 300 emails/day for free, making it practical for most of our current applications.

Steps to Configure Brevo and Create the Connector in Tulip

  1. Create a free Brevo account at brevo.com.

  2. Verify your sender email and domain in Brevo. If you want emails to appear as sent from your own domain, you need to validate your domain in Brevo’s settings (follow the instructions there).

  3. Generate an SMTP or API key in Brevo for authentication.

  4. Set up an HTTP connector in Tulip :

  1. Create a function to Send Email:
  • Add to Request Headers:

    • api-key: your Brevo API Key
  • Body: JSON structure containing fields like to, from, subject, and htmlContent. You can place variables from Tulip’s Expression Editor in these fields to personalize your emails dynamically.

  • Content-Type: application/json

Example:

{
    "sender": {
        "name": "Engineering Tool Request",
        "email": "engineering@zaleco.eu"
    },
    "to": [
        {
            "email": ""
        }
    ],
    "subject": "",
    "htmlContent": ""
}

You can create a separate function for each template where you would customize the Sender Name and Email.

  1. Build your app logic in Tulip to call this connector whenever you need to send an email, such as after completing a form, ending a workflow step, or logging a downtime reason.
    This is where you place your HTML inside an expression to be passed to the connector.

Custom HTML Formatting and Templates

We used ChatGPT to generate clean HTML templates, previewed them, and then asked ChatGPT to replace static placeholders with clear markers (e.g., {{variable_name}}) for easy binding in Tulip’s Expression Editor.

You can specify ChatGPT to already place the “+” signs required for formatting so it becomes even easier to edit.

!!! Be careful as blank variables will break the trigger execution resulting in unsent email notification.
If you cannot avoid having blank variables from the step input logic getting in the expression, try providing a default value for them with the ISNULL function.

Additionally, you can use Brevo’s built-in email editor to design visually appealing templates, then copy the generated HTML into your app logic.

This has been a simple way for us to get custom emails working in Tulip while keeping control over how they look and who they come from.

Until Tulip adds native email templates and editor, using a connectors like this is a practical workaround.

If you give it a try, let me know how it goes or share any tips you find along the way.
Would love to hear what’s working for others too. :victory_hand:

1 Like