---
title: "Triggers and actions"
description: "The trigger and actions that run in a workflow today, what each one needs and uses, and what you may see in the builder that is not available yet."
last_updated: "2026-10-21"
lang: "en"
status: "beta"
canonical: "https://matchai.co/docs/guide/workflows/triggers-and-actions"
---

# Triggers and actions

> The trigger and actions that run in a workflow today, what each one needs and uses, and what you may see in the builder that is not available yet.

**In closed beta. This feature is open to a small group of professionals while we finish it, so it may change. It is coming to every account.**

Source: https://matchai.co/docs/guide/workflows/triggers-and-actions

Every workflow starts with one trigger, then runs its actions one after the other. Each action works on what the step before it produced. You add them all with **Add step**, from the **Add a step** list.

These are the steps that run today:

| Step | Where to find it | Needs | Uses Energy |
|---|---|---|---|
| **When email is received** | **Triggers** | Gmail or Outlook (Email) | No |
| **Analyze** | **Matchai Intelligence** | Nothing to connect | Yes, each run |
| **Create HubSpot contact** | **CRMs** → **HubSpot CRM** | HubSpot | Yes, each run |

Connect Gmail, Outlook (Email) and HubSpot in **Settings → Connectors**. See [Matchai Connectors](https://matchai.co/docs/guide/connectors).

## When email is received [#when-email-is-received]

Starts the workflow when a new email arrives in your connected Gmail or Outlook inbox.

| Setting | What it does |
|---|---|
| **Email provider** | **Gmail** or **Outlook**. Connect the matching service first. |
| **From** contains | Only emails whose sender contains one of these values, such as a full address or a domain. |
| **Subject** contains | Only emails whose subject line contains one of these values. |

Type a value and press Enter. Add as many as you need.

How the filters match:

- **Within one filter, any value is enough.** With two senders under **From** contains, an email from either one starts the workflow.
- **With both filters filled in, an email must match both.** The sender must match **From** and the subject must match **Subject**.
- **Capital letters make no difference.** A part of the address is enough: a domain matches every sender at that domain.
- **With both filters empty, every new email starts the workflow.** The step shows a warning so you do not miss it.

What it passes on: the sender, the subject and the text of the email.

Good to know:

- **Only new emails count.** Emails already in your inbox, and emails that arrive while the workflow is off, are not picked up.
- **Every new email starts a run, matching or not.** An email that does not match your filters stops at this step, with a message saying it did not match. That is normal.
- **Testing needs no inbox.** **Test** feeds the workflow a sample email instead, so you can try it before you connect Gmail or Outlook.

## Analyze [#analyze]

Reads the email from the step before it and pulls out the lead's details. It reads the sender and the subject as well as the text, since a lead's email address is often only in the sender line. Connect it straight after the trigger.

It looks for four kinds of detail, ticked under **What to extract** when you add the step:

| Topic | What it finds |
|---|---|
| **Lead contact info** | First name, last name, email and phone |
| **Lead intention** | What the lead wrote, and what they want: a visit, information, a call back, the price |
| **Listing reference** | The address or MLS number the lead mentions |
| **Budget & timeline** | The budget range they give, and how soon they want to move |

When you test the workflow, the details it found show on the step.

**Energy:** **Analyze** uses Matchai Energy each time it runs. Hover over the step on the canvas and an Energy mark appears, labelled **Uses Matchai Energy**. If you are out of Energy, the run stops at this step.

## Create HubSpot contact [#create-hubspot-contact]

Creates a contact in your HubSpot account from the details the step before it found. Put it after **Analyze**. Connected straight to the trigger, it stops and asks you to put an **Analyze** step in between.

**How it matches contacts.** HubSpot recognises a contact by email address:

- If HubSpot already has a contact with that email, the contact is updated instead of duplicated.
- Two leads with the same name but different emails stay two separate contacts.
- If **Analyze** found no email address, the sender's address is used.

**Settings:**

- **Fields to fill in HubSpot** lists the fields from your own HubSpot account, grouped under **About them**, **The lead**, **Where they're located**, **Their work**, **Your custom fields** and **Other**. Tap each field you want filled in. **Email** is always included. Matchai's AI fills each field you chose from the lead's details, and leaves a field empty when it has nothing to put in it.
- **Attach a note to the contact's activity timeline** adds a short summary of the lead, such as what they want and which listing, to the contact's activity in HubSpot. If the note cannot be added, the contact is still created.

When **Analyze** found nothing at all, for example in a newsletter, this step creates nothing.

**Energy:** filling in the fields uses Matchai Energy each run, and the note uses a little more. If you run out just before the note, the contact is still created, without the note.

**Tests:** in **Preview**, nothing is sent to HubSpot. You see the contact that would be created. A **Live** test creates it for real.

This step creates the contact in HubSpot only. It does not add the lead to your [Matchai contacts](https://matchai.co/docs/guide/contacts).

<Callout title="Why it works this way">
An email is free text, and HubSpot needs a name in the name field and an address in the email field. **Analyze** turns the message into clear details first. The HubSpot step then fills only the fields you picked, so nothing lands in your CRM that you did not ask for.
</Callout>

## Not available yet [#not-available-yet]

You may see these in the builder. They do not run yet, so do not build a workflow on them.

| What you see | Where |
|---|---|
| **On a schedule**, marked **Planned** | **Triggers** |
| **On webhook call**, marked **Planned** | **Triggers** |
| **Condition**, marked **Planned** | **System** |
| **HTTP Request** and **Database Query** | **System** |
| **Client info**, **Tenant info**, **Peer professional info**, **Document summary** and **Appointment request** | **What to extract**, in **Analyze**. Today **Analyze** reads every email for the four lead topics above. |

**Trigger manually** is in the list too. It starts a workflow when you choose **Run**. Every action available today works on an email, so a workflow started by hand has nothing to work on and stops at its first action. Use **When email is received**, and try it with **Test**.

## Sitemap

- [Every page of Matchai Docs](https://matchai.co/docs/sitemap.md)
- [llms.txt](https://matchai.co/docs/llms.txt)
