You describe the work. Milita learns what matters.
Teaching Milita isn't a project. You describe the process the way the person who normally does it would. She builds it, asks only what she needs to know, and then proves it on her own.
From sign-up to a kept Promise.
Sign up and meet Milita
Sign up with a verified work email, Google, or Microsoft. The first screen is not a checklist; it is Milita, who says what she does and that the first job is to connect a sandbox, a safe place to test, never production. Nothing to install on your computer.
Connect a sandbox
A guided conversation. Milita walks your admin through an External Client App with the JWT bearer flow, our per-environment certificate, a dedicated non-admin integration user, and a scoped permission set. She verifies each step the moment it is done and refuses anything that is not a sandbox or any user with admin-level permissions. Certificate revocation in Setup is your off switch, instantly and without asking us. The full guide.
She reads your org before she asks you anything Coming
With a read-only administrator reader, or the integration user as the fallback, Milita reads the structure of the org: objects and fields, picklists, record types, layouts, apps and tabs, validation rules, flows, approval processes, assignment and escalation rules, queues, sharing settings, installed packages. Never records, never Apex, never formula text verbatim. A positive allowlist is enforced before every request, every read is logged to a page you can open, and there is a per-turn read budget.
She proposes what to test Coming
Building coverage has always required a person to imagine every way a system could fail. Milita does the imagining with you. For each component she reads, she proposes a Promise as a positive case and a negative case, with the persona it needs and provenance back to the rule or flow it came from. Every step is built by a deterministic generator; the model only chooses the next question. A static check runs before you see a card: every plan valid, every label a real field, every value one the org offers. You keep or skip each proposal, and the promises page shows coverage per object and per persona.
Or just say it, in one sentence
"Discounts above 20% must require Finance approval before the quote can be sent." Not sure how to put it? She offers drafts. She says back what she understood, separates what she already has from the short list she needs from you, and asks only about meaning: "Does 'Submit for Finance Review' begin the approval, or only save the quote?"
Watch her do it
A browser opens in our cloud, signed in to your sandbox as Dana. Milita drives; you watch from the conversation and answer if she asks. A strip shows that she is working, as whom, where, which part of the process she is on, how far she has got, and a Stop button. She interrupts only when carrying on could cause a misunderstanding: two controls could both be the one you meant, a value looks like an important boundary, an action could leave Salesforce, or the person she works as cannot do what the step needs.
Each person's part, as that person
If a process crosses people, you tell her each person's part. When Dana submits a quote for approval, Milita signs in as Maria to approve that exact quote. The exact record crosses the handoff.
She proves it, on her own
She writes it up as a draft Promise and asks before running it. Then a fresh cloud session performs the whole process by itself: every person's part, fresh test data, no help. Nothing from the Debug you watched counts toward the result. If every required result holds, the draft becomes a kept Promise.
She keeps it
On the schedule you choose, when you ask, when your pipeline asks through the release gate, and when another Promise finishes. Coming: after a managed-package upgrade, in each Salesforce release preview, and after a sandbox refresh. Quiet while everything holds.
When something changes
"Discount approval changed. A 25% quote now goes straight to Ready to Send instead of Finance Review. It last worked Tuesday at 09:02 and first failed today at 14:18. Deployment 487 is the only recorded event between those two proofs. I can't establish that it caused the change." Infrastructure trouble is reported as infrastructure trouble. An uncertain result is inconclusive, not failed. Only a new independent Proof marks recovery.
When a screen changes, she asks about that one control
"I can no longer identify the Finance submission action. What is that control called now?" You answer in the same conversation; she updates a draft and re-proves it. Until it passes, the last proven version stays in place.
She recognizes a button the way you do.
Milita doesn't store a click position or a fragile code reference. For each control she records several independent clues and checks them against the live page while she works.
- Its role and name
- Its visible label, and the field's underlying API name
- A stable identifier, where the page has one
- The section or dialog it sits in
- The controls around it
Because she knows the field's API name, renaming "Discount %" to "Discount Percent" doesn't confuse her. When the clues disagree, she asks you once which control you meant and remembers your answer as an anchor. If that screen later changes too much, the anchor expires and she asks again rather than guessing. If she had to act on a control she wasn't sure of and a result then fails, the run is reported as inconclusive, not as a business failure.
- New Quote
- Strong · role: button · label "New Quote" · API name Quote.New
- Discount %
- Strong · role: textbox · label "Discount %" · API name Quote.Discount__c
- Status
- Strong · role: text · label "Status" · API name Quote.Status
- ⋯ row action
- Weak · role: button · no label · no API name · I will ask you to name it
Nothing here is a verdict. Only a clean run proves anything.
Two builders you already know how to use.
Workflow Builder
Where one workflow is built, with Milita docked beside it. It borrows the look and behavior of Salesforce Flow Builder because our buyers already know it, but deliberately not its names, so nobody wonders whether they are editing native Flows. Elements: Start, End, Screen, Navigation, Action, Assignment, Decision, Loop, Pause, Create, Get, Update, Delete Records, Assertion, Call Workflow. Every element shows the deterministic steps it runs underneath.
Promise Builder
A page, not a canvas. The Promise's triggers as rows at the top, then numbered stages of workflows, each use with its persona and inputs. It leads with what the Promise proves. Debug runs what is on the canvas in the hosted browser you watch and is never Proof. Activate saves, verifies and puts a workflow version live; activating a workflow re-verifies every active Promise that uses it. Deactivate pauses. Delete removes the thing and never its evidence.
Triggers.
| When | Availability |
|---|---|
| When you ask | Available now |
| On a schedule you choose | Available now |
| When another Promise finishes, passed or finished | Available now |
| When your release pipeline asks, through a scoped API key | Available now · Release gate |
| Every Promise at once, as one Regression with one verdict | Available now |
| After a managed-package upgrade | Coming |
| In each Salesforce release preview | Coming |
| After a sandbox refresh | Coming |
Asked often.
Why not just upload a video?
Do I have to install anything?
Can Milita see my computer?
Can I use her in production?
Does she need admin access?
What if she can't find a control?
Does she replay what I told her?
Tell Milita the process you worry about most.
Free for 3 Promises, forever. Sandboxes only, with access you control.