Skip to content
New: simulate any flow against real records before it goes live. See what's new →

CRM

Flows: fewer triggers, and the data you needed was already there

A pass over what starts a flow. The list is shorter, most triggers stopped asking a question they already knew the answer to, and several things that looked broken were.

Triggers no longer ask which object they are about

Nearly every flow used to open by making you pick an object - including the ones that could not possibly need it. A form already knows what it wrote. A meeting enrolls the contact it matched. A webhook’s job is to accept data, not to classify it. Only Record created, Record updated, On a schedule and Manual still ask, because for those the object genuinely is the question: “a record was created” is not a thing that happens, “a deal was created” is.

A flow that already has an object set keeps it - it is still filtering, so hiding it would mean a flow silently not running with nothing on screen to explain why. The panel now shows it and offers one button to drop it.

Field changes, the chat triggers and campaign feedback are retired

Existing flows on any of them keep running exactly as they did. They simply are not offered any more, and each one’s panel now names what to use instead.

Field changes was a second way of saying what Record updated already says: narrow it to the field, then use a Filter step for the value. The eight chat triggers all fired after the chat runtime had already written or matched a record, so Record created reaches the same moment without asking anyone to know the difference between “lead captured”, “agenda completed” and “lead qualified”. Campaign email feedback pointed a flow at a bulk send, where every open enrolled a run - the volume case automation is worst at, and the one campaign reporting already answers.

A new trigger for the mail your team actually sends

Sales email engaged fires on one-to-one email sent from a record’s timeline: opened, clicked, either, replied, bounced or marked as spam. Opens and clicks enroll on the first one only, so someone re-reading the same email four times starts one run rather than four. Replies are genuine replies - we match the message back to the one you sent, so a forwarded chain does not count.

The meeting time comes with the meeting

Every meeting trigger now hands the flow the booking itself - start and end time, duration, the booker’s timezone, host, location, join link, and the reschedule and cancel links - so “remind them the morning before” does not need a lookup step. Load recent data on a meeting trigger loads a real meeting, rather than asking you to pick an object from a control that is no longer there.

The webhook accepts whatever you send it

It used to accept JSON objects and reject everything else with a 400 - including application/x-www-form-urlencoded, which is what most form tools post. It now reads JSON (objects, lists or a bare value), form posts, file uploads, XML, CSV, JSON lines, plain text and query parameters, and reads the bytes rather than trusting the content type, because senders mislabel constantly. There is no payload shape that produces “this sample has no readable fields” any more.

And you no longer have to publish a flow to test its webhook. The URL was rejecting your own test payloads until the flow went live - which meant publishing something you had not finished building in order to finish building it. A draft now accepts and stores payloads for mapping; publishing is still what makes it run.

Captured test data reads as fields and values

The Test data panel showed dotted paths and raw values. It is now a two-column table with the field name in plain words and the value formatted - dates as dates, yes/no instead of true/false - with the token to type by hand on hover.

Four fixes

  • Add another step did nothing on a flow that was still just its trigger.
  • Listen for test data took two clicks: the first one started listening and the panel immediately said it had not.
  • The trigger tile on the canvas was the same orange bolt whatever the flow listened to, so every flow looked identical on the board. It now shows its own trigger’s icon and colour, matching the picker.
  • The engagement condition and the meetings booking-page filter were never saved. You set them, the flow autosaved, and they came back empty - so those flows ran on every booking page and every engagement type. Both persist now.

Get the new stuff the day it ships

Every plan runs the same, latest platform.