Apps and Agents
When to build a screen, when to build a worker — and how Apps and Agents work together in Riff.
Every project you build in Riff starts with one question: does this need a screen, or a worker?
The answer shapes everything — what you configure, how your users interact with it, and how Riff runs it. Getting this decision right early saves time and produces a better outcome.
Two equally first-class build types
Riff gives every builder two things to build:
Apps — a workspace your users open. A surface to look at data, fill in forms, ask questions, and take action. You design the interface; AI can live inside it as a feature. Humans drive the flow.
"Build something people open and use."
Agents — a configured worker that runs a job. A clear trigger (schedule, email, webhook), a defined task, a clear "done" state. The agent runs on its own, reports back, and escalates only what it can't decide.
"Configure something that runs and reports back."
Apps and Agents are not competing choices — many Riff projects combine both. An agent chases supplier confirmations and surfaces exceptions in an App that your procurement team reviews each morning.
When to build an App
Choose an App when:
Humans drive the flow. Your users need to look at something, enter data, or make a decision — and the interface matters.
The output is a screen. A dashboard, a portal, a form — something people come back to regularly.
AI is a feature, not the worker. You want an AI-powered search, a recommendation panel, or a summarisation tool embedded in a larger workflow.
The task can't be fully defined upfront. Users explore, filter, and decide based on what they see.
Procurement examples:
A supplier portal where buyers review PO confirmations before approving
An exception dashboard showing invoices the agent flagged for human review
A spend analytics app where the team queries ERP data in plain language
When to build an Agent
Choose an Agent when:
The job repeats on a schedule or trigger. Every morning, every time an email arrives, every time a new PO is raised.
The outcome is an action, not a report. Create a record, send an email, update a field, approve a line.
You can define "done" clearly. The agent has a checklist — supplier confirmed, invoice matched, exception escalated — and stops when it's done.
Human input should be the exception, not the rule. The agent escalates edge cases; routine work runs without interruption.
Procurement examples:
Chase supplier order confirmations on a schedule and update Infor LN when confirmed
Match incoming invoices against POs in SAP and flag discrepancies above a tolerance threshold
Run an RFQ, collect responses, and surface the shortlist for a buyer to approve
How Apps and Agents work together
The most effective Riff deployments combine both. A common pattern:
An Agent does the routine work — chasing, matching, updating — and writes results and exceptions to Riff's native database.
An App surfaces the output — your team opens it each morning to see what the agent handled and what needs their attention.
The App feeds decisions back — when a buyer approves an exception in the App, that triggers the Agent to act.
You build and manage both from the same workspace. They share integrations, storage, and authentication.
Not sure which to build?
A quick check: if your project has a clear trigger and a clear done state — build an Agent. If your users need a screen — build an App. If both — build both.
If you're still unsure, start with an App to explore the data and the workflow. Once the pattern is clear, extract the repeating parts into an Agent.
Last updated
Was this helpful?