Sending Emails

This page is for application designers who want to send notifications via email.

Overview

To send email notifications to application users, configure a File Exporter. This allows you to email information about data in PhixFlow and optionally to add a file as an attachment.

Email Accounts Setup

In order to send an emails, PhixFlow must have an Email Account from which to send emails. Email accounts are configured for the whole PhixFlow instance rather than in an application. This means you need administrator privileges to create an account.

Step 1  Create an email account

If there is no PhixFlow email account, ask your PhixFlow administrator to create one. If you are using a PhixFlow hosted instance, email support@phixflow.com. Also ask for permission to edit the account.

Step 2  Configure the email account

  1. In the repository, go to Full RepositoryEmail Accounts. 
  2. Double-click the account name to open its properties.
  3. Make a note of the Login name as you will need to know it when testing.
  4. Configure the email account as required; see Email Account properties for details of the options. Set
    • Outbound: tick
    • Enabled: tick
  5. Save your changes.

Step 3  Test the email account

  1. Reopen the email account.
  2. In Test To enter your email address.
    If the Test To option is not visible, make sure Outbound is ticked.
  3. In the properties toolbar, click  More Options and select  Test Configuration.
  4. PhixFlow sends an email to the address specified in Test to.
  5. Check your email. There should be an email address from the emal account's Login address, for example notifications@phixflow.com.

Sending an Email

You may want to add an attachment to an email. 

In this example, we will send an email with an attachment that contains a list of processed employees for a particular day.

You can download the example data from the PhixFlow Learning Centre

Step 1  Create an analysis model to generate the attachment

  1. Create an analysis model or open one that contains the required data; see Analysis Models for Batch Processing Data and Exporting to a File.
  2. Add the table that contains the data you want to export. Hover your mouse pointer over the table and in the popup toolbar, click Static. This means the data remains unaffected when you run the analysis model.
  3. Add a second table called Send Email. This separates the data from generating the email, which gives you more control over the different tasks.

  4. From the analysis model toolbar drag in a  File Exporter onto the canvas.
  5. Connect the table Employees to the file exporter. This pipe will run the file exporter when you run analysis.
  6. Connect the table Employees to the file exporter a second time. PhixFlow opens the pipe properties.
  7. To configure the second pipe to count the records, set:
    • Name: recs.
    • Type: select Look-up.
    • Save your changes.
      Your model should look like this.

Step 2  Configure the File Exporter

  1. In the analysis model, click on the  File Exporter to open its properties.
  2. In Basic Settings, set:
    • Name: to indicate the purpose of the email.
    • Enabled: ticked. 
      Leave this unticked during testing to avoid generating lots of data and emails then tick it when you are ready for the file to be exported and emails to be sent. 
    • File Name: specify the name for the exported file. The file extension must match the type of data being exported.
      • For a simple name, enter text in quotes, for example: "Employees.xlsx"
      • For a dynamically generated name, enter an expression that returnd a string; see Expressions and PhixScriptsFor example: "Employees_"+today()+".xlsx" generates the name Employees_20220831.xlsx.
    • Output Directoryenter an expression to specify where PhixFlow saves the file in the export directory on the server, unless Ignore Base Directory is ticked; see File Exporter for details.
    • Export File as: select the file type for the exported file.
      For this example we are using Excel Spreadsheet.
    • Overwrite existing file: optionally tick to overwrite files that have the same name, 
      for example to have only one Employees.xlsx file on the server at any one time.
    • Header: optionally tick to include column headers in the output file.
  3. In Input Multiplier set:
    • Input Multiplier: enter an expression that evaluates to a list of one or more values. For each value in the list, the internal variable _inputMultiplier will be set to that value. 
      For this example, we want to count the records in the recs pipe, so enter:
         if(countElements(recs) > 0, countElements(recs), 0)
  4. In Send by Email set:
    • Email From: enter the email address set in the email account → Login. For example, notifications@phixflow.com
    • Subject Expression: enter an expression to generate the subject line of the email, for example, "RE: Employee Records "+today()
    • Attach File, tick to attach the exported file to the email.
      Alternatively, leave this unticked if you want the email to include a link to the exported file.
    • Message Expression: enter an expression to generate the message. For example, the following incorporates the value from the Input Multiplier to create a message that tells the recipient how many records were processed:
      "We have processed "+_inputMultiplier.1+" employee records today.".
    • Recipient Expressions → TO Expression, enter an expression that contains the email addresses of the recipients. For example a single address like "info@phixflow.com".

      Here is a screenshot of the input multiplier and file exporter configuration
  5. Save your changes to the file exporter and to the analysis model.

Step 3  Check the analysis model

  1. To run analysis on the table that calls the file exporter, right-click and select  Run Analysis to test it works.
    In our example this table is called Send Email.


Step 4  Set up the Actionflow

  1. From the application home screen click on Screens.
  2. Open the screen from which you want to send the email or create a new screen; see Designing Screens.
  3. From the Serene Grey palette, drag in a Button to send the email. 
  4. Right-click the button and select Add Actionflow. Give the actionflow a meaningful name, for example: Send Email Notification.
  5. In the actoinflow that opens, click on Connection, and select On Click.
  6. From the toolbar, drag an analsyis node onto the canvas and give it a name.
  7. In the toolbar click  Table → List. From the list of tables, drag the table that calls the file exporter onto the analysis node.
  8. Save your changes to the actionflow.
  9. To connect the On Click input to the analysis node, drag a line between the two; see Wiring Actionflows
  10. Save your changes.

The button is now configured to run an actionflow, which:

  • runs an analysis on the model
  • to generate a data file
  • attach the file to an email
  • and sends the email to the recipient.

Step 5  Testing the Configuration

  1. Run analysis on the table that drives the file exporter that sends the email.
  2. Open the  System Console
  3. In the Completed Tasks section, click on the Run Analysis Task you ran in the previous step.
  4. In the Messages for this completed task click on the Emails tab.
    If it is not visible you may need to click on the more menu to see the option.
  5. Check the Status column. It can take a few minutes for an email to be sent and sometimes longer if the attached file is large.
    One of the following common statuses will be set:
    • Ready, the email is produced
    • Incomplete, PhixFlow is trying to send the email.
      Test your email account is working correctly.
    • Sent, the email has been successfully sent.
  6. Check the Files tab for details of the files produced as part of this task.
    This is useful to see if the file exporter ran but the email portion has failed. 
  7. If you do not receive the email,
    • check your email client's Junk folder
    • check the log for errors.

Sending an Email Incorporating Table Data

The following example shows you how to configure PhixFlow to email employee with no telephone number in their record. To identify these employees, we run a lookup that only returns the employee records without a telephone number.

You can adapt the steps by using a lookup that provides the email addressees that you require.

  1. Create an analysis model or open one that contains the required table.
  2. From the toolbar, drag a  File Exporter onto the canvas.
  3. Connect the table to the file exporter, and then connect them a second time.
  4. In the pipe properties that open, set:
    • Name: recs.
    • Type: select Look-up.
    • Filter: set the filter criteria for the lookup, to return only the data you need.
      In this example, the filter allows only records where Telephone is null, as illustrated below:
  5. Save your changes to the pipe.
    The analysis model is similar to our previous example but with the addition of a filter on the lookup pipe, as illustrated here:
  6. The setup for the  File Exporteris the same as the Sending an Email example above, with the following changes:
    • Attach File: unticked as we do not want users to receive a file.
    • Input Multiplier: the expression evaluates to the list of records from the lookup pipe. In our example the lookup pipe is called mtn so we set the _inputMultiplier to: mtn
    • Send HTML: tick to send our contacts a HTML email.
    • Message Expression: as Send HTML is ticked, the message box is treated as a HTML field. This means you can use HTML markup. In our example we want to send a personalised message to the user with their first name and a link to login to PhixFlow; see Expressions and PhixScripts.

      PhixFlow HTML Message
      do(
        "<p>Hi " + mtn.FirstName + ",</p>"+
        "<p>Please login to PhixFlow and update your number.</p>"+
        "<a href='https://phixflow.com/PhixFlow/start.html?application=MyApplication'>PhixFlow Login</a>"
      )
  7. Save your changes.

  8. Run analysis on the table that calls the file exporter to test it works. In our example this table is called Send Email Requests.

When you know the configuration works, connect the button to an actionflow as explained in the Sending an Email above.

Learn More