1. How Workflows is structured
Every workflow has three parts:
A trigger: the event that starts it. A task changing status, a new file landing in the library, a tag getting applied, or an API call coming in.
One or more actions: what happens in response. Pushing an asset to an ad platform, sending a Slack message, updating a board, or calling an AI model against the workflow's data.
A run log: every run is recorded, so if something doesn't fire the way you expected, you can see exactly why.
Workflows are available on every Focal plan. You'll find them in the left-side menu.
2. Setting up your first workflow
This video covers the basics of setting up a workflow. The practical steps are also written down below.
Step 1: Choose your trigger.
There are four trigger types:
Media update: fires on a change to specific media information, like a status change
Media added to library: fires when something new is added to the library in general, or to a specific folder
Task updated; fires when a task on a board is updated, using any field on that board
API trigger: fires when an external system calls Focal directly (more on this in section 5)
Step 2: Set your conditions
Once you've picked a trigger type, set the conditions that need to be true for the workflow to run. Conditions support both "AND" and "OR" logic, and you can refine further with separate filter nodes. For example, you might trigger only when a media item is set to approved status *and* is in landscape aspect ratio, so you can send just those to YouTube automatically.
Step 3: Add your workflow steps.
A workflow can have a single action, multiple chained actions, or branching paths. Chained actions run one after another. For a first workflow, try something simple, like uploading approved landscape assets to YouTube.
Step 4: Publish
Publishing checks your workflow for errors and tries to flag them before it goes live. Focal also keeps version history, so you can track changes to a workflow over time. Once published, the workflow runs automatically whenever its conditions are met, but you can also trigger it manually for a specific piece of media.
Step 5: Monitor with the change log
The change log tracks every run, whether it completed, failed, or didn't run at all, so you can troubleshoot quickly when something doesn't behave as expected.
3. Logic options: condition vs. filter
Condition is an if/else. If the condition is met, the workflow continues. If not, it stops there.
Filter: narrows down what the workflow acts on. Filters support granular criteria, including asset metadata, AI autofill values, and tags.
For example, when you're working from a board, you can reference basically anything tied to the board, the task, or the assets associated with it.
4. Action nodes, in detail
Inside any action, use the @-sign to reference global values, like your space information, or anything already handled earlier in the workflow, including associated assets and the output of previous steps. This comes up constantly in the examples below.
Update media
Set new values on any field, such as changing an approval status automatically based on your trigger conditions.
Upload nodes (Meta, TikTok, YouTube)
We strongly recommend you set filter conditions so only media that's actually ready gets uploaded. This prevents in-progress assets from accidentally reaching your ad accounts.
You'll need to authorize the connection through each ad platform first (for example, confirm you have the right permissions in Meta Business Manager), then select the ad account to upload to.
Slack message
Send messages to a channel or as a DM, to any Slack space you're connected to (your org admin may need to approve the connection). Use @ referencing to attach files, pull in a message generated by an AI node, or mention specific people. Available channels populate automatically once you're connected.
Update or create board tasks
Update any column with any value, or create a new task outright. For example, automatically assign a review task to a specific person whenever a new asset lands in the review stage.
Ask AI
Prompt an LLM with the full creative context available in the workflow, the brief, tags, visuals, and more. Useful for summarizing completed assets or tasks, and can be chained into a Slack message for a custom notification.
For advanced use cases, this node can also output structured data, like a JSON object.
HTTP request
Send and receive data to and from other systems, such as a project management tool used elsewhere in your organization.
We support GET, POST, PUT, PATCH and DELETE. You can also configure Params, Headers, and Authentication.
This is the most technical option, so it's worth setting up alongside a developer.
5. How to use the API trigger to run a workflow and send data into Focal
You can call our API to trigger the Workflow based on conditions in your external systems.
You can also pass data in the request fields to Focal - for example, a brief from an external system.
You also need to pass the API token as "authorization" with the value Bearer <your_token_here> in the request header. Example from Zapier below.








