Flows

Flows are automations. A flow waits for something to happen, then runs steps. For example: when a form is submitted, create a row and notify a person.

Flows has a builder. Each flow reads like a sentence: When a trigger happens, then the actions run. You can add conditions with and only if.

Open Flows

Flows has four tabs:

  • Recipes: ready-made flows. Pick one, then choose your own boards, people, and templates.
  • Runs: the history of every run.
  • Webhooks & email-in: the addresses and webhooks that start flows.
  • Trash: deleted flows.

If Flows is off for your workspace, the page says so. If your role cannot see automations, the page says You don’t have access to Flows.

Build a flow

  1. Select New flow, or start from a recipe.
  2. Choose a trigger, such as Row is created, Status changes, Task is done, Time entry added, Note is created, or Form is submitted.
  3. Add conditions if you need them.
  4. Add actions. Available actions include:
    • Create a row, or update a row
    • Create a note from a template
    • Add a time entry
    • Notify people
    • Send an email
    • Send an outgoing webhook
    • Call a URL
    • If / otherwise
  5. Select Test the draft with sample data to check it. Tests are free.
  6. Select Publish. Read the note, then select Publish and turn on.

A published flow runs as Automation on behalf of you. It can only do what you are allowed to do. It checks your access at every step.

Call a URL (HTTP request)

Add the Call a URL step to send a request to another service when the flow runs.

  1. Pick the method: GET, POST, PUT, PATCH, DELETE or HEAD.
  2. Enter the URL. It must be a public https:// address on the default port. Variables are not allowed in the URL.
  3. Add headers if the service needs them. For an API key, an admin saves it in the vault first. Then write {{secret.NAME}} in the header value, for example Authorization: Bearer {{secret.API_KEY}}. The key is never stored in the flow and never shown in Runs. Admins choose which sites each secret may be sent to.
  4. Write the body as one JSON object. Put variables in quotes, for example {"name": "{{body.name}}"}. GET and HEAD requests have no body.

Safety: private, local and cloud-metadata addresses are blocked, also after DNS lookups and redirects. A run has 30 seconds in total, the response is capped at 256 KB, and one run can make at most 10 calls or actions. Runs show the host, status, time and safe response headers, never the request headers. A test run never calls the URL.

Schedules

Choose Schedule in the builder. Pick every N minutes or hours, daily, weekdays, weekly or monthly. Weekly day numbers use 0 for Sunday through 6 for Saturday. You can also enter a five-field cron expression. Choose an IANA timezone such as Europe/Budapest. The default is your workspace timezone. The next three runs appear in the workspace timezone.

Starter runs at most every 15 minutes. Pro and higher plans allow every five minutes. Invalid cron, timezone or interval settings show an error below the fields.

A missing time when clocks move forward runs at the next valid minute. A repeated time when clocks move back runs once. After downtime, only the latest missed run starts. Earlier missed slots appear as skipped (server was down) in history.

Test and fix runs

  1. Open Runs.
  2. Filter by flow or status.
  3. Open a run to see its steps and values.
  4. To run the same input again, select Replay. This creates a new run.

Inputs and outputs show redacted values. History is kept until you clear it.

Receive events by email or webhook

  1. Open Webhooks & email-in.
  2. Copy the Forwarding address or the webhook URL.
  3. Use Send a test event to check that it arrives.
  4. To accept email only from some people, add a sender with Address or @domain.

Runs and limits

A run is one trigger, with up to 10 steps. Your workspace has a monthly number of included runs. The page shows how many are used. If they run out, new events wait until you add a pack or the month resets.