4 min read

How to send an Email

Use workflows to send emails to any recipient(s). Simply choose your trigger, set any required conditions then use the "send an email" action.

Directus has the ability to send emails using Flows. This can be any address, not just for users within your project. This article will show you how to configure your workflows to send emails to a list of recipients.

To send a email, you will need a workflow in Flows with a trigger. Then create the action "Send an Email" and add the recipient(s). Finally, compose the email and save your workflow.

Email is a widely accepted communication tool in the workplace but they can easily become overwhelming or lost in a busy mailbox. So the first question to ask is Do I really need this?  and if so, when is the best time in the workflow to send this?

Directus Flows can help. You can introduce intelligent routing to send emails at specific points in your workflow and ensure the message is sent at the right moment. This is where the status field comes in.

A status field can hold as many states as you require and is the perfect parameter to use to target email notifications. Let's create a basic workflow using the status field to filter submissions.

Step 1: Recipients

To send emails, you will need to have recipients. Make note in a seperate text document (to copy from later) all the recipients that will be included in this workflow. In a business setting, consider using a shared mailbox or mailing list to ensure new staff are included without having to update the Flow.

Step 2: Create a Trigger

To begin, click on the cog icon to open the settings, then click Flows. Create a new flow to open the trigger options window.

Name the flow accordingly and move onto the Trigger Setup. I'm wanting to use a trigger from within Directus so I'll use an Event Hook.

Example of setting up an Event Hook Trigger

I've chosen to set the scope to items.create and items.update to capture all events when something is created or updated in my chosen collection(s).

Now I have my canvas for creating my workflow.

Empty canvas for my flow

Step 3: Filters

Next, use a filter for the incoming events to bring context to the workflow. For this example, I'm wanting to email my recipients when a record is requesting approval. I will use a status that I created called "Request Approval".

Click the (+) and choose Condition. Give it a memorable name and create a filter on the $trigger.payload.status.

Example of a condition that filters the status field

In the example above, you'll see I've included the status field is in the payload as a filter. If the payload does not contain the status, or the status is not "Request Approval" then the false route will be taken. This is the code to use in the Condition Rules.

{
    "$trigger": {
        "payload": {
            "status": {
                "_eq": "Request Approval"
            }
        }
    }
}

The $trigger parameter contains the payload, collection and key as the item ID (or keys as a list of item ID when triggered by items.update). The payload will only contain the fields submitted when saving the record.

💡
Default values are not included. So you can only filter on the fields and values that are submitted. If you do need information from the record, you can Fetch Data using the collection and key/keys first, then perform the Condition.
Example of the condition in place

Now the condition is in place. You'll notice there is now a Tick and Cross attached to this card. The tick is the positive/true response route and the cross is the negative/false route.

Step 4: Send the Email

Click the tick to create a new step in the workflow and choose Send Email from the list of options.

Example of the email options

Add recipients by typing the email address into the To field and pressing Enter. Multiple recipients can be added and will be listed as purple buttons below the input field.

💡
To remove a recipient, simply click on the email address

Add a Subject and Body to the email and Save the changes.

That's it. Save the workflow and give it a go. Here is an example of the email sent from the workflow to my gmail address.

Example of the email

The From address for cloud projects will be the name of your project and the email address [email protected]. Premium plans use a dedicated server and will allow you to set a branded email address to use.

Conclusion

In this article I have demonstrated how to create a workflow using Flows to send emails to any address. This can be repeated for any other collections or you can include multiple collections in your trigger if relevant. There is the temptation to expand the workflow to include more information such as links, names, content etc. This is possible but can be difficult to maintain with diverse data. Simplicity is best.

By continuing to use our website, you consent to use essential cookies. We also use optional tracking cookies which help us gather statistics to improve our services. Do you consent to these cookies?

I Consent Do not track