Workflows
Workflows are the engine behind your apps. They get, send, transform, and combine data — and App Builder uses them as the source of truth for what your app shows and does.
What workflows do for your apps
In App Builder, you don't typically build workflows from inside the app. You build them once in the Workflow Builder, run them, then use them in any number of apps.
Workflows are good for:
- Pulling data from M3 so an app can show or search it
- Saving data back when a user submits a form or completes an action
- Combining multiple sources (M3, custom tables, external APIs) into a single output the app can consume
- Sending notifications like email or Teams messages from an app
- Running on a schedule to keep data fresh in the background
If your app needs to do something dynamic that's not just reading a single table, a workflow is what makes it possible.
Creating workflows
Creating a workflow is done in the Vince Platform. The full reference and tutorials live in the Vince Platform docs:
- Workflows reference — components, triggers, mapping, error handling
- Components in Workflow builder — full component catalog
- Create and Execute Workflows — video tutorial
- Create workflow with Table Component — video tutorial
- Configure Workflows with Filters — video tutorial
Adding a workflow as a resource in App Builder
Once you have a workflow that does what you need:
- Open your app in App Builder.
- Open the Resources panel.
- Click Add resource and pick the workflow.
- Give it a clear alias — like
orders_workfloworsupplier_search. This is the name you'll use in prompts. - (Recommended) Open the workflow's logs and confirm the output shape is what you expect.
Run new workflows before you use them
This is the single most important thing to know about workflows in App Builder.
Workflows don't have a fixed schema — App Builder infers their output shape from previous executions. So when you create a new workflow, you have to run it at least 3 times with realistic inputs before App Builder can use it.
If you skip this step, App Builder may not be able to use the workflow at all, or it may bind to fields that aren't really there.
The same applies whenever you change a workflow's output — re-run it a few times after the change so App Builder picks up the new shape, then re-prompt your app to update its bindings. See Prompting & Best Practices → Re-prompting when your resources change.
Designing workflow outputs for apps
A few practical tips to make a workflow easy for App Builder to use:
- The last step of your workflow is what the app sees. Make sure the final output is shaped the way you want it consumed.
- Use clear field names.
supplier_nameis much easier for the AI to use thanf1orx123. - Group related fields. If your output represents a list of orders, return an array of order objects rather than parallel arrays.
- Keep it focused. Workflows that return everything-and-the-kitchen-sink are harder to prompt against. Build smaller workflows that each return one thing well.
For detailed mapping and transformation patterns, see the Workflows reference.
Common workflow patterns
Patterns that come up often in App Builder apps:
- Data fetch — Example: a workflow that pulls all suppliers from M3 and returns them as a list. The app shows them as a dashboard or directory.
- Search by parameter — Example: a workflow that takes an item number as input and returns matching item details. The app uses it for an item lookup page.
- Save a record — Example: a workflow that takes form values and creates a new claim in M3. The app calls it when the user submits a claim form.
- Send a notification — Example: a workflow that sends an email when a goods receipt is processed. The app triggers it after confirming receipt.
- Refresh data on a schedule — Example: a workflow that runs every hour to pull the latest inventory into a table. The app reads from that table.
Updating a workflow your app uses
When you change a workflow that an existing app depends on:
- Make and save the change in Workflow Builder.
- Run the workflow 3+ times with realistic inputs so App Builder picks up the new output shape.
- Open your app, start a new build session, and re-prompt with what changed — for example: "I updated
orders_workflow— it now returns a 'priority' field. Use it to sort the list." - Save in App Builder and republish the app version.
Don't skip the re-prompt step. The app won't automatically pick up the new output shape.
Quick reference
- Where to create workflows — Workflow Builder in Vince Platform
- Where to use them in apps — Resources panel in App Builder
- The 3-run rule — run a new or changed workflow at least 3 times before App Builder can use it
- Last step matters — the final output of the workflow is what the app sees
- Re-prompt after changes — App Builder doesn't auto-refresh; re-prompt with what changed
Further reading
Vince Platform docs (full reference):
Video tutorials:
- Create and Execute Workflows
- Create workflow with Table Component
- Configure Workflows with Filters
- Configure Scheduled workflows
- Configure New Connection Settings
- Configure Input Sources In M3 API
- Pre-Sort M3 Data Efficiently
- Add Filtering to Exported M3 Data
- Export M3 Data To Table
- Send Exported M3 Data Using Email Component
- Create Email Attachment Workflow
Where to go next
- Tables — for static, structured data sources
- Prompting & Best Practices — how to write prompts that use workflows well
- Examples — apps built on workflows
- Troubleshooting & FAQ — when a workflow isn't behaving