record_spend
Record spend. Log every paid call (voice, image, video, model) on the record it made, with its request id.
Where it is
In the media area (films, carousels and pictures in the media library): open it with tools_for { area: "media" }, then call it with use_tool { name: "record_spend", args }.
Does it need a yes?
Runs at once, no yes card: it changes only the office's own working state, and nothing reaches anyone. Here: a cost line.
Inputs
| Input | Type | Needed | About |
|---|---|---|---|
assetId | string | yes | The piece the paid call made · format `^[a-z0-9][a-z0-9-]{0,159}$` |
what | string | yes | What was paid for, e.g. 'Voice-over' · 1 to 200 characters |
usd | number | yes | Cost in US dollars, 0 to 100 · 0 to 100 |
provider | "fal" | "higgsfield" | "elevenlabs" | "openai" | "anthropic" | "google" | "other" | yes | Who was paid |
model | string | no | The model or voice used · 1 to 120 characters |
requestId | string | yes | The provider's request id. The same id with the same details changes nothing · 1 to 120 characters |
at | string | no | When it was made (default now) · up to 40 characters |
editId | string | no | format `^[a-f0-9]{24}$` |
agent | string | no | up to 120 characters |
task | integer | no | The task this work is for, so the owner sees it there. · 1 or more |
run_id | string | no | Your run id from the connector's start, so the output ties back to this session · format `^[A-Za-z0-9_.:@-]{1,120}$` |
Example
{
"name": "record_spend",
"arguments": {
"assetId": "assetId",
"what": "'Voice-over'",
"usd": 0,
"provider": "fal",
"requestId": "requestId"
}
}When it is refused
invalid: The input isn't right. The sentence names the field and the fix; nothing was done. Fix it and call again.not_found: No such thing in this company (a task, file, person, record). Check the number or name, or list first.not_allowed: Not without another step: the owner's yes, your own task held with pick_up, or a setting the owner turns on. The sentence says which.taken: Someone else holds it (another AI on that task). Pick another task.stale: It changed since you read it. Read it again and use the new version.failed: On our side or a service's, never your input. Try again in a minute; if it keeps failing, call report_problem.