{"id":55446,"plugin_id":"plugin_asdk_app_6a7c5c6b3dd0819193f4aaeb13dceaab","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-26T12:07:18.750Z","digest":"dbba26918af89d23a0f2b519ae478da7d60bb5c3cc716173f9ac2f197f9f5b20","against":null,"payload":{"description":"How to work in an Exact Online administration through the DataFlowr MCP server — resolving the division, choosing between the reporting tools and raw ledger tools, staying inside the query guardrails, and confirming before anything is written. Use whenever a request touches bookkeeping figures, customers, suppliers, invoices, VAT, projects or assets.","included_files":[],"name":"dataflowr-erp","skill_md_contents":"---\nname: dataflowr-erp\ndescription: How to work in an Exact Online administration through the DataFlowr MCP server — resolving the division, choosing between the reporting tools and raw ledger tools, staying inside the query guardrails, and confirming before anything is written. Use whenever a request touches bookkeeping figures, customers, suppliers, invoices, VAT, projects or assets.\n---\n\n# Working in Exact Online through DataFlowr\n\n## Overview\n\nDataFlowr exposes one Exact Online administration as MCP tools. Reads are safe to\nrun; writes create real records in a live administration.\n\nTool names below are the MCP names. Your client may show them with a server\nprefix (`mcp__…__exact_online_divisions`) — same tools.\n\n## Resolve the division first\n\nAlmost every tool takes a `division`. It is Exact Online's internal division\n**Code**, which is not the number users see.\n\n1. Call `exact_online_divisions` before anything else.\n2. Match on the company name or the HID the user mentions — never guess a Code.\n3. One division? Use it without asking. Several and the request is ambiguous?\n   Ask which company they mean.\n\n## Reach for the reporting tools before the ledger\n\nThe reporting tools aggregate server-side against the RGS template tree and\nreturn far less data than pulling lines yourself:\n\n- `financial_report` — trial balance / balance sheet / P&L, with prior-year and\n  budget columns.\n- `financial_period_report` — the same figures per period, for trends.\n- `financial_gl_data` — RGS-scoped GL aggregates. Use it as a **pre-check**\n  before any line-level pull, to find out which accounts are worth opening.\n- `financial_drilldown` — the transactions behind a report line.\n- `financial_kpis`, `financial_query` — ratios and ad-hoc questions over the\n  same tree.\n\nOnly drop to `exact_online_transaction_lines` and friends when you need\nindividual postings that a report line cannot answer.\n\n## Query guardrails\n\nThese are enforced server-side; hitting them is a failed call, not a slow one.\n\n- `exact_online_transaction_lines` must filter on **both** `FinancialYear` and\n  `FinancialPeriod`. A year-only filter is expanded into per-period calls.\n- Year and period field names differ per entity and are preserved verbatim:\n  `ReportingYear`/`ReportingPeriod` on purchase and sales entries,\n  `FinancialYear`/`FinancialPeriod` on transaction lines and bank, cash and\n  general journal entries, `FinYear`/`FinPeriod` on financial periods.\n- There is no `_get`: fetch a single record with `_list` plus an ID filter.\n- Ask for the fields you need. Wide entities have a trimmed default `$select`;\n  widening it costs bandwidth on every row.\n\n## Before you write\n\nCreates and updates hit the live administration.\n\n1. Validate the required fields — the tool schema lists them.\n2. Echo a plain-language summary of the draft (who, what, how much, which\n   division) back to the user.\n3. Wait for an explicit \"yes\". Never chain a write off an assumption, and never\n   batch several writes behind one confirmation.\n\n## Answering\n\nState the figures you retrieved, name the period and the administration they\ncame from, and say when a number could not be tied out. Never compute a\nfinancial figure from memory or fill a gap with a plausible-looking value — if a\ncall failed, say so.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}