Send a fax from OpenClaw
Updated
OpenClaw can send and read faxes for you through the Fax for Agents skill on ClawHub. You describe the fax in plain words. OpenClaw prepares the page, gets a quote, sends it and checks the delivery state in one turn. By default it sends inside the limits your organization set, with no approval per fax. This guide was recorded in Sandbox mode, so nothing reached a real fax line.
Before you start
- A Fax for Agents account and an API key. Create the key in the dashboard at app.faxforagents.com. Use an
ffa_test_key for the free sandbox. - OpenClaw with the skill installed. Run
openclaw skills install @faxforagents/fax-for-agents, thenopenclaw config set skills.entries.fax-for-agents.apiKey --ref-provider default --ref-source env --ref-id FAXFORAGENTS_API_KEY. ExportFAXFORAGENTS_API_KEYin the shell that starts OpenClaw. The config line is needed because the exec tool does not inherit the variable from your shell. - A model provider signed in to OpenClaw, for example
openclaw onboard --auth-choice openai-api-key. The guide used gpt-5-mini. - A short note in the workspace
AGENTS.md. Run the skill's REST calls in the same turn, never print the key, never invent an id. OpenClaw reads the workspace files on every turn. - The Connected apps switch in Settings is on by default. The default limits are $5.00 per fax and 20 faxes a day.
1.Check the skill
Open a terminal and look at the installed skill.
2.Open OpenClaw
Start the terminal UI in local mode.
3.Describe the fax
Type what the fax should say and where it goes. Name Fax for Agents so the skill is used.
4.Send it
OpenClaw does the whole routine itself with the REST calls from the skill.
5.Check the evidence
Ask for the delivery evidence when you want the full record.
6.Read the inbox
Received faxes work the same way. Ask for your inbox.
What the limits mean
Open Settings in the dashboard. The Connected apps card holds the switch "Let connected apps send without asking". Under it are two fields, "Amount per fax, at most" ($5.00) and "Faxes per day" (20). Apps like OpenClaw send inside these limits with no approval per fax. Turn the switch off and every send waits for a person. Finer limits, such as destinations or one app only, live under Policies. See the guide Your assistant sends within limits by default.
Approve every fax instead
- In Settings, turn off "Let connected apps send without asking" and choose Save.
- Ask OpenClaw to quote the fax. The quote says approval is required.
- Say "Ask a person to approve it." A person approves in the dashboard or with the
ffacommand line, then you tell OpenClaw to send.
The routine is the same as in Approve every fax from Claude Code.
Troubleshooting
- OpenClaw asks "Shall I send this now?" or "Proceed?" before it acts. Say "Yes, go ahead." It runs the calls in the next turn.
- OpenClaw says "Sending now" and ends the turn without a fax id. The model narrated instead of acting. Say "Run the REST calls from the skill now and report the fax id and its state." Keep the
AGENTS.mdline in place. - The evidence answer shows
pages: nullandattempts: null. The model read the wrong field names. Say "Read the evidence object on the fax record: pages_sent, attempt_number and remote_station_id." - Every call answers 401 invalid_token although the key is exported. The OpenClaw exec tool does not inherit the variable. Run the
openclaw config set skills.entries.fax-for-agents.apiKeyline from "Before you start" and start OpenClaw again. - OpenClaw asks "sandbox or live" or wants you to paste the key. Say "with the configured key" in your prompt, as in step 3. The skill then uses the configured key.
- OpenClaw writes a draft file in the workspace instead of sending. A small model skipped the skill. Name Fax for Agents in the prompt and use a model such as gpt-5-mini or larger.
- OpenClaw says the quote requires approval although you expect a plain send. An owner turned the Connected apps switch off, or the fax is above a limit. Check Settings, Connected apps for your environment.