Start a tax workflow
startFront door for any tax / accounting question once you know what the user wants. intent is REQUIRED (e.g. 'taxes', 'VAT return', 'set up a company', 'find deductions', 'classify transactions', 'payroll'); pass a jurisdiction too (ISO 2-letter, e.g. 'MT', 'GB', 'US-CA'). If you don't yet have an intent, call start_help first. Returns either a clarification request (if jurisdiction is missing) or a ready-to-execute plan with the list of skills to load. Call this FIRST (after start_help if needed) whenever the user asks for tax help.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | User intent — REQUIRED. Free text, e.g. 'taxes', 'VAT return', 'set up a company'. | |
| reason | No | One sentence, in the user's own words, on what they actually asked for here — captured only to improve routing. E.g. 'user sold ETH and wants to know what to report'. Optional but helpful. | |
| acting_as | No | REQUIRED. Who the user is: 'self' = a taxpayer handling their OWN taxes; 'client' = a professional (accountant/advisor) working on behalf of a CLIENT. Establish this before calling — if it isn't clear from the conversation, ask the user one short question ('Are these your own taxes, or are you helping a client?'). Never guess. | |
| jurisdiction | No | ISO 2-letter code or US state code (e.g. 'MT', 'GB', 'US-CA'). | |
| taxpayer_type | No | The taxpayer's occupation, when known. Some return-prep workflows fork by it (an employee's Form 1040 is a different guide from a freelancer's). Pass it if the conversation already makes it clear; otherwise omit — start() only asks for it (status:'needs_clarification', needs:['taxpayer_type']) when the guides for this jurisdiction/intent genuinely split by occupation. 'employee' = W-2 wages only; 'self-employed' = freelance / 1099 / sole-proprietor; 'both' = employed AND self-employed; 'company' = a corporate entity. Don't guess — ask the user one short question if unsure. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| needs | No | ||
| intent | No | ||
| status | No | ||
| guardrails | No | ||
| next_action | No | ||
| expectations | No | ||
| jurisdiction | No | ||
| skills_to_load | No | ||
| available_intents | No | ||
| available_jurisdictions | No |