Before proceeding, make sure you understand how to send basic notifications.

Overview

This guide explains how to send emails with document attachments through the notification plugin. You’ll learn how to:

  • Configure email templates with dynamic content
  • Reference generated documents as attachments
  • Implement the complete email notification flow in your processes

Prerequisites

  1. A configured notification template (see Managing notification templates)
  2. Properly defined Kafka topics for the notification plugin
  3. Files to attach (such as generated documents or uploaded files)

Implementing email notifications with attachments

Let’s walk through a common scenario: sending a customer a copy of their account details document via email.

Document Generation

If you need to generate the document first, see the document generation guide.

Understanding document references

When you generate a document, as explained in the Generating documents guide, you need to reference two key pieces of information:

  1. minioPath: The storage location of the generated document
  2. documentType: The type identifier used to create the attachment filename

These values are stored in the process instance with the following structure:

generatedDocuments.generatedFiles.{{customId}}.{{templateName}}.minioPath
generatedDocuments.generatedFiles.{{customId}}.{{templateName}}.documentType

For example, if your document generation used:

  • customId: “ClientsFolder”
  • templateName: “AccountCreation”

The paths would be:

...
  "attachments": [
    {
      "path": "${generatedDocuments.generatedFiles.ClientsFolder.AccountCreation.minioPath}",
      "filename": "${generatedDocuments.generatedFiles.ClientsFolder.AccountCreation.documentType}.pdf"
    }
  ]

You can verify these values in the process instance details:

Step-by-step implementation

1

Prepare your email template (notification template)

Configure the template you’ll use for the email:

  • Define subject line, body text, and placeholders for dynamic content
  • Set proper HTML formatting if needed
  • Test the template to ensure it displays correctly

See Managing notification templates for detailed instructions.

2

Verify Kafka topic configuration

Confirm that the required Kafka topics are properly defined:

  1. Navigate to FlowX Designer → Platform Status
  2. Select notification-plugin-mngt
  3. Expand kafkaTopicsHealthCheckIndicator → details → configuration → topic → notification → internal
  4. Verify that the input and output topics for email notifications are listed

3

Add a Send Message Task (Kafka) and Receive Message Task (Kafka)

In your process definition:

  1. Open the process definition in your project in FlowX Designer
  2. Add a Send Message Task (Kafka) after the document generation step
  3. Add a Receive Message Task (Kafka) after the Send Message Task

4

Configure the email request payload (Send Message Task)

On the Send Message Task, add a Kafka send action, add the corresponding kafka topic and create the JSON payload containing all information needed for the email:

{
  "templateName": "accountDetails",
  "channel": "MAIL",
  "receivers": ["something@email.com"],
  "language": "en",
  "contentParams": {
    "firsInput": "${application.client.firstName}",
    "secondInput": "${application.client.lastName}"
  },
  "attachments": [
    {
      "path": "${generatedDocuments.generatedFiles.ClientsFolder.AccountCreation.minioPath}",
      "filename": "${generatedDocuments.generatedFiles.ClientsFolder.AccountCreation.documentType}.pdf"
    }
  ]
}

Key parameters:

  • templateName: The name of your configured email template
  • language: The language code matching your template’s language version
  • receivers: Array of email addresses (can use process data variables)
  • contentParams: Values to replace template placeholders
  • attachments: Array of files to attach, with filename and minioPath/storage path
5

Configure the email success handler (Receive Message Task)

On the Receive Message Task, add a Kafka receive action, add the corresponding kafka topic and configure the node with the following properties:

  • Go to Node config tab
  • Under Data stream topics select Custom
  • Add the topic name
  • Click Save

6

Run the process

Run the process and check the result in the process instance details:

Request payload reference

Required fields

FieldDescriptionExample
templateNameThe unique identifier of your email template”accountDetails”
channelThe delivery channel (use “MAIL” for email)“MAIL”
languageLanguage code (must match a template language)“en”
receiversList of email addresses to receive the message[“customer@example.com”]

Optional fields

FieldDescriptionExample
contentParamsKey-value pairs for template variable replacement{"firstName": "John"}
attachmentsList of files to attach to the emailSee below

Attachment structure

Each attachment requires:

{
  "path": "${path.to.file.in.storage}",
  "filename": "desired_filename.extension"
}
  • path: References the storage location (usually a MinIO path from document generation)
  • filename: The name recipients will see for the attached file (can include process variables)

Testing and troubleshooting

After configuring your email notification:

  1. Verify that variables resolve correctly in the template and attachment references
  2. Check email delivery to test recipients
  3. Review notification plugin logs if issues occur

Common issues

ProblemSolution
Email not receivedVerify template name, receiver address, and SMTP configuration
Missing attachmentCheck that the MinIO path is correct and the file exists
Template errorsEnsure all variables in template have corresponding values in contentParams
Variable resolutionConfirm process variables use the correct path (check in process instance view)

For further assistance, check the notification plugin logs in your environment.