Skip to content

AI agents & workflow automation

Agents that earn their autonomy.

Nijora designs and deploys AI agents that do the lookups, checks, and updates between your systems. Each earns its permissions by passing tests you approve.

  • Fixed-fee scoping
  • Runs in your cloud
  • Everything we build is yours

Invoice exception · Finance ops

Illustrative run · sample data, not a client deployment

Trigger: ap@ inbox · INV-20817 from vendor V-3307 · $48,212.00

  1. Read, 00:04.6: extract(INV-20817.pdf) → 14 lines · total $48,212.00. Schema-validated · no missing fields.
  2. Tool, 00:08.0: netsuite.get_po(PO-77310) · netsuite.get_receipts(PO-77310). Read-only scope · PO total $46,980.00 · 14 of 14 lines received.
  3. Think, 00:16.2: Line 9: 560 units at $18.40 vs PO $16.20 → +$1,232.00 · policy AP-03 limit $500 · exceeds. The other 13 lines match the PO and the receipt.
  4. Tool, 00:21.3: contracts.search(vendor=V-3307, “price amendment”). Amendment 2, signed 2026-09-01, sets this SKU at $18.40 · cited: §2.1.
  5. Think, 00:30.2: Invoice price is contractual; the PO is stale. Proposal: post the bill, request a PO update. Over-limit variance → approval required by policy, whatever the model's confidence.
  6. Human, 00:31.6: Approval requested in #ap-approvals → AP lead. Attached: PO, receipts, Amendment 2 §2.1, variance calculation.
  7. Human, 04:12.6: Approved by AP lead · 3m 41s. Approver and decision written to the trace.
  8. Write, 04:18.4: netsuite.create_bill(INV-20817) · netsuite.request_po_update(PO-77310). Scoped writes · idempotency key inv-20817 · undo: void bill until period close.
  9. Done, 04:19.0: Done · 9 steps · 38s agent time · 3m 41s waiting on approval · $0.06 model cost. trace tr_7f3a9c · ap-agent v1.4.2 · test suite passing.

Outcome: Bill posted at the contract price and a PO update requested, with the full trace on record. The AP lead made one decision, with the evidence already attached.

01 Systems

Your systems stay. The agents work between them.

  • Salesforce
  • HubSpot
  • Zendesk
  • ServiceNow
  • Jira
  • SAP
  • NetSuite
  • Workday
  • Stripe
  • Okta
  • Microsoft Entra ID
  • Slack
  • Microsoft Teams
  • Microsoft 365
  • Google Workspace
  • Snowflake
  • Databricks
  • Postgres
  • Your internal APIs
Examples of systems our agents work across. Names belong to their owners; no partnership implied.

02 Our position

Trust is a test result.

Most agents are sold on what they can do. The better question is what they can be trusted to do, and the honest answer is whatever they've been tested on. So before we build, you approve the test: real cases from your own history, the right outcome for each, and the bar the agent has to clear. It goes live when it passes. Its limits widen only while it keeps passing. When the model underneath changes, it takes the test again.

03 Use cases

Pick a queue. See what leaves it.

Most operational work isn't hard. It's scattered: an inbox, a ledger, a ticket queue, a spreadsheet, and a person chasing all of them. For each workflow: what the agent does, and where a person decides.

Finance operations

Invoice matching and exceptions

Clean invoices are entered without anyone re-keying them. Exceptions reach the AP lead with the PO, the receipt, the contract clause, and a proposed fix already attached.

Domain
Finance operations
Systems
  • NetSuite or SAP
  • Microsoft 365 or Google Workspace
  • Slack or Microsoft Teams
  1. Trigger

    Supplier invoice arrives in the AP inbox or a portal

  2. The agent does

    1. Reads invoices from the AP inbox and supplier portals, including scanned PDFs
    2. Matches each line to the purchase order and goods receipt
    3. Checks price and quantity variances against your tolerances, and searches contracts for approved price changes
    4. Flags suspected duplicates before they reach the payment run
    5. Enters matched bills in the ERP, ready for your normal payment run
    6. Drafts supplier queries for anything that doesn't reconcile
  3. Where a person decides

    Variances over tolerance, suspected duplicates, and any change to supplier bank details go to the AP lead with the evidence attached. The agent never releases a payment.

  4. Write-back

    • NetSuite or SAP
Customer operations

Ticket triage and resolution

Tickets land in the right queue with a category, the linked known issue, and a cited draft reply. Your team spends its time on customers, not on sorting.

Domain
Customer operations
Systems
  • Zendesk or ServiceNow
  • Salesforce
  • Jira
  • Stripe
  • Slack or Microsoft Teams
  1. Trigger

    New ticket arrives in the support queue

  2. The agent does

    1. Reads each new ticket, its attachments, and the customer's recent history
    2. Checks the order, the account, and billing records to find the cause
    3. Classifies by intent, product area, and severity, and routes by plan, SLA, and language
    4. Links known bugs in Jira, or files a new one with reproduction steps
    5. Drafts replies from your help center and past resolutions, citing each source
  3. Where a person decides

    A support lead approves customer-facing replies until a reply type has passed its tests and you choose to let it send. Refunds over your limit, legal threats, and security reports always go to a person.

  4. Write-back

    • Zendesk or ServiceNow
    • Jira
Order operations

Order intake and order changes

Orders that arrive as emails and PDFs become sales orders without re-keying. Credit, stock, and pricing problems surface at intake, not at the loading dock.

Domain
Order operations
Systems
  • SAP or NetSuite
  • Salesforce
  • Postgres
  • Microsoft 365 or Google Workspace
  • Slack or Microsoft Teams
  1. Trigger

    Buyer sends a purchase order or a change request

  2. The agent does

    1. Reads purchase orders and change requests from email, PDF, and portal exports
    2. Matches customers, ship-to addresses, SKUs, and prices to your master data
    3. Runs availability and credit checks
    4. Creates the sales order and confirms dates to the buyer
    5. Applies changes within your cut-offs, and alerts the warehouse before pick
  3. Where a person decides

    Credit holds, price overrides, and changes to orders already picked or shipped go to the credit manager or the order desk lead.

  4. Write-back

    • SAP or NetSuite
IT & people operations

Access, onboarding, and offboarding

Joiners start with the access their role needs, and leavers lose it when they go. Every grant is on record, with the role template or the person that approved it.

Domain
IT & people operations
Systems
  • Workday
  • Okta or Microsoft Entra ID
  • Microsoft 365 or Google Workspace
  • ServiceNow or Jira Service Management
  • Slack
  1. Trigger

    Joiner, mover, or leaver event, or an access request

  2. The agent does

    1. Picks up joiner, mover, and leaver events from your HR system
    2. Creates accounts and group memberships from role templates your IT team owns
    3. Checks each access request against your access policy and the requester's role
    4. Proposes the narrowest role that covers the task, with a scheduled revocation date
    5. Revokes access at offboarding, transfers file ownership, and confirms each revocation
  3. Where a person decides

    Template grants are pre-approved by the template's owner. Anything outside the template waits for the manager and the resource owner. Admin and production roles sit outside the agent's permissions entirely: it can only route those requests.

  4. Write-back

    • Okta or Microsoft Entra ID
    • Microsoft 365 or Google Workspace
Revenue operations

Renewals and subscription changes

Each renewal reaches its owner with a brief and a draft quote well before the date. Seat changes and co-terms are drafted correctly, with CRM and billing in agreement.

Domain
Revenue operations
Systems
  • Salesforce or HubSpot
  • Stripe or NetSuite
  • Zendesk
  • Snowflake or Databricks
  1. Trigger

    Renewal date nears, or a subscription change is requested

  2. The agent does

    1. Builds a renewal brief ahead of each renewal date: usage, open tickets, invoices, and contract terms
    2. Flags risk early: falling usage, overdue invoices, open escalations
    3. Drafts renewal quotes and subscription changes from your price book and discount rules
    4. Asks the account owner when a request is ambiguous, instead of guessing
    5. Checks that CRM, billing, and contract records match after every change
  3. Where a person decides

    The account owner approves every quote before it reaches a customer. Discounts outside your rules and non-standard terms go to the deal desk.

  4. Write-back

    • Salesforce or HubSpot
    • Stripe or NetSuite

04 How it works

Every run, on the record.

The same four steps, in the same order, in every agent we build. Each one is recorded, so anyone you choose can open a run and read exactly what happened.

  1. 01 · Read

    It reads only what the task needs.

    A run starts from an event you already have: an invoice in the AP inbox, a new ticket, a change request by email. The agent pulls what the case needs through connectors scoped to the task, under a service account your team issued. It can read. It can't write until you grant that specific action. Every fact it picks up keeps a pointer to the record it came from.

    Invoice exception · Finance ops Illustrative run · sample data, not a client deployment
    1. Trigger: ap@ inbox · INV-20817 from vendor V-3307 · $48,212.00
    2. Read, 00:04.6: extract(INV-20817.pdf) → 14 lines · total $48,212.00. Schema-validated · no missing fields.
    3. Tool, 00:08.0: netsuite.get_po(PO-77310) · netsuite.get_receipts(PO-77310). Read-only scope · PO total $46,980.00 · 14 of 14 lines received.
  2. 02 · Decide

    The model proposes. Code checks.

    Tolerances, routing tables, and approval rules run as code, so they behave the same way every time. The model does what rules can't: read a messy PDF, work out what a customer is asking for, draft a reply. It cites the records it used, and each step runs on the model that passed its tests.

    Invoice exception · Finance ops Illustrative run · sample data, not a client deployment
    1. Think, 00:16.2: Line 9: 560 units at $18.40 vs PO $16.20 → +$1,232.00 · policy AP-03 limit $500 · exceeds. The other 13 lines match the PO and the receipt.
    2. Tool, 00:21.3: contracts.search(vendor=V-3307, “price amendment”). Amendment 2, signed 2026-09-01, sets this SKU at $18.40 · cited: §2.1.
    3. Think, 00:30.2: Invoice price is contractual; the PO is stale. Proposal: post the bill, request a PO update. Over-limit variance → approval required by policy, whatever the model's confidence.
  3. 03 · Check

    When it isn't sure, it stops and asks.

    Every proposed action is checked against a schema and your policies before anything changes. Missing data, conflicting records, an ambiguous request, an amount over your limit, or an action you've marked for approval pauses the run. A named person gets the question in Slack, Teams, or the queue they already work from, with the evidence attached. Their answer is logged under their name.

    Invoice exception · Finance ops Illustrative run · sample data, not a client deployment
    1. Human, 00:31.6: Approval requested in #ap-approvals → AP lead. Attached: PO, receipts, Amendment 2 §2.1, variance calculation.
    2. Human, 04:12.6: Approved by AP lead · 3m 41s. Approver and decision written to the trace.
  4. 04 · Write

    It writes back and leaves a record.

    Approved actions go into your systems of record through scoped tool calls with the narrowest permission that works, and a retry can't post twice. Every step is recorded: inputs, sources, model and prompt version, tool calls, approvals, cost, and time. Where the target system allows it, each write has a tested undo.

    Invoice exception · Finance ops Illustrative run · sample data, not a client deployment
    1. Write, 04:18.4: netsuite.create_bill(INV-20817) · netsuite.request_po_update(PO-77310). Scoped writes · idempotency key inv-20817 · undo: void bill until period close.
    2. Done, 04:19.0: Done · 9 steps · 38s agent time · 3m 41s waiting on approval · $0.06 model cost. trace tr_7f3a9c · ap-agent v1.4.2 · test suite passing.

    Outcome: Bill posted at the contract price and a PO update requested, with the full trace on record. The AP lead made one decision, with the evidence already attached.

Invoice exception · Finance ops

Illustrative run · sample data, not a client deployment

Trigger: ap@ inbox · INV-20817 from vendor V-3307 · $48,212.00

  1. Read, 00:04.6: extract(INV-20817.pdf) → 14 lines · total $48,212.00. Schema-validated · no missing fields.
  2. Tool, 00:08.0: netsuite.get_po(PO-77310) · netsuite.get_receipts(PO-77310). Read-only scope · PO total $46,980.00 · 14 of 14 lines received.
  3. Think, 00:16.2: Line 9: 560 units at $18.40 vs PO $16.20 → +$1,232.00 · policy AP-03 limit $500 · exceeds. The other 13 lines match the PO and the receipt.
  4. Tool, 00:21.3: contracts.search(vendor=V-3307, “price amendment”). Amendment 2, signed 2026-09-01, sets this SKU at $18.40 · cited: §2.1.
  5. Think, 00:30.2: Invoice price is contractual; the PO is stale. Proposal: post the bill, request a PO update. Over-limit variance → approval required by policy, whatever the model's confidence.
  6. Human, 00:31.6: Approval requested in #ap-approvals → AP lead. Attached: PO, receipts, Amendment 2 §2.1, variance calculation.
  7. Human, 04:12.6: Approved by AP lead · 3m 41s. Approver and decision written to the trace.
  8. Write, 04:18.4: netsuite.create_bill(INV-20817) · netsuite.request_po_update(PO-77310). Scoped writes · idempotency key inv-20817 · undo: void bill until period close.
  9. Done, 04:19.0: Done · 9 steps · 38s agent time · 3m 41s waiting on approval · $0.06 model cost. trace tr_7f3a9c · ap-agent v1.4.2 · test suite passing.

Outcome: Bill posted at the contract price and a PO update requested, with the full trace on record. The AP lead made one decision, with the evidence already attached.

Arrow keys move one step; Page Up and Page Down move one stage.

05 Trust

Built to be stopped.

Every limit is yours to set, and anything beyond one waits for a person. Each control below is documented in the architecture review you get during scoping, before anything is built.

Trust & security

Permission ladder

  1. 01

    Read-only

    Gate to Suggest: passes its test you approve

  2. 02

    Suggest

    Gate to Per-action writes: passes its test you approve

  3. 03

    Per-action writes

    Gate to Wider limits: passes its test you approve

  4. 04

    Wider limits

One step back to read-only.

  • 01

    Your cloud. Your keys.

    Agents run in your AWS, Azure, or Google Cloud account and sign in with credentials you issue and can revoke. Your data doesn't pass through infrastructure we operate, and run records stay in your own stack. Model calls go only to providers you approve, under terms that exclude training on your data.

  • 02

    Read-only until it passes.

    Every agent starts with read access and nothing else. Write access is added one action type at a time (draft a quote, post a bill), only after the agent passes its test for that action and you approve the change.

  • 03 Where a person decides

    A named approver above every limit.

    You decide which actions always wait for a person, and at what amount: payments, refunds over a threshold, deletions, privileged access, contract changes. The approver sees the evidence in Slack, Teams, or the queue they already use, and the decision is logged under their name.

  • 04

    No source, no action.

    Every conclusion an agent acts on links to the record behind it: the PO line, the policy clause, the ticket. If it can't point to a record, it says so and asks. It doesn't fill gaps with guesses.

  • 05

    Untrusted input can't change the rules.

    Emails, PDFs, and tickets are read as data, never as instructions. Tools come from a fixed list, permissions live in access control rather than in prompts, and every write is checked against a schema. A line hidden in an invoice can't widen what the agent may do.

  • 06

    One step back to read-only.

    You can stop any agent, or drop it to suggest-only or read-only, in one step, at any time, without calling us. Prompts, policies, and model choices are versioned in your repositories, so you roll back like any deploy. Writes carry idempotency keys, so a retry never posts twice.

06 Approach

Autonomy widens only when the evidence does.

One workflow at a time, in four phases. Each ends with something you can read and sign before anything moves forward.

How we work
  1. 01 · Scope

    Planned: 1–2 weeks

    Map the work. Write the test.

    We sit with the people who do the work and trace real cases through your systems: triggers, rules, exceptions, handoffs, and who decides what. We write down a baseline (volume, handling time, cycle time, exception rate) and agree with you which steps should stay human. Then we turn your past cases into the acceptance test, with the right outcome for each and the pass bar. You sign it before we write any agent code.

    Deliverables

    • Workflow map: every system, step, and handoff
    • Written baseline: volume, handling time, cycle time, exception rate
    • Two lists: automate, and keep human
    +3 more deliverables in 01 · Scope
  2. 02 · Build

    Planned: 3–6 weeks

    Build against the test.

    We build in your cloud account and your repositories, released through your CI/CD, with read-only access to your systems. Connectors are scoped to the task, rules live in code, and the full test runs on every change. You see the scores every week, including every case the agent gets wrong, and why.

    Deliverables

    • Agent code, prompts, and policies in your repositories
    • Infrastructure as code for your environment
    • Test suite running in your CI
    +3 more deliverables in 02 · Build
  3. 03 · Shadow

    Planned: 2–4 weeks

    First it watches. Then it suggests.

    The agent works live cases beside your team and records what it would have done, writing nothing. We compare its decisions with your team's, case by case, and fix the disagreements. When it clears the bar, it moves to suggesting: it drafts each action, and nothing is written until a person approves. It goes live when you sign the go-live checklist.

    Deliverables

    • Shadow report: every case where the agent and your team disagreed
    • Final test results against the signed bar
    • Approval limits and escalation routes, agreed in writing
    +1 more deliverable in 03 · Shadow
  4. 04 · Operate

    Ongoing, reviewed monthly

    Then it acts, inside your limits.

    The agent acts on its own within the limits you set and stops for a person beyond them. The right to act without approval is granted one action type at a time, on evidence. We watch quality, cost, and drift, re-run the full test on every model, prompt, or system change, and review exceptions with you each month. Or your team takes over, with everything it needs to run the agent.

    Deliverables

    • Live view of volume, exceptions, and cost per case
    • Change log with test results for every release
    • Monthly review of exceptions and limits
    +1 more deliverable in 04 · Operate

07 Commitments

What you can hold us to.

  1. You approve the test.

    You sign off on the cases and the pass bar before we build. The agent ships when it passes, and the same test runs again on every prompt, model, or policy change. Go-live is a result, not a date on a plan.

  2. No accuracy number we haven't measured.

    We won't quote a percentage until we've measured it on your cases, against your bar. That's why there are none on this site: yours is the only one that matters.

  3. You own everything we build.

    Code, prompts, policies, test sets, infrastructure code, and runbooks live in your repositories from the first commit, assigned to you under the contract. There's no Nijora platform underneath to rent, renew, or migrate off.

  4. Models picked by your tests.

    We don't resell models or platforms, so we have no reason to prefer one. Each step runs on the model that passes your tests at an acceptable cost and speed, from providers your security team approves.

  5. An honest no.

    Scoping ends with two lists: what to automate and what should stay human. If a rule, a script, or a person does the job better than an agent, you'll hear it before you pay for a build.

  6. An engineer on the first call.

    You talk to an engineer who works on the build, not a sales team. Your questions go to someone who has read the code.

An honest no

When we'll tell you not to build an agent.

  • The volume is too low to pay back.

    If the queue is small, the build and the upkeep cost more than the time they save.

  • A rule or a script already does it reliably.

    Deterministic work belongs in deterministic code. We'll point you to the simpler fix.

  • Your customers expect a person to make the call.

    Some decisions are part of the relationship. Those stay human, by design.

  • The system has no API and no plan for one.

    If an agent can only reach a system through fragile workarounds, we'll say so before you pay for a build.

08 FAQ

Questions worth asking any agent builder.

Entries
08
Other questions
hello@nijora.ai
What happens when the agent gets something wrong?

It will, sometimes, so we design for it. Facts come from your systems, not from the model's memory, and every conclusion the agent acts on links to the record behind it. Limits, tolerances, and approval rules run as code, and every proposed write is checked against them before anything changes. When data is missing, records conflict, or an amount is over your limit, the run pauses and goes to a named person with the evidence. Nothing launches until it passes a test you approved, built from your own past cases, including the awkward ones. Every run is recorded, so a mistake found in production can be traced to the exact step, fixed, and added to the test set, and every later release is checked against it.

Where does our data go, and who can see it?

Not through Nijora. The agent runs in your cloud account, under your identity and access controls, and reads your systems through service accounts you issue. Model calls go only to providers you approve, through your own accounts or endpoints, under terms that exclude training on your data. If a workflow can't send data to an external provider at all, we can run open-weight models inside your network. Run records go to your own logging stack (over OpenTelemetry, if you use it) and stay there under your retention policy, with personal data masked where you require it. Test sets built from past cases stay in your environment too. We work in your environment only with credentials you grant and can revoke, and we keep no copies of your data after the engagement.

What does it cost, and how will we know it paid off?

Scoping is a fixed fee. The build is fixed-scope and fixed-price, agreed in writing after scoping, once we both know the workflow, the systems, and the pass bar. After launch, you pay your own cloud and model usage, which the run record shows for every completed case. If we run the agent for you, there's also a monthly fee, agreed up front. The business case runs on your numbers, not ours: scoping records the workflow's volume, handling time, and error rate, and from the shadow phase on we measure time and cost per case against that baseline. If the numbers don't work during scoping, we'll tell you before you pay for a build.

How much work is this for our IT and engineering teams?

Some, mostly at the start, and we'll be specific about it up front. We need a cloud account or project to deploy into, read-only service accounts for each system involved, a security contact for the architecture review, and someone to review infrastructure changes and grant access to your CI/CD. A subject-matter expert spends a few hours a week labeling cases and reviewing shadow results. We connect through the APIs your systems already expose, so there's nothing to replace or migrate. Where a system has no usable API, we lay out the options and what each costs in reliability before choosing one, or leave that step with a person.

What happens when the model changes, or a better one comes out?

The agent takes its test again. Model versions are pinned in configuration, so nothing changes underneath you without a release. When a provider ships a new version or announces a retirement, we run the full test suite against the candidates, compare quality, cost, and speed, and switch only to one that clears the bar you approved. You see the results before the change ships, and the previous version stays one rollback away. We don't resell any model, so the choice rests on your test results alone.

Who owns the agent?

You do. Code, prompts, policies, test sets, infrastructure code, dashboards, and runbooks are written into your repositories from the first commit and assigned to you under the contract. There's no proprietary Nijora runtime and no license fee to keep the agent running. If we part ways, your team, or anyone you choose, can pick it up from the repositories and the runbooks.

How long until an agent is doing real work?

We plan a first workflow in three phases: scoping (one to two weeks), build (three to six weeks), and shadow (two to four weeks), when the agent works live cases without writing anything. It starts acting when it clears the bar you signed and you approve the go-live, not when a date on a plan says so. Getting access to systems can be the slowest part, so we request service accounts during scoping. If a project is trending late, you'll hear it from us early, with the reason.

Who looks after it once it's live?

Your choice. In a Build and run engagement, a named Nijora engineer owns the agent in production: monitoring and alerts on quality, cost, and drift; a full test re-run on every model, prompt, or system change; fixes when an upstream API changes; and a monthly review of exceptions and limits with you. In a Build and hand over engagement, your team takes it on with the runbooks, dashboards, and full test suite, after a working session on each runbook, and we stay available through an agreed transition period. Either way, you can stop any agent, or drop it to read-only, in one step without calling us.

09 Start

Bring us the workflow with the longest queue.

We'll map it with your team, tell you plainly whether an agent should run it, and show you the test we'd hold it to.

Email hello@nijora.ai

What happens next

  1. An engineer reads your note and replies within two business days, with questions about volume, systems, and access.

  2. A working session with you and whoever owns the workflow. We walk through real cases and mark where a person has to stay in charge.

  3. A written recommendation: what we'd automate, what should stay human, how we'd test it, and a fixed price for scoping. If an agent isn't the right fix, it says so.