task ▸ template opened 0
Login-gated automation

Submit an invoice

Sign in to a vendor or expense portal on your own account, fill the invoice form, and submit it with the confirmation captured.

5 steps 20-60s Safety rails on
Writ runs on your own accounts, with your own credentials and data, on sites you are authorized to use.
guard ▸ rails set 01
01
safety

This template can take an action with consequences.

Safety rails on Action templates lead with guardrails. Before anything happens, every guard below is in force: a dry-run preview, a confirm-gate, a rate limit, an audit log, and idempotency so a retry never double-acts.

  • Confirm-gate before submitting
  • Dry-run
does ▸ outcome shaped 02
02
what it does

The outcome

Sign in to a vendor or expense portal on your own account, fill the invoice form, and submit it with the confirmation captured.

Backed by a real, installable recipe, not a generated stub. Install it, attach your own inputs, and run it on your own accounts.

Expected output

A successful run returns a structured result:

output.json
json
{ "submitted": true, "reference": "...", "amount": 0.00 }
steps ▸ recipe mapped 03
03
the steps

5 steps

Real step types from the 30+ in the workflow vocabulary. Edit any of them after you install.

  1. 1
    navigate

    Open the portal's new-invoice page.

  2. 2
    twofa

    Sign in with a Persona, including any 2FA.

  3. 3
    fill

    Enter the invoice fields from your inputs.

  4. 4
    click

    Attach the document and submit.

  5. 5
    extract

    Capture the submission reference.

inputs ▸ shape defined 04
04
what you provide

Inputs

  • portal_urlurl must match ^https?://
  • amountnumber must match ^[0-9]+(\.[0-9]{2})?$
  • invoice_numberstring
Resources you attach
Persona (your portal account)

Input shape

Inputs are validated against per-slot regex rules before a run starts.

inputs.json
json
{
  "portal_url": "<url>"  // matches ^https?://,
  "amount": "<number>"  // matches ^[0-9]+(\.[0-9]{2})?$,
  "invoice_number": "<string>"
}

Estimated runtime: 20-60s.

run ▸ template installed 05

Install in one click

Open the template in the app, attach your own inputs and resources, and run it on your machine or the cloud.

Local runs have no compute charge and do not use Writ cloud compute. Paid plans are for cloud execution, faster monitors, teams, managed AI, and fleet features.

sites ▸ works here 06
06
works on

Point it at a site

This recipe adapts to any of these, all on your own authorized accounts.

faq ▸ questions answered 08
08
faq

Submit an invoice questions

What does the Submit an invoice template do?
Sign in to a vendor or expense portal on your own account, fill the invoice form, and submit it with the confirmation captured.
Where does it run?
On your own machine free of compute charges with the local agent, or on metered cloud running time. Either way it runs on your own authorized accounts and data.
Does it spend money automatically?
No spend happens without the safety rails: Confirm-gate before submitting, Dry-run. You stay in control with a confirm-gate and a rate limit.
rec ▸ ready

Start with the Submit an invoice template

Install it, attach your own inputs, and run it on your own account in minutes.