Skill instructions
adjust-scheduled-follow-ups1.56 KB
View saved version →
---
name: adjust-scheduled-follow-ups
description: Review and adjust future Billabex payment follow-up emails for selected customer accounts. Use to change a scheduled send date, recipient, subject, language, wording, or tone before an email is sent.
---
# Adjust Scheduled Follow-ups
1. Resolve the organization if needed, find the customer with `list-accounts`, then use `list-communications` with the account and `type` `OutgoingEmail`, and `get-communication` on the matching row, to identify the exact unsent email.
2. Show the customer, current scheduled date, recipients, subject, and content before proposing a change.
3. Treat a tone request as an edit to the selected scheduled emails, not as a persistent account preference. Preserve facts, amounts, invoice references, commitments, and the agent's third-party identity.
4. Preview the exact new date or email content. Do not include a signature because Billabex adds the current agent's signature automatically.
5. Use `update-outgoing-communication` only after explicit approval of the unambiguous email and exact changes. Update multiple emails one by one only when the user clearly approves the full list. The update answers with a short confirmation, not the email: to show the saved version, read it again with `get-communication`.
6. If no future email exists, explain that this workflow cannot create one and do not send an immediate email instead.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
analyze-aged-receivables1.1 KB
View saved version →
---
name: analyze-aged-receivables
description: Build an aged receivables analysis from unpaid invoices and customer balances. Use for an aging balance, overdue buckets, late-payment exposure, top overdue customers, or prioritization by days overdue.
---
# Analyze Aged Receivables
1. Resolve the organization only when needed, then use `list-invoices` for issued and overdue invoices with a remaining amount. Continue through all relevant pages.
2. Compare each due date with today's date and group remaining amounts into not due, 1 to 30 days overdue, 31 to 60 days, 61 to 90 days, and more than 90 days.
3. Use `list-customer-balances` to reconcile portfolio totals and rank customer exposure. Explain any difference caused by filters, pagination, credits, or data timing.
4. Present totals and percentages by aging group, the largest customer exposures, the oldest invoices, and the recommended priorities.
Keep this workflow read-only. Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
analyze-receivables-statistics1.29 KB
View saved version →
---
name: analyze-receivables-statistics
description: Calculate useful Billabex receivables statistics from customer balances, invoices, communications, and tasks. Use for portfolio KPIs, outstanding totals, overdue rates, payment follow-up activity, customer concentration, or management reporting.
---
# Analyze Receivables Statistics
1. Resolve the organization with `list-organizations` only when needed.
2. Use `list-customer-balances` for account exposure and `list-invoices` for invoice counts, amounts, payment status, and overdue status. Use `list-communications` and `list-account-tasks` only when the requested statistics require them.
3. Continue through every relevant page before calculating a portfolio-wide result. If complete pagination is not practical, label the result as a partial sample.
4. Calculate only metrics supported by retrieved fields. Never infer a payment date, recovery rate, trend, or historical comparison from current-state data alone.
5. Present the requested KPIs first, followed by concentration risks, notable exceptions, the covered period, and the calculation basis.
Keep this workflow read-only. Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
control-automatic-payment-follow-up1.46 KB
View saved version →
---
name: control-automatic-payment-follow-up
description: Review whether automatic payment follow-up should be paused or resumed for a customer account, explain the impact, and perform the change only on explicit request. Use for pausing reminders, resuming reminders, or checking follow-up blockers.
---
# Control Automatic Payment Follow-up
1. Resolve the organization if needed and identify exactly one customer with `list-accounts`. Ask for clarification when several accounts match.
2. Review the account balance, recent communications, and open tasks as needed to explain the current situation and the likely impact of pausing or resuming automatic payment follow-up.
3. When the user asks for analysis or advice, recommend an action without changing the account. For a suspension, propose the reason that matches the facts.
4. Use `pause-account-dunning` or `resume-account-dunning` only after an explicit request for the unambiguous account. A dated reason requires an explicit future `until`; never invent the date. Never apply the change in bulk or guess the target.
5. Confirm the resulting pause state returned by the tool. To explain what still holds follow-up back or when the next message becomes possible, read `get-account-dunning-status`: the pause and resume answers only carry the pause state. Never expose technical identifiers.
Respond in the language of the user's latest request. Copy proper names exactly. Use natural business vocabulary and avoid internal terminology.
enrich-customer-records1018 Bytes
View saved version →
---
name: enrich-customer-records
description: Add customer contacts or invoices to Billabex from complete user-provided data and documents. Use for enriching an account, adding a debtor contact, or importing a missing invoice.
---
# Enrich Customer Records
1. Resolve the organization if needed and identify exactly one customer with `list-accounts`.
2. Check existing data with `list-contacts` or `list-invoices` to prevent obvious duplicates.
3. For a contact, require the exact full name and two-letter language code. Use `create-contact` only after the user confirms the account and values.
4. For an invoice, follow the `import-invoice` skill: it also covers a customer that does not exist yet.
5. Never guess missing financial data, dates, language, currency, customer, or document references. Summarize the created record without exposing technical identifiers.
Respond in the language of the user's latest request. Copy proper names exactly. Use natural business vocabulary and avoid internal terminology.
identify-receivables-risks1.17 KB
View saved version →
---
name: identify-receivables-risks
description: Identify and prioritize customer receivables risks, including high outstanding balances, silent customers, undelivered emails, and missing information. Use for risk reviews, priority lists, blocked follow-up, or silent customer analysis.
---
# Identify Receivables Risks
1. Resolve the organization with `list-organizations` only when needed.
2. Use `list-customer-balances` for financial exposure and `list-silent-accounts` for customers without replies.
3. Use `list-communications` with delivery status filters to find bounced or complained emails. Use `list-account-tasks` and `list-contacts` to identify missing information or contact blockers.
4. Rank customers by amount at risk, age, silence, delivery failure severity, and unresolved dependency. Give the evidence and one recommended next action for each priority.
Keep this workflow read-only. Call a write tool only after the user explicitly requests that exact action and the target is unambiguous.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
import-invoice2.43 KB
View saved version →
---
name: import-invoice
description: Import an invoice document into Billabex for payment follow-up, creating the customer account first when it does not exist yet. Use when the user shares an invoice PDF or image, or asks to add, upload or import an invoice.
---
# Import Invoice
1. Resolve the organization if needed. Read the invoice and extract its number, issue date, due date, currency, total amount including tax, tax amount, any amount already paid, and the customer: legal name, SIREN or SIRET, VAT number and billing address. Never guess a missing value: ask for it.
2. Find the customer with the `query` parameter of `list-accounts`, trying the legal name and then a shorter distinctive part of it. When candidates appear, compare their SIREN, VAT number or address with `get-account`. Ask the user to choose when several remain plausible.
3. When no account matches, propose to create one from the invoice: legal name, SIREN, VAT number, billing address and the invoice currency. Call `create-account` only after the user confirms these values. If the organization syncs invoices from a billing tool, say that the customer may simply not be synced yet, and let the user decide.
4. Check for a duplicate with `list-invoices` for that account, filtering `number` equal to the invoice number. If the invoice already exists, show it and stop: never change its number to get around the duplicate.
5. Summarize the customer and invoice values, then generate one UUID `importId` and keep it with exactly the same values for every retry.
6. Call `create-invoice-from-file` with the native ChatGPT attachment. Never invent a download URL or ask for base64. If the file cannot be transferred or the download fails, call `prepare-invoice-upload` with the SAME `importId` and values, then give the user the link exactly as returned, in full: the link expires after 15 minutes and preparing it does not create the invoice. Report success only once the import result or `get-invoice` confirms the invoice.
7. Check that the customer has a contact with an email address using `list-contacts`. Without one, Billabex cannot follow up: offer to add one with `create-contact`, using only a name, email and language the user provides.
8. Confirm the import in business terms, without technical identifiers.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
prepare-daily-receivables-brief1.18 KB
View saved version →
---
name: prepare-daily-receivables-brief
description: Prepare a daily customer receivables brief covering changes from the last 24 hours, open tasks, payments, newly overdue invoices, and today's priorities. Use for daily brief, morning review, or changes since yesterday.
---
# Prepare Daily Receivables Brief
1. Resolve the organization with `list-organizations` only when the context does not identify it.
2. Read the last 24 hours with `list-communications` (filtered on that date range, incoming and outgoing at once), `list-invoices`, `list-account-tasks`, and `list-customer-balances` as needed.
3. Summarize payments received, newly overdue invoices, customer replies, future emails already scheduled by Billabex, and tasks created because the agent needs user input.
4. Rank today's actions by urgency, financial exposure, and what is blocking the autonomous payment follow-up.
Keep this workflow read-only. Call a write tool only after the user explicitly requests that exact action and the target is unambiguous.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
prepare-payment-follow-up-email1.37 KB
View saved version →
---
name: prepare-payment-follow-up-email
description: Prepare a professional payment follow-up email from the customer account, invoice, contact, and communication history, and send it only after explicit approval. Use for drafting or sending a payment reminder or customer follow-up.
---
# Prepare Payment Follow-up Email
1. Resolve the organization with `list-organizations` when needed and use `get-organization` to retrieve the current Billabex agent's exact name. Find one customer with `list-accounts`, then review its balance, invoices, contacts, recent communications, and open tasks as needed.
2. Draft a concise, diplomatic email in the current agent's name, as an independent third party acting on behalf of the organization. Use first-person singular and never imply membership in the organization.
3. Copy proper names, invoice references, amounts, currencies, and dates exactly from the retrieved data. Do not invent a deadline or commitment.
4. Do not add a signature because `send-outgoing-communication` adds it automatically.
5. Treat drafting as read-only. Send only after the user explicitly approves the complete recipients, subject, body, and unambiguous customer account.
Respond in the language requested for the email. Otherwise use the language of the user's latest request. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
review-customer-account1.46 KB
View saved version →
---
name: review-customer-account
description: Review one customer account across invoices, credit notes, outstanding balance, contacts, communications, tasks, and the recommended next action. Use for a complete customer situation, account review, or next-step recommendation.
---
# Review Customer Account
1. Resolve the organization if needed, then find the customer with the `query` parameter of `list-accounts`. Ask for clarification when several names match.
2. Use `list-customer-balances` and select the balance whose `accountId` matches the customer. If one exists, pass its `id` to `get-customer-balance` as `balanceId`.
3. Use `get-account`, `list-invoices`, `list-credit-notes`, `list-contacts`, `list-communications` for the account, and `list-account-tasks` as needed. Open a communication with `get-communication` only when its content matters.
4. Present the financial position, credits, contacts, communication history, next scheduled email, open tasks, blockers, and payment behavior.
5. Explain what Billabex is currently doing for the account and recommend one clear next action without executing it.
Keep the review read-only. Call a write tool only after the user explicitly requests that exact action. Require a clear target and complete content before any destructive or irreversible action.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.
triage-account-tasks1.75 KB
View saved version →
---
name: triage-account-tasks
description: Review tasks created when the autonomous Billabex agent is blocked, explain the missing decision or information, and help the user respond or cancel a task. Use for blocked accounts, pending questions, requested approvals, or task follow-up.
---
# Triage Account Tasks
1. Resolve the organization if needed, find the customer with `list-accounts`, then use `list-account-tasks` and `get-account-task` to inspect tasks created because the agent needs user input.
2. Summarize what is blocking the autonomous payment follow-up, what is requested, why it matters, and the related account or balance context.
3. Prioritize tasks by urgency and financial exposure. Propose the minimum response needed to unblock the agent.
4. Keep the review read-only. Use `add-account-task-text-interaction` only when the user explicitly provides or approves the exact free-form response.
5. After explicit user approval, record the decision with `answer-account-task`: pass `accountTaskId` and `answer`, whose `kind` matches the decision the task awaits (`eligibility`, `contact-change`, `first-outreach`, `contact`, `next-action`, `payment-arrangement`, `email-draft`, `recipients`, `resume` or `unknown`) and whose `value` is the approved decision. Read its input schema for the shape of each `value`. Never invent a decision or use a tool absent from the connected server. The tool only confirms that the response was recorded: read `get-account-task` to report the task's new state.
6. Use `cancel-account-task` only after an explicit request. Never bypass its confirmation.
Respond in the language of the user's latest request. Copy proper names exactly. Never expose technical identifiers. Use natural business vocabulary and avoid internal terminology.