apsera.ai
Pre-trained · multi-worker · audit-trailed · human-in-the-loop

Your AI workforce. Hired like humans. Working together.

apsera.ai gives you a team of pre-trained AI coworkers who chat with you, hand off work to each other, and execute in your real apps. You stay in the loop — they pause for your call before anything risky, and every step is on the record.

apsera.ai · Avery · Salesforce Admin · Active
You
2:14 PMYou

Pull every Account where Industry = Healthcare and document them in Confluence under “Q4 healthcare pipeline”.

📎 q4-account-template.pdf
A
AveryAI2:14 PM
⚙ sf_query⚙ cf_list_spaces⚙ cf_create_page

Done. Pulled 23 Healthcare accounts from Salesforce, formatted them per your template, and published the page → Q4 healthcare pipeline. Paused once for your approval before publishing.

The problem

Knowledge work is glue work.

Updating CRM from call notes. Pulling lists. Drafting docs. Filing tickets. Replying in Slack. The work that holds a business together — and the work that burns out your best people.

~40%

of senior IC time goes to coordination, status, and writing things down — not the craft you hired them for.

$110k+

average loaded cost of a U.S. ops/admin hire who spends most of the day inside SaaS tools.

tabs open. Most workflows are five tools and a Slack thread, not a single pane of glass.

A day with apsera.ai

One ask. Three workers. You in the loop.

You ask Pat to launch the Q4 healthcare campaign. Watch how the team coordinates, hands off, and pauses for you when it matters.

Y
You· 9:02 AM

@Pat — let’s spin up the Q4 healthcare campaign. Pull our existing healthcare accounts, draft the email sequence, and queue it for review.

P
Pat· 9:02 AM

Got it. Here’s a 4-step plan: (1) Avery pulls Healthcare accounts from Salesforce and writes a Confluence brief. (2) Cole drafts the email sequence in the marketing repo and opens a PR. (3) You review the PR. (4) Avery schedules the campaign in Salesforce Marketing Cloud.

⏸ paused for your approval on the plan
plansubmit_plan
Y
You· 9:05 AM

Approved.

A
Avery· 9:08 AM

Pulled 23 Healthcare accounts from Salesforce — 14 active customers, 9 prospects. Drafted the brief in Confluence: Q4 Healthcare Pipeline. Tagged Pat in the page so he can pick up the next step.

sf_querycf_list_spacescf_create_page
C
Cole· 9:31 AM

Drafted the 3-email sequence in marketing/q4-healthcare/ and opened PR #482. Used tone from brand-voice.md. Paused for human review before pushing to staging.

⏸ PR ready for your review
gh_clonegh_edit_filesrequest_human_approvalgh_open_pr
Y
You· 11:14 AM

Tightened the subject line on email 2. Approved & merged.

A
Avery· 11:18 AM

Campaign scheduled in Salesforce. Send window: Tuesday 9 AM PT to all 23 accounts. Logged the launch in the activity feed. Pat — handing back to you for sign-off.

sf_create_recordsf_query
P
Pat· 11:18 AM

✅ Plan complete. End-to-end time: 2h 16m. 4 tool calls per worker, 2 human checkpoints. Full audit trail in /activity.

That same workflow used to take a 4-person ops sync and 2 days of back-and-forth. With apsera, you ran it from one chat thread.

How they coordinate

Specialists. Not generalists.

Each worker is pre-trained for a single role and stays in their lane. They hand off cleanly via the workforce — and pause for you whenever judgment is needed.

P

Pat — PM

Plans and orchestrates

  • Decomposes goals into a dependency-aware plan
  • Assigns each step to the right teammate
  • Tracks progress, surfaces blockers
M

Avery — Salesforce Admin

Lives in the CRM

  • Queries, updates, creates records via SOQL + REST
  • Writes briefs and reports in Confluence
  • Pauses for approval on writes that touch live data
S

Cole — Engineer

Owns the code

  • Reads repos, edits files, opens PRs
  • Runs CI checks before requesting review
  • Pauses before anything that touches production

Real use cases

Built for the work that makes companies go.

Sales ops, customer success, engineering, finance, knowledge management — anywhere a human is currently translating between five SaaS tools, an apsera workflow already exists.

📈

Quarterly business review

@Avery pull all closed-won opportunities by region for last quarter and write the QBR brief in Confluence.

  • Avery runs SOQL: closed-won by region + amount
  • Generates a markdown report with summary tables
  • Publishes to Confluence under 'Q3 QBR'
  • Posts the page link back to Slack

From ask to published doc: ~6 minutes.

🛠️

Engineering ticket → PR

@Cole pick up JIRA-742, the auth retry bug. Open a PR with a fix.

  • Cole clones the repo, reads the failing test
  • Edits the auth client, regenerates the test fixture
  • Runs CI locally, pauses for review
  • Opens PR with linked Jira issue auto-closed on merge

Engineering manager reviews instead of writing the patch.

🤝

Customer migration

@Pat we’re moving Acme to the new pricing tier. Coordinate the work.

  • Pat plans: SF update → email → DocuSign send → ticket close
  • Avery updates the Account + Opportunity records
  • Cole triggers the migration script in the customer's tenant
  • Pat pings you when each step lands

Five tabs collapsed into one chat.

📚

Onboarding a new account

New customer Northwind signed today. Get them set up.

  • Avery creates the Account + initial Contact records in Salesforce
  • Cole provisions the customer's tenant in your infra
  • Avery writes a welcome email, queues for review
  • Pat tracks the 7-step onboarding checklist

Onboarding SLA: same day, every time.

🧹

Data hygiene sweep

@Avery audit Accounts with missing Industry or Billing Country and fill them in from the website.

  • Avery queries Accounts where Industry IS NULL
  • For each, fetches the website and infers the industry
  • Pauses once for approval on the bulk update
  • Updates 47 records and posts a summary

The kind of work no one wants to do, done overnight.

📝

Documentation refresh

@Avery our Salesforce field map has drifted. Update the Confluence page.

  • Avery runs sf_describe_object on every custom object
  • Diffs against the existing Confluence page
  • Generates an updated table with new + changed fields
  • Updates the page, version-bumped, with a changelog

Docs that actually stay in sync with reality.

You stay in control

Workers ask before they break things.

Every write, every external send, every irreversible action pauses for your call. The worker explains what they’d do, lists alternatives, and resumes the moment you decide — from chat or the portal.

Approve

One-click yes

The worker proposes, you tap Approve, the loop continues. Zero ceremony for the boring 90%.

Choose

Pick from options

When the worker is ambiguous (“there are two Northwind opps — which one?”), they hand you the choices.

Respond

Type the answer

When info is missing, the worker asks; you reply in chat; the work resumes with your reply folded into the prompt.

How to start

From sign-up to first completed task in under five minutes.

01 · Hire

Pick from the catalog

Avery for Salesforce, Cole for engineering, Pat to coordinate. Hire with one click.

02 · Connect

Sign them into your tools

Each worker connects each tool with the user’s own OAuth — Salesforce, GitHub, Confluence, Jira, Slack.

03 · Brief

Upload your playbooks

PDFs, DOCX, Markdown, URLs. Each worker has a knowledge base — chunked, embedded, retrieved in every reply.

04 · Work

Chat. Approve. Repeat.

Messages become tasks. Tasks call tools. Tools wait on you when needed. Audit log captures everything.

Four pre-trained specialists. Ready today.

Each one is a senior-IC role compressed into a chat window. Hire them like humans — one click, then connect their tools.

A

Avery

Salesforce Admin

Updates Salesforce from chat or Gong call notes, audits data hygiene, builds reports, writes briefs. Connect Dev / UAT / Prod orgs and Avery picks the right one — or replays changes across envs.

SalesforceConfluenceGongSlack
@Avery promote yesterday's sandbox-uat edits to production
P

Pat

Project Manager

Decomposes a goal into a dependency-aware plan, assigns each step to the right teammate, files Jira/Linear tickets on approval, drafts RAID status reports.

JiraLinearNotionConfluenceGoogle Calendar
@Pat coordinate the Q4 healthcare launch end-to-end
C

Cole

Solutions Architect

Drafts architecture docs with Mermaid diagrams, answers RFP technical sections, bootstraps POC repos in GitHub, runs AWS/Azure CLI for inspection (mutations pause for approval).

GitHubAWSAzureConfluenceSalesforce (read)
@Cole draft the architecture doc for the Acme integration
D

Devin

Data Analyst

Answers ad-hoc data questions against Snowflake / BigQuery / Databricks / Postgres / MySQL / Redshift with one SQL surface, queries Power BI semantic models via DAX, reads dbt Cloud run history. Browser-using for Power BI report authoring.

SnowflakeBigQueryDatabricksPostgresPower BIdbt Cloud
@Devin what's MRR growth quarter-over-quarter on uat?

Each worker can be assigned to a specific teammate — admins see all on /apps; members see only theirs on /profile.

Connected to your stack

20+ tools wired end-to-end. Per-worker OAuth.

Each worker authenticates each tool with the connecting user’s own credentials — no shared service accounts, no permission sprawl. Add another instance any time.

CRMOne Avery, multiple Salesforce orgs
multi-instance
SF

Salesforce

Read + write CRM

G

Gong

Call transcripts → CRM

Data & BIDevin's home turf — one SQL surface, every warehouse
multi-instance

Snowflake

OAuth + DAX

multi-instance
BQ

BigQuery

Service account

multi-instance
DB

Databricks

PAT + warehouse

multi-instance
Pg

Postgres

Read-only SQL

multi-instance
My

MySQL

Read-only SQL

multi-instance
Rs

Redshift

Read-only SQL

multi-instance
Pb

Power BI

User auth or SP

dbt

dbt Cloud

Run history + jobs

Docs + WikisWhere customer playbooks already live
Cf

Confluence

Read + draft

N

Notion

Pages + databases

GC

Google Calendar

Schedule + invite

Code + CloudCole drafts the POC repo and reviews infra
Gh

GitHub

Files + branches + PRs

AW

AWS

CLI inspection

Az

Azure

CLI + static site deploys

Project ManagementPat plans, files the tickets, tracks the work
J

Jira

Issues + sprints

L

Linear

Issues + cycles

Chat + CallsBe addressed where work already happens
Sl

Slack

@-mention + DM

G

Gong

Call notes → SF updates

Dev / Test / Prod

Promote changes across envs in one chat.

Connect multiple Salesforce orgs, databases, or Power BI tenants. Every write is logged. When you’re ready, ask Avery to replay yesterday’s changes from uat into production. She translates record IDs as she goes.

One Avery. Three Salesforce orgs.

instance: "dev" on every write — picks the dev org.instance: "uat" — picks UAT. Skip the parameter and she defaults to production.

Every successful write lands in sf_changes with the source instance + tool input + new record ID. When you say “replay dev changes into uat, dry_run first”, the replayer walks the log in order, translates each source ID to its target equivalent using the map built up from prior creates, and re-executes against the target connection.

Approval gates on the first call cover the rest of the replay. Per-row results land back in sf_changes with status="replayed_to" or "failed" — partial replays are retryable.

Salesforce

Jordan Lee · System Administrator · login.salesforce.com

production

↑ replay from below

Salesforce

Morgan Chen · System Administrator · test.salesforce.com

sandbox-uat

↑ replay from below

Salesforce

Dev sandbox · my-domain.develop.my.salesforce.com

dev

Concrete examples, per worker

Real chats. Real tool calls. Real results.

Same chat surface for everyone. Each worker calls the tools their role demands and pauses for your call before anything irreversible.

A

Avery

Salesforce Admin

You ask

Avery, find every Healthcare account with no NextStep, draft a tailored follow-up Task on each, and update Industry from the website if it's missing. Show me the plan first.

Outcome

47 follow-up Tasks live in Salesforce + 9 Accounts cleaned, in one chat thread. Every write logged for audit.

1
sf_query

SELECT Id, Name, Website, Industry FROM Account WHERE Industry='Healthcare' AND NextStep='' LIMIT 100

2
sf_describe_object

Confirm Task field shape + valid Subject values

3
request_human_approval

Plan: 47 accounts, 47 Tasks, 9 Industry backfills from web. Approve?

4
sf_create_record

Create Task on each Account — 47 records, namespace-scoped approval covers them all

5
sf_bulk_update_records

Backfill Industry on 9 accounts via Bulk API in one job

P

Pat

Project Manager

You ask

Pat — let's launch the Q4 healthcare campaign. Pull our healthcare accounts, draft the email sequence, queue for review. Track it in Linear.

Outcome

Subtasks fan out to Avery + Cole in parallel; dependent steps wait. Pat reports back when all green.

1
get_workforce

Confirm Avery + Cole are hired and active in the workspace

2
linear_list_teams

Find the Marketing team for the new issues

3
submit_plan

4-step plan: Avery pulls accounts → Cole drafts emails → you review → Avery schedules. track_in_jira=false, track_in_linear=true

4
request_human_approval

Review the plan before dispatching subtasks

5
linear_create_issue

After approve: file one Linear issue per subtask, link via source_ref

C

Cole

Solutions Architect

You ask

Cole, Acme wants a single-page demo of their pricing logic hosted somewhere. Draft the architecture doc + ship a working POC.

Outcome

A working URL + reviewable PR + procurement-grade architecture doc, in one thread.

1
sf_query

Pull Acme's Account + Opportunity ARR for context (read-only SF subset)

2
gh_create_branch

Branch acme-pricing-demo off main in apsera-pocs repo

3
gh_create_or_update_file

Commit Next.js + Tailwind POC (README, .env.example, pricing page, one e2e curl)

4
request_human_approval

Ready to deploy as a public Azure Static Web App — confirm region + name?

5
az_deploy_static_site

Provision RG + storage + static hosting + upload — public URL returned

6
gh_open_pr

Open PR with the README diff at the top + Mermaid architecture doc inline

D

Devin

Data Analyst

You ask

Devin, what's MRR growth Q-over-Q across our Snowflake mart? Push a Power BI dataset so the sales team can build dashboards on it.

Outcome

Numbers in chat for you + a live Power BI dataset for the sales team. Both grounded in the same warehouse query.

1
dwh_get_schema

Inspect ANALYTICS.MART.REVENUE in Snowflake — find the right MRR column + grain

2
dwh_query

SELECT DATE_TRUNC('quarter', month) AS q, SUM(mrr) AS mrr FROM ANALYTICS.MART.REVENUE GROUP BY 1 ORDER BY 1 DESC LIMIT 8

3
pbi_list_workspaces

Find the Sales Analytics workspace + a push-eligible dataset target

4
request_human_approval

Create Power BI Push Dataset 'mrr_quarterly' with the 8 rows? (Approval covers pbi_*)

5
pbi_create_push_dataset

Create dataset, define columns (q DateTime, mrr Double)

6
pbi_push_rows

Push 8 rows. Returns dataset URL → sales team builds report off it

What ships today

The scope of the platform.

Every number below is something you can use the day you sign up.

4

Pre-trained personas

Avery · Pat · Cole · Devin

20+

Integrations wired end-to-end

Per-worker OAuth or paste

Connections per worker

Dev / UAT / Prod / per-customer Salesforce orgs

3

Billing models

Subscription · One-time · PAYG token auto-charge

645+

Custom SF fields auto-scanned

Day-1 profile build prevents hallucinated writes

100%

Writes paused for approval

Namespace-scoped — one approval covers the run

3

Salesforce envs cross-replay

With record-ID translation between orgs

$0

Idle infra cost

Per-token LLM + free-tier R2 + Supabase

Everything in the box

Engineered for the boring parts of trust.

The features that decide whether a vendor reaches production at a real company. Already shipped.

🔐

Per-worker, per-tool OAuth

Each worker has their own connection per integration. Tokens are scoped to the connecting user — Avery can't exceed what you granted Avery. No shared service accounts.

Sandbox + Production = two SF tokens, one Avery, one chat surface.

🎯

Multi-instance: Dev / Test / Prod

One worker, many connections labeled by customer convention. Avery picks the right env from the ask, or you tag it explicitly with `instance: "uat"`.

Salesforce, Snowflake, BigQuery, Databricks, Postgres, MySQL, Redshift, Power BI.

🔁

Change-replay across instances

Every successful Salesforce write logged with the source instance + record IDs. Ask Avery to replay yesterday's UAT changes into Prod — she translates record IDs as she goes.

`replay dev → uat, dry_run first` → plan → approve → executes.

🛑

Namespace-scoped approvals

Every destructive tool auto-pauses for your call. First approval per provider covers every write in the same task — three SF updates = one prompt, not three.

sf_*, gh_*, cf_*, az_*, pbi_*, browser_* all namespace-gated.

🧠

Day-1 Salesforce profile scan

At connect time we describe Account/Contact/Opportunity/Lead/Case, capture every custom field + picklist, and pin it to the worker's system prompt. Avery never hallucinates a stale picklist value.

One customer's day-1 scan: 5 standard objects, 645 custom fields, 133 picklists.

📊

Audit log + diff view + undo

Every thought, tool call, and tool result lands in activity_log. Record updates capture prior values; a one-click undo re-applies them. Compliance gets a complete record.

`/tasks/<id>` shows the chronological timeline + field-level diff per write.

🧩

Knowledge base + RAG per worker

Drop PDFs, DOCX, MD, HTML, or URLs into each worker's KB. Cloudflare Workers AI embeds (768-dim BGE), pgvector retrieves top-5 chunks per task, citations included.

`[Doc: brand-voice.pdf]` annotations on every reply Avery grounds in your SOP.

📋

Plan preview + dispatch (Pat)

Pat decomposes a goal into 3–8 dependency-aware steps, posts the plan, and waits for your approve. On approve, the dispatcher fires independent subtasks in parallel; sequential ones wait for upstream done.

`Approve plan → Avery + Cole work in parallel → Pat reports when all green`.

🧯

Hallucination guard + circuit breaker

If a worker says 'I can't proceed' but marks the task done, the guard converts the end_turn into an approval prompt. Loop on the same tool/input 3× and the breaker pauses for your input.

No more 'looks completed but nothing happened' phantom tasks.

🔄

Scope-drift reconnect

When apsera widens an OAuth scope set, every existing customer gets a workspace banner + per-card hint until they reconnect — no surprise breakage.

Compare stored scopes vs current code on every /apps render.

👥

Per-user assignment + role-gated UI

Owners + admins see every persona on /apps and can hire + assign to teammates. Members see only their assigned persona on /profile and cannot hire.

Each Avery on the same workspace can have a different sales-team owner.

💳

Three billing models · auto-deduct

Subscription (monthly auto-charge × workers via Razorpay subscriptions), PAYG (saved-card cron sweep based on token usage), or one-time. Invoices stored locally; download as PDF.

`/billing` shows Sub Card + Invoices + Sync from Razorpay.

🌐

Slack: DM + @mentions + thread postback

Address Avery / Pat / Cole / Devin by name in any Slack channel. Workspace auto-links on first DM by email. Results post back to the original thread when the task finishes.

`@Avery: 23 healthcare opps queued for review →` posts in #revops.

🤖

Browser-using workers

Where the SaaS API can't reach (Power BI report authoring, etc.), Devin opens a Browserbase session, navigates, clicks. Sessions persist per worker until the macro completes.

`pbi_browser_create_report` macro: navigate → /explore → save → URL back.

🛟

Admin console + customer ops

apsera staff (`/admin`) audit any customer's billing, refund payments, cancel subscriptions, revoke saved cards, charge PAYG now, override tier / payment status. Every action audited.

`/admin/billing` MRR + halted subs + PAYG cards in one view.

📈

Live activity timeline + token meter

Per-worker page polls every 4s when work is in flight. /billing shows token usage vs included pool with projected overage in real time.

See Avery's `sf_create_record` lights up the moment it fires.

What’s in the box

Everything below ships out of the box, on a stack that costs $0/mo idle.

💬

Chat-first interface

Each worker is a chat thread. Send messages, attach docs, watch tool calls execute live.

📚

Per-worker knowledge base

Drive-style view: upload PDFs, DOCX, MD, URLs. Embedded with Cloudflare Workers AI, retrieved via cosine similarity in pgvector.

🔐

Per-user OAuth

Each worker authenticates each tool with the connecting human’s credentials — no shared service accounts, no permission sprawl.

🛑

Human-in-the-loop

Risky writes pause for a structured approval. The worker explains, you decide, the loop resumes.

📋

Live audit trail

Every thought, tool call, and tool result lands in the activity log. Compliance teams get a complete record.

🧠

Session boundaries

“+ New chat” archives the current thread so each worker stays focused. Old exchanges remain auditable.

Common questions

What does a worker actually do?

A worker is a pre-trained AI specialist with chat, tool access, and memory. You give them tasks in plain English; they plan, call tools in your real apps (Salesforce, GitHub, Confluence, Jira, Snowflake, Power BI, Slack, etc.), pause for your call on anything risky, and reply with a complete audit trail of every step.

How do workers hand off to each other?

When you ask Pat to coordinate something, Pat decomposes the goal into a plan and assigns each step to the right teammate. Avery does Salesforce work; Cole writes code; Devin queries the warehouse; the human reviews when needed. Each handoff + tool call lands in the shared activity log. The dispatcher fires independent subtasks in parallel and waits on dependencies before continuing.

Can I connect Dev, UAT, and Production at the same time?

Yes — every multi-instance provider (Salesforce, Snowflake, BigQuery, Databricks, Postgres, MySQL, Redshift, Power BI) supports an arbitrary number of connected instances per worker, labeled with whatever convention you use (production, uat, sandbox-qa, dev). When the user says “update the Account in uat”, the worker routes the call to the right org. Default routing is “production”.

Can I promote changes from one env to another?

For Salesforce, yes. Every write Avery makes is logged with the source instance + record IDs. Ask her to “replay yesterday’s uat changes into production” and she walks the log in order, translating source IDs to target IDs via the map built up from prior creates. Dry-run first surfaces the plan; the real run applies it and records per-row pass/fail.

Whose credentials do they use?

Yours, per worker, per tool. Each worker has their own OAuth connection per integration (and per instance for multi-instance providers). Their permissions match the human user who clicked Connect — no shared service accounts, no permission sprawl. When apsera widens a required scope, every existing customer gets a workspace banner asking them to reconnect — never silent breakage.

How do admins and teammates share a workspace?

Two-tier role model. Owners + admins see every persona on /apps and can hire + assign personas to specific teammates. Members see only their assigned persona on /profile and can connect apps for it, but cannot hire or see other teammates’ personas. Same UI; different scope.

What about my company documents and SOPs?

Drop them in. Each worker has their own knowledge base — PDFs, DOCX, Markdown, HTML, or URLs. We chunk + embed via Cloudflare Workers AI (768-dim BGE), store in pgvector, and ground every reply via RAG with [Doc: filename] citations. Original binaries in Cloudflare R2.

When do I have to step in?

Every action with side effects (writing to Salesforce, opening a PR, sending an email, charging a card, replaying changes across envs) pauses for your approval. The worker explains what they’d do, lists alternatives, and resumes the moment you decide. Read-only work runs without interruption. Approvals are namespace-scoped, so the first approval per provider covers every write in that task — three SF updates = one prompt.

What if a worker hallucinates or loops?

Two guards. The hallucination guardwatches for help-seeking phrases in end-of-turn summaries (“I’ll need you to…”, “cannot proceed…”) and converts them into approval prompts so phantom “done” tasks don’t look complete when they aren’t. The circuit breaker trips after the worker hits the same tool / input failure 3× and pauses for your input instead of looping forever.

How does billing work?

Three modes, all auto-charge via Razorpay. Subscription: pick a tier (Starter $49, Pro $149, Business $399 per worker/mo) and Razorpay auto-debits monthly × active worker count. PAYG: authorise a card once ($0.50 verification), monthly cron sweeps based on token usage. One-time: pay each charge manually. Invoices stored locally with downloadable PDFs. Admins see MRR + invoices + saved cards across all customers in /admin/billing.

Can I bring my own AI / BI license?

For tools that need vendor-specific licensing (Power BI Pro / PPU / Fabric, Salesforce user licenses, Snowflake compute, etc.), you connect your own. apsera.ai integrates the tool — you pay the vendor directly. The pricing tiers cover apsera’s side (workers + LLM tokens + storage); vendor licenses are pass-through.

Is it safe to give an AI access to production?

You decide. Approvals are required by default for every write; the worker can’t bypass them. Read-only flows run on autopilot. Everything is logged with diff + undo for SF updates. Permissions flow through the user’s OAuth grant — the worker can never exceed what the human connected. For Salesforce specifically: the day-1 profile scan also captures every custom field + picklist so Avery never hallucinates a stale value into a write.

One chat. Three workers. The work, done.

Start with a single worker in under five minutes. Hire the team as you grow into it.

Start hiringSign in