add_customer_tag
ChatGPTAdd a tag to a customer. Requires write access. The tag must be a tag of the company (see list_customer_tags without customer_id).
add_customer_to_portfolio
ChatGPTAdd a customer to a customer portfolio. Requires write access and the portfolio-management permission (admins have it). Portfolios synced from an accounting system cannot be changed. Use list_portfolios to find portfolio ids.
assign_customer_owner
ChatGPTAssign a customer's account manager (user_assigned). Requires write access. The assignee must be an active member of the company (use list_users to find valid user_ids).
clear_invoice_dispute
ChatGPTTake a disputed invoice out of dispute. Requires write access. The invoice must be disputed. Any other invoice returns an error, not "unchanged", because there is no target status to compare with.
create_match
ChatGPTReconcile a bank transaction against invoices. Requires write access and reconciliation access. Each line can take at most the balance still open on its invoice. The total is not checked against the transaction: if the lines and corrections cover less than the amount still to reconcile, the transaction stays partially reconciled.
create_note
ChatGPTAdd a note to a customer's timeline. Requires write access to have been granted for this connection.
create_person
ChatGPTCreate a manual customer contact (person). Requires write access to have been granted for this connection.
create_promise_to_pay
ChatGPTRecord a promise to pay from a customer. Requires write access. Creates an active promise-to-pay for the customer.
create_task
ChatGPTCreate a follow-up task for a customer. Requires write access to have been granted for this connection.
delete_person
ChatGPTDelete a manual customer contact (soft delete). Requires the delete scope to have been granted for this connection. Contacts imported from an external source cannot be deleted.
filter_report_data
ChatGPTFind the rows of a saved spreadsheet report file that match a condition. Take report_file_id from list_report_files. Works only on spreadsheet (xlsx) files, not on PDF files.
generate_customer_statement
ChatGPTStart generating a statement file for a customer. Requires write access. The file is built in the background: call get_customer_statement with the returned id until its status is "ready".
generate_report_data
ChatGPTGenerate one live report for a company from current data. Returns JSON with the report sheets (headers and rows) and pagination metadata. report_type is one of: - customers_overview: All customers with a balance: due/overdue amounts, open invoices, days late. - time_to_pay: Customers with average days late and average days to pay. - incorrect_contacts: Customers with missing or incorrect contact information. - ageing_breakdown_by_customer: Aging balance breakdown by customer with amounts in company currency. - top_debtors_balance_overdue: Top debtors ranked by overdue balance. (optional order_by: -balance_overdue_company_currency, -avg_days_late, -invoices_overdue) - ar_aging_detail: Detailed A/R aging with invoices, credit notes, transactions, and journal entries. - invoices_actions: Open invoices with latest collection actions per customer. - overview_ageing_balance: Open invoices aging overview without actions. - customers_touch_points: Customer communication statistics over a date range. (needs date_from and date_to) - transactions_received_list: Payments received over a date range with invoice details. (needs date_from and date_to) - payment_charges_processed: Payment charges processed over a date range. (needs date_from and date_to) - promises_to_pay: Promise to pay agreements with due dates and status. - kolleno_access_logs: Portal/system access logs over a date range. (needs date_from and date_to) - workflow_objects_error_details: Error details for customers in a workflow. (needs workflow_id)
get_aging_summary
ChatGPTGet overdue breakdown by aging bucket (current, 1-30, 31-60, 61-90, 90+ days).
get_collection_insights
ChatGPTGet collection performance: amount collected, collection rate, invoices paid.
get_credit_note
ChatGPTGet detailed information about a specific credit_note by ID.
get_customer
ChatGPTGet detailed information about a specific customer by ID.
get_customer_statement
ChatGPTGet the status of a customer statement and, once ready, its download link.
get_dashboard_stats
ChatGPTGet general balance statistics for a company. Returns total outstanding balance, net balance, and related KPIs in the company's default currency.
get_email_received
ChatGPTGet detailed information about a specific email_received by ID.
get_email_sent
ChatGPTGet detailed information about a specific email_sent by ID.
get_invoice
ChatGPTGet detailed information about a specific invoice by ID.
get_note
ChatGPTGet detailed information about a specific note by ID.
get_payment_charge
ChatGPTGet detailed information about a specific payment_charge by ID.
get_payout
ChatGPTGet detailed information about a specific payout by ID.
get_person
ChatGPTGet detailed information about a specific person by ID.
get_report_download_url
ChatGPTGet a download link for a saved report file. Take report_file_id from list_report_files. Returns JSON with the filename and url. The link expires after 3 minutes: call this tool again for a fresh link instead of reusing an old one.
get_report_summary
ChatGPTSummarize a saved report file without reading every row. Take report_file_id from list_report_files. Works on xlsx and PDF files. For a live report from current data, use generate_report_data instead.
get_top_overdue_customers
ChatGPTGet the top customers by overdue amount for a company. Returns each customer's overdue balance, percentage of total overdue, number of overdue invoices, average days late, and promise-to-pay status.
get_transaction
ChatGPTGet detailed information about a specific transaction by ID.
get_workflows_performance
ChatGPTGet workflow performance: balance recovered, enrolment counts, collection amounts.
list_companies
ChatGPTList all companies the authenticated user has access to. Call this first to discover available company_ids, which are required by all other tools. Returns: JSON list of companies with id, name, and currency.
list_credit_notes
ChatGPTList credit notes with amounts and allocation status. Supports pagination and filtering.
list_customer_tags
ChatGPTList tags. With customer_id, the customer's tags; without, every tag of the company (use these ids with add_customer_tag).
list_customers
ChatGPTList customers with balances, aging, and payment behaviour. Supports pagination and filtering.
list_email_profiles
ChatGPTList the email profiles you can send from to a customer.
list_email_receiveds
ChatGPTList emails received from customers with subject, sender, and threat assessment. Supports pagination and filtering.
list_email_sents
ChatGPTList emails sent to customers with subject, recipients, status, and attachments. Supports pagination and filtering.
list_invoices
ChatGPTList invoices with amounts, dates, and payment status. Supports pagination and filtering.
list_notes
ChatGPTList customer timeline notes with content, related records, and authorship. Supports pagination and filtering.
list_payment_charges
ChatGPTList payment charges (Kolleno-initiated payments) with status and provider info. Supports pagination and filtering.
list_payouts
ChatGPTList payouts (settlements from payment providers to bank). Supports pagination and filtering.
list_persons
ChatGPTList customer contacts (people) with names, email, position, and primary/active status. Supports pagination and filtering.
list_portfolios
ChatGPTList the customer portfolios of a company. Use this to find portfolio ids for the portfolio_ids and exclude_portfolio_ids filters of the list, analytics and report tools.
list_promises_to_pay
ChatGPTList promises to pay, latest due date first. Only promises of customers you can access are returned. Without customer_id, this needs Actions Board access. Rejected promises are hidden unless include_rejected is true or status is "rejected".
list_report_files
ChatGPTList generated report files for a company.
list_report_types
ChatGPTList the report types that saved report files belong to. Pass a returned name as report_type_name to list_report_files.
list_tasks
ChatGPTList follow-up tasks, latest due date first. Only tasks of customers you can access are returned. Without customer_id, this needs Actions Board access.
list_transactions
ChatGPTList transactions (payments received) with amounts and methods. Supports pagination and filtering.
list_unreconciled_transactions
ChatGPTList bank transactions that are not fully reconciled, newest first. Requires reconciliation access. Returns unreconciled and partially reconciled transactions on the company's displayed bank accounts.
list_users
ChatGPTList the active users of a company. Use this to find a user_id to pass to assign_customer_owner.
mark_invoice_disputed
ChatGPTMark an invoice as disputed by the customer. Requires write access. Only an open, partially paid, installments or bad debt invoice can move to dispute. The reason is recorded as a note on the invoice. An invoice that is already disputed returns status "unchanged" and no note.
pause_customer_chasing
ChatGPTPause automated chasing (dunning) for a customer. Requires write access and the chasing-status-change permission (admins have it implicitly). While paused, the customer is excluded from automated reminders.
pause_invoice_chasing
ChatGPTPause automated chasing (dunning) for one invoice. Requires write access and the chasing-status-change permission (admins have it implicitly). While paused, the invoice is left out of automated reminders. An invoice that is already paused returns status "unchanged" and no note.
read_report_data
ChatGPTRead a page of rows from a saved report file. Take report_file_id from list_report_files. Works on xlsx and PDF files; a PDF file returns one row of text for each PDF page. For a live report from current data, use generate_report_data instead.
remove_customer_from_portfolio
ChatGPTRemove a customer from a customer portfolio. Requires write access and the portfolio-management permission (admins have it). Portfolios synced from an accounting system cannot be changed.
remove_customer_tag
ChatGPTRemove a tag from a customer. Requires write access.
resume_customer_chasing
ChatGPTResume automated chasing (dunning) for a customer. Requires write access and the chasing-status-change permission (admins have it implicitly). Clears any pause and its expiry.
resume_invoice_chasing
ChatGPTResume automated chasing (dunning) for one invoice. Requires write access and the chasing-status-change permission (admins have it implicitly). An invoice that is not paused returns status "unchanged" and no note.
set_customer_risk
ChatGPTSet a customer's manual risk / warning level (0-10). Requires write access. Raising the level above its current value requires a `reason`, which is recorded as a note on the customer's timeline.
set_invoice_auto_charge
ChatGPTInclude an invoice in automatic charging runs, or exclude it. Requires write access and access to payment charges. An invoice already in the requested state returns status "unchanged".
sort_report_data
ChatGPTSort a saved spreadsheet report file by a column and return the top rows. Use it for top or bottom N questions. Take report_file_id from list_report_files. Works only on spreadsheet (xlsx) files, not on PDF files.
update_note
ChatGPTUpdate an existing customer note. Only the fields you pass are changed. Requires write access to have been granted for this connection. System notes (notifications and change logs) cannot be edited.
update_person
ChatGPTUpdate an existing manual customer contact. Only the fields you pass change. Requires write access to have been granted for this connection. Contacts imported from an external source cannot be edited.
update_task
ChatGPTUpdate an existing task. Only the fields you pass are changed. Requires write access to have been granted for this connection.
upload_file
ChatGPTUpload a file and attach it to a customer. Requires write access to have been granted for this connection. The file is owned by the customer (sharing_mode=CUSTOMER). Content must be base64-encoded and the filename must include an extension (the MIME type is validated against the extension).