A workflow is one trigger followed by actions. Select a step in the builder to configure it.

A workflow in the builder: the trigger at the top, then each action in order down the canvas.
Triggers
The trigger is what starts a run. Each workflow has exactly one.
| Trigger | Runs when |
|---|---|
| On a schedule | A time you choose comes round, over and over |
| New item in an RSS feed | A feed publishes a new article |
| Webhook is called | Something calls the workflow’s own URL |
| New item in a Notion database | A row is added, or reaches a status you choose |
| New record in an Airtable table | A row is added, or reaches a value you choose |
| New item published in a Webflow collection | An item is published, or reaches a value you choose |
| New item in a Framer collection | An item is added, or reaches a value you choose. Checked every 15 minutes |
| New post published on Wix Blog | A post is published on the blog |
| New Instagram DM / comment / mention | Someone messages, comments on, or mentions your Instagram account |
| New Facebook message / comment / mention | Someone messages, comments on, or mentions your Facebook Page |
| New Google review | Someone reviews your Google Business location. Checked every 5 minutes |
Instagram and Facebook tell Ocoya the moment something happens, so those runs start straight away. Google doesn’t, so Ocoya checks for new reviews every 5 minutes and each review runs once.
Bluesky, Mastodon, WordPress, Discord and Whop triggers are checked every 5 minutes, so a run can start up to 5 minutes after the message. A Telegram comment starts its run straight away. See What works on each network.
Actions
| Action | What it does |
|---|---|
| Generate social post | Writes a post’s caption and makes its images, none, one, or up to four for a carousel, from one prompt. Reference photos, such as a product’s, are kept as they are |
| Write a reply or text | Writes a reply, an email or an article from a prompt |
| Pick a product | Promotes a different product each time, so all your products get seen |
| Post to … | Publishes to one of your channels — one step per network, so a run says exactly which channel failed |
| Send an Instagram DM / Send a Facebook message | Messages whoever sent the DM, or privately whoever left the comment |
| Reply to the Instagram / Facebook comment | Leaves the text as a reply under the comment |
| Reply to the Google review | Posts the text as the owner’s public reply. A review has one reply, so this replaces any earlier one |
| Delay | Waits before the next step |
| Filter | Continues only when the conditions you set are met |
| HTTP request | Calls any URL, to fetch data or send it to your own systems |
| Format text | Combines, shortens, cleans up or changes the case of text |
A reply step only makes sense after the trigger it answers, so the builder greys it out under any other trigger and says why.
Filter is what makes engagement workflows precise. A condition can check whether text contains, doesn’t contain, is exactly, or isn’t a value, or whether it’s empty. That’s how a workflow answers only one- and two-star reviews, or only comments carrying your keyword.
Steps pass values down the chain. A trigger’s text, a generated reply or a review’s star rating can be used in any later step, rather than you retyping it.
Writing with AI
Generate social post and Write a reply or text do the writing and drawing, always as your brand. The prompt is what makes them good or useless. Write a reply produces filler. A prompt that names who wrote, what they said, your tone, and how long the answer should be produces something you’d send.
Use the trigger’s own values in the prompt, such as the person’s name, what they wrote, or a review’s stars, so every run writes for the person in front of it.
Credits
The run costs 1 credit, and that covers the whole chain, the AI writing included. A workflow with four steps costs the same as one with two. See What are credits?