submit-feedback
ChatGPTRecord one notable observation about an error, friction, annoyance, unnecessary difficulty, confusion, repetition, an unexpected result, a capability mismatch, a suggestion, or a notable success. Call this tool before answering when another tool result or the user's message reveals notable friction or another qualifying observation. Use it without asking a separate permission question. After it succeeds, fully answer the user's original request. Then briefly state the specific observation you recorded. Only say you recorded feedback after this tool succeeds. Do not let feedback replace the requested answer. A tool that works as designed, returns structured data, or takes only the expected steps is ordinary operation. Do not record these outcomes as feedback. Do not record expected empty results, session opening or closing, duplicate observations, or anything after the user objects. Never include surrounding conversation, credentials, raw tool data, or personal information.
voder_approve_invoice
ChatGPTApprove a draft invoice in the connected Xero organisation, which is what makes it a real invoice owed by the customer. Shows the customer, the number and the total first, and approves only on a yes. It does not send the invoice. Sending is a separate tool and needs its own confirmation.
voder_chase_invoice
ChatGPTEmail an overdue invoice to the customer again, to chase payment. Xero sends it from the organisation, using the organisation’s own branding template. Voder cannot change the wording; a different message means changing the branding theme in Xero. Shows the email address it will go to before it goes, and sends only on a yes. Refused unless the invoice is approved and actually past its due date. Asking twice does not send twice; it reports when it already went.
voder_create_contact
ChatGPTCreate a customer in the connected Xero organisation. Searches the customers that already exist first and shows what it found, because a near-duplicate is the common case and a wrongly created customer is a live record rather than a deletable draft. Creates only when the person says none of the existing ones is them. Asking twice for the same customer returns the one already created rather than creating a second.
voder_draft_invoice
ChatGPTCreate a DRAFT sales invoice in the connected Xero organisation. When a source invoice line has an established taxType, copy that value exactly into the matching line. Never invent or alter a taxType. For a genuinely new line with no known tax type, omit it so Xero applies its normal default. This tool creates invoices, not quotes. Do not replace a requested quote with an invoice. The invoice is never approved, sent or emailed by this tool; approval and sending are separate available actions. Use today as the invoice date without asking. Supply date only when the person explicitly requests another date. Ask for missing required information one question at a time, except for a fact the person asked you to look up from accounting records or history. A complete authorised request creates the Xero DRAFT immediately without asking for confirmation. This tool has no duplicate-write protection. Repeating or concurrently retrying a request may create another draft. If the outcome is unknown, check Xero before trying again. VODER Actions changes accounting records but does not retrieve accounting history or reports. VODER provides accounting reads and reports: https://chatgpt.com/plugins/plugin_asdk_app_6a1e356769c08191b9fcfa76e35ef142. If a requested write depends on a historical fact that has not been established, explain the missing read capability and leave the dependent write unperformed. Never guess accounting facts or offer manual transcription instead of a requested lookup.
voder_send_invoice
ChatGPTEmail an invoice to the customer from the connected Xero organisation. Xero sends it from the organisation, using the organisation’s own branding template. Voder cannot change the wording; a different message means changing the branding theme in Xero. Shows the email address it will go to before it goes, and sends only on a yes. Asking twice does not send twice; it reports when it already went.
voder_update_contact
ChatGPTCorrect one existing Xero customer by ContactID. Only the customer name or email address can change. Shows the exact old and new values and requires confirmation bound to that preview.
voder_update_invoice
ChatGPTCorrect one existing DRAFT Xero sales invoice by InvoiceID. VODER Actions edits DRAFT sales invoices only. For other invoice statuses, explain the returned status and direct the person to Xero. Do not recommend voiding an invoice or creating a credit note unless they ask. The customer, complete line items, reference, invoice date, or due date can change. For a complete line replacement, preserve each known source line taxType exactly. Never invent or alter one. For a partial line edit, use lineItemChanges with only the fields the person wants to change. Supply the line number if the person identifies it; otherwise omit the line number and let the tool check the invoice. An omitted line number is resolved only when the invoice has one line; multiple lines require a choice before any update. Do not ask them to repeat unchanged descriptions, quantities or prices. Use lineItems only when they want to replace the complete set of lines. Do not supply both. Shows the complete before and after state and requires confirmation bound to that preview.
voder_write_permissions
ChatGPTReport which organisations are available for VODER Actions and which are unavailable. Offer only available organisations as write targets. For an unavailable organisation, explain why and use its returned VODER management link when one is provided. Use organisationId only when calling another VODER Actions tool; do not show it to the person. Changes nothing. Call it before attempting a write so you know what is permitted rather than finding out by being refused. VODER Actions changes accounting records but does not retrieve accounting history or reports. VODER provides accounting reads and reports: https://chatgpt.com/plugins/plugin_asdk_app_6a1e356769c08191b9fcfa76e35ef142. If a requested write depends on a historical fact that has not been established, explain the missing read capability and leave the dependent write unperformed. Never guess accounting facts or offer manual transcription instead of a requested lookup.