[{"name":"add_data_writer_job","description":"Create a new export (data writer job) that takes one or more existing imports (data queries) and writes them out in a chosen format to a destination (Conviu internal storage, FTP, API). Provide the source data query uids, the output format, the destination (writer), and a schedule.","readOnly":false,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"name","type":"string","required":true,"description":"Export (data writer job) name"},{"name":"dataQueryUids","type":"array","required":true,"description":"The SOURCE of the export: the \"uid\" values of the data queries to export from, taken from list_data_queries (each existing import is one data query). At least one."},{"name":"formatSmallUid","type":"string","required":true,"description":"Output format UID10 — the exact \"smallUid\" from get_data_source_formats (e.g. \"yr8rxrb9qs\"). NEVER a type code, name, or guess."},{"name":"schedule","type":"string","required":true,"description":"Crontab schedule, 5 fields. Minute = ONE number 0-59 (never \"*\" or a list); other fields \"*\" or a comma-list of numbers — NO ranges (\"1-5\"), NO steps (\"*/10\"). Shortest interval = hourly. Shapes: \"M * * * *\" hourly, \"M H * * *\" daily, \"M H * * D\" weekly, \"M H Dom * *\" monthly, \"M H Dom Mon *\" yearly."},{"name":"writerType","type":"string","required":false,"description":"Writer (destination) type. Default \"CONVIU\" = internal storage with a download/open URL (~98% of exports) — OMIT unless the user explicitly asked for another destination (e.g. \"FTP\"; then call get_data_source_writers and pass the returned \"type\" verbatim)."},{"name":"writerConfiguration","type":"object","required":false,"description":"{} for the default CONVIU storage. Otherwise keys from the writer's configurationSchema (get_data_source_writers): FTP {url, path, login, password}; connector-based {connectorAccountUid}."},{"name":"compressionType","type":"string","required":false,"description":"Output compression: \"none\" (default — use it unless the user explicitly asks), \"gz\" (gzip) or \"zip\"."},{"name":"dataMode","type":"enum","required":false,"description":"Which items to export: ALL = full export (default)."},{"name":"active","type":"boolean","required":false,"description":"Whether the export starts active. Defaults to true; omit it."},{"name":"blockWhen","type":"object","required":false,"description":"\"Block export when…\" guard conditions. Provide ONLY the flags the user wants to change; the others are preserved. Omit this object entirely if blocking is not being changed."},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type (e.g. \"product\", \"order\")"}]},{"name":"add_data_writer_job_rule","description":"Create a new export rule on a data writer job. First follow get_workflow(create_export_rule). The group is derived from the single `settings` branch. Settings element references and export-field FQL both use the exact full `fields` key from get_data_writer_job (FQL wraps it in single quotes); dynamic keys are validated again before writing. The tool always stores conditions in RULES mode.","readOnly":false,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Parent data writer job UID32"},{"name":"name","type":"string","required":true,"description":"Rule name"},{"name":"settings","type":"union","required":true,"description":"Typed rule settings. Provide EXACTLY ONE branch matching the rule group: addElement, editElement, hideElement, hideItem, showItem, bulkEdit, or imageEdit. Inside addElement/editElement provide EXACTLY ONE transform branch. Enum fields take GraphQL enum names (usually uppercase, e.g. \"DEEPL\" or \"PREPEND\"; canvas.exportAs is lowercase \"png\"/\"jpeg\"). Fields with backend defaults may be omitted. Settings element references MUST be exact map keys returned in `fields` by get_data_writer_job (the full path, e.g. \"SHOPITEM > EAN\"); never infer, translate or shorten them to the last segment. In addElement/editElement value, source is an exact fields map key when rewriteType is ELEMENT, but an exact variable name from reliable context when rewriteType is BULK. For hideElement, elements is a list and one rule hides every element in it, so hiding several elements under the same conditions takes ONE rule, not one per element. For imageEdit, imagePath MIRRORS path: pass the SAME exact fields map key in both (the editor reads and writes one image element)."},{"name":"conditions","type":"string","required":true,"description":"FQL conditions selecting which items the rule applies to. A field has exactly TWO valid forms and anything else silently never matches: `%variable%` (PREFERRED) — an exact `name` from the `variables` catalogue of get_data_writer_job, percent signs INCLUDED (`%price-vat%:\"100\"`, never `price-vat`), reading the item source data; or `'FULL > PATH'` — an exact `fields` key in single quotes (`'SHOPITEM > PRICE_VAT':\"100\"`, never `'PRICE_VAT'`), reading the rendered output, only when the rule targets the finished feed or no variable fits. Both catalogues come from get_data_writer_job; `list_data_queries` provides neither. Pass \"\" for all items and always for BULK_EDIT."},{"name":"active","type":"boolean","required":true,"description":"Whether the rule is active"},{"name":"visible","type":"boolean","required":false,"description":"Whether the rule is visible in the job detail (defaults to true)"},{"name":"position","type":"number","required":false,"description":"Position in execution order (appended after existing rules when omitted)"},{"name":"description","type":"string","required":false,"description":"Rule description"},{"name":"labels","type":"array","required":false,"description":"Label names"},{"name":"applicableFrom","type":"string","required":false,"description":"Datetime the rule starts applying. Format MUST be `YYYY-MM-DDTHH:MM:SS+HH:MM` (a `Z` suffix is accepted too). A bare date, a datetime without an offset, or milliseconds are silently discarded by the backend and the field stays empty."},{"name":"applicableTill","type":"string","required":false,"description":"Datetime the rule stops applying. Format MUST be `YYYY-MM-DDTHH:MM:SS+HH:MM` (a `Z` suffix is accepted too). A bare date, a datetime without an offset, or milliseconds are silently discarded by the backend and the field stays empty."}]},{"name":"clone_data_source","description":"Create copies of one or more existing data sources (pass an array of UID32s).","readOnly":false,"parameters":[{"name":"uids","type":"array","required":true,"description":"Array of data source UID32s to clone"}]},{"name":"clone_data_writer_job","description":"Create a copy of one or more export jobs with all their rules.","readOnly":false,"parameters":[{"name":"uids","type":"array","required":true,"description":"Data writer job UID32s to clone"}]},{"name":"clone_data_writer_job_rule","description":"Create a copy of one or more export rules, optionally into a different job.","readOnly":false,"parameters":[{"name":"uids","type":"array","required":true,"description":"Data writer job rule UID32s to clone"},{"name":"dataWriterJobUid","type":"string","required":false,"description":"Target data writer job UID32"},{"name":"dataWriterJobUids","type":"array","required":false,"description":"Target data writer job UID32s"}]},{"name":"create_data_source","description":"Create a new data source to import product data from an external feed (XML, CSV, JSON, API). The `configuration` is a composite object { reader, formatter, import } — reader-specific keys (the url, etc.) go under `configuration.reader`, NOT at the top level.","readOnly":false,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"name","type":"string","required":true,"description":"Data source name"},{"name":"formatSmallUid","type":"string","required":true,"description":"Format UID10 — the exact \"smallUid\" from get_data_source_formats (e.g. \"yr8rxrb9qs\"). NEVER a type code (\"ZBOZI\"), a name, or a guess."},{"name":"readerType","type":"string","required":true,"description":"Data source reader type. Call get_data_source_readers to list valid values and pass the returned \"type\" verbatim."},{"name":"configuration","type":"object","required":true,"description":"Composite data source configuration { reader, formatter, import }. The backend REQUIRES this nested shape — do NOT pass reader keys at the top level."},{"name":"active","type":"boolean","required":true,"description":"Whether the data source starts active"},{"name":"schedule","type":"string","required":true,"description":"Crontab schedule, 5 fields. Minute = ONE number 0-59 (never \"*\" or a list); other fields \"*\" or a comma-list of numbers — NO ranges (\"1-5\"), NO steps (\"*/10\"). Shortest interval = hourly. Shapes: \"M * * * *\" hourly, \"M H * * *\" daily, \"M H * * D\" weekly, \"M H Dom * *\" monthly, \"M H Dom Mon *\" yearly."},{"name":"childrenAutoImport","type":"boolean","required":false,"description":"Auto-import child data sources. OMIT this field entirely (defaults to true, the recommended setting); set false ONLY if the user explicitly asks — never on your own initiative."},{"name":"parentUid","type":"string","required":false,"description":"Parent data source UID32 for hierarchical sources. Omit when there is no parent."},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type"},{"name":"createDataWriterJob","type":"boolean","required":false,"description":"Automatically create a data writer job"},{"name":"dataWriterJobFormatSmallUid","type":"string","required":false,"description":"Format UID10 — the exact \"smallUid\" from get_data_source_formats (e.g. \"yr8rxrb9qs\"). NEVER a type code (\"ZBOZI\"), a name, or a guess."}]},{"name":"delete_data_source","description":"DESTRUCTIVE: Permanently delete a data source and all its imported data. This action cannot be undone.","readOnly":false,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data source UID32 to permanently delete"}]},{"name":"delete_data_writer_job","description":"WARNING: Permanently deletes an export job and all its rules. This action cannot be undone.","readOnly":false,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"delete_data_writer_job_rule","description":"WARNING: Permanently deletes one or more export rules. This action cannot be undone.","readOnly":false,"parameters":[{"name":"uids","type":"array","required":true,"description":"Data writer job rule UID32s to delete"}]},{"name":"detect_feed_format","description":"Detect the format of a feed from its URL by analyzing its structure. Returns ranked candidates { formatSmallUid, name, countryCode, confidence } plus the content type (xml/csv/json/xlsx). Use this FIRST when the user provides a feed URL for a new import: a single high-confidence candidate just needs the user's confirmation; several equal candidates mean structurally identical formats — ask the user to pick (2-4 options). The feed is downloaded for analysis, so a very large feed can take a little while.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"url","type":"string","required":true,"description":"Feed URL to analyze (e.g. \"https://example.com/feed.xml\")."},{"name":"protected","type":"boolean","required":false,"description":"True when the URL needs basic auth (then login/password apply)."},{"name":"login","type":"string","required":false,"description":"Basic auth username, when protected is true."},{"name":"password","type":"string","required":false,"description":"Basic auth password, when protected is true."},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type (e.g. \"product\", \"order\")."}]},{"name":"edit_data_writer_job","description":"Update an existing export (data writer job): its name, schedule, output format, destination, compression, which items it exports, its \"block export when…\" guard conditions (blockWhen), or its source imports. Pass dataWriterJobUid plus ONLY the fields you want to change — everything else (including the full existing configuration) is preserved automatically.","readOnly":false,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Data writer job UID32 to edit (required)."},{"name":"organizationUid","type":"string","required":false,"description":"Organization UID32. Only needed to validate dataQueryUids when you change the export source; omit otherwise."},{"name":"name","type":"string","required":false,"description":"New export name. Omit to keep the current name."},{"name":"dataQueryUids","type":"array","required":false,"description":"New SOURCE of the export — the \"uid\" values of the data queries to export from (from list_data_queries). Omit to keep the current sources unchanged; only set this when the user wants to change which imports the export draws from."},{"name":"formatSmallUid","type":"string","required":false,"description":"New output format UID10 — the exact \"smallUid\" from get_data_source_formats. Omit to keep the current format."},{"name":"schedule","type":"string","required":false,"description":"New crontab schedule; omit to keep the current one. 5 fields; minute = ONE number 0-59 (never \"*\"/list), other fields \"*\" or a comma-list — NO ranges/steps; hourly at shortest."},{"name":"active","type":"boolean","required":false,"description":"Enable/disable the export. Omit to keep the current state."},{"name":"writerType","type":"string","required":false,"description":"New writer (destination) type, e.g. \"CONVIU\" or \"FTP\". Omit to keep the current destination. For a non-CONVIU destination, call get_data_source_writers and pass the returned \"type\" verbatim plus its keys in writerConfiguration."},{"name":"writerConfiguration","type":"object","required":false,"description":"Destination-specific keys to change (merged onto the current writer configuration), from the chosen writer's configurationSchema (get_data_source_writers). Omit unless changing the destination details (e.g. FTP { url, path, login, password })."},{"name":"compressionType","type":"string","required":false,"description":"New output compression: \"none\", \"gz\" (gzip) or \"zip\". Omit to keep the current value."},{"name":"dataMode","type":"enum","required":false,"description":"Which items to export. Omit to keep the current value."},{"name":"blockWhen","type":"object","required":false,"description":"\"Block export when…\" guard conditions. Provide ONLY the flags the user wants to change; the others are preserved. Omit this object entirely if blocking is not being changed."}]},{"name":"edit_data_writer_job_rule","description":"WARNING: Modifies an export rule. First follow get_workflow(edit_export_rule). Pass only changed top-level metadata; omit `settings` for metadata-only edits. If settings changes, supply its complete input-valid branch rather than raw get output or a nested patch. The tool preserves omitted values (including the rule's conditions editing mode), sends core a full normalized replace, validates exact parent-job field keys, enforces the immutable group, and keeps BULK_EDIT conditions empty.","readOnly":false,"parameters":[{"name":"dataWriterJobRuleUid","type":"string","required":true,"description":"Data writer job rule UID32"},{"name":"settings","type":"union","required":false,"description":"Typed rule settings. Provide EXACTLY ONE branch matching the rule group: addElement, editElement, hideElement, hideItem, showItem, bulkEdit, or imageEdit. Inside addElement/editElement provide EXACTLY ONE transform branch. Enum fields take GraphQL enum names (usually uppercase, e.g. \"DEEPL\" or \"PREPEND\"; canvas.exportAs is lowercase \"png\"/\"jpeg\"). Fields with backend defaults may be omitted. Settings element references MUST be exact map keys returned in `fields` by get_data_writer_job (the full path, e.g. \"SHOPITEM > EAN\"); never infer, translate or shorten them to the last segment. In addElement/editElement value, source is an exact fields map key when rewriteType is ELEMENT, but an exact variable name from reliable context when rewriteType is BULK. For hideElement, elements is a list and one rule hides every element in it, so hiding several elements under the same conditions takes ONE rule, not one per element. For imageEdit, imagePath MIRRORS path: pass the SAME exact fields map key in both (the editor reads and writes one image element). Omit this property for a metadata-only edit. When supplied, it replaces settings and MUST be the complete input-valid branch matching the rule's existing group — nested settings are not partial patches and the group cannot change."},{"name":"name","type":"string","required":false,"description":"Rule name"},{"name":"conditions","type":"string","required":false,"description":"FQL conditions. A field has exactly TWO valid forms and anything else silently never matches: `%variable%` (PREFERRED) — an exact `name` from the `variables` catalogue of get_data_writer_job_rule, percent signs INCLUDED (`%price-vat%:\"100\"`, never `price-vat`), reading the item source data; or `'FULL > PATH'` — an exact `fields` key of the parent job in single quotes (`'SHOPITEM > PRICE_VAT':\"100\"`, never `'PRICE_VAT'`), reading the rendered output, only when the rule targets the finished feed or no variable fits. Both catalogues come from get_data_writer_job_rule; `list_data_queries` provides neither. Omit to keep the current conditions; pass \"\" for all items and always for BULK_EDIT."},{"name":"active","type":"boolean","required":false,"description":"Whether the rule is active"},{"name":"visible","type":"boolean","required":false,"description":"Whether the rule is visible in the job detail"},{"name":"position","type":"number","required":false,"description":"Position in execution order"},{"name":"description","type":"string","required":false,"description":"Rule description; pass null to clear it"},{"name":"labels","type":"array","required":false,"description":"Label names (replaces the current labels)"},{"name":"applicableFrom","type":"string","required":false,"description":"Datetime the rule starts applying; pass null to clear it. Format MUST be `YYYY-MM-DDTHH:MM:SS+HH:MM` (a `Z` suffix is accepted too). A bare date, a datetime without an offset, or milliseconds are silently discarded by the backend and the field stays empty."},{"name":"applicableTill","type":"string","required":false,"description":"Datetime the rule stops applying; pass null to clear it. Format MUST be `YYYY-MM-DDTHH:MM:SS+HH:MM` (a `Z` suffix is accepted too). A bare date, a datetime without an offset, or milliseconds are silently discarded by the backend and the field stays empty."}]},{"name":"get_data_source","description":"Get full configuration and status details of a single data source by UID.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data source UID32"}]},{"name":"get_data_source_formats","description":"List the supported data formats (XML, CSV, JSON, etc.), optionally filtered by direction, reader type, or object definition type. Returns the full matching set (name-ordered) so you can find a specific format and read its exact smallUid — it is not truncated. IMPORTANT: some formats are country-specific and share the SAME name (e.g. several \"UPgates\" entries that differ only by country); use the returned `country` field to pick the right one (e.g. country code SK vs PL) and take that entry's smallUid.","readOnly":true,"parameters":[{"name":"forDirection","type":"string","required":false,"description":"Direction filter — \"IMPORT\" for import formats, \"EXPORT\" for export formats. Omit for both."},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type (e.g. \"product\", \"order\")."},{"name":"dataSourceReaderType","type":"string","required":false,"description":"Filter formats to those compatible with this reader type (DataSourceReaderTypeEnumType, e.g. \"URL\")."}]},{"name":"get_data_source_job_logs","description":"Get import execution logs with timing and error details for a data source.","readOnly":true,"parameters":[{"name":"dataSourceUid","type":"string","required":true,"description":"Data source UID32"},{"name":"limit","type":"number","required":false,"description":"Limit the number of logs to return"}]},{"name":"get_data_source_readable","description":"Test whether a given URL/configuration is accessible and returns valid data before creating a data source.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"readerType","type":"string","required":true,"description":"Data source reader type. Call get_data_source_readers to list valid values and pass the returned \"type\" verbatim."},{"name":"configuration","type":"object","required":true,"description":"Reader configuration JSON"}]},{"name":"get_data_source_readers","description":"List available reader types (connection methods) for importing data into Conviu. Each reader includes a configurationSchema describing the keys to put under \"configuration.reader\" when calling create_data_source/update_data_source with that readerType (the configuration is a composite { reader, formatter, import } object).","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"formatSmallUid","type":"string","required":false,"description":"Format UID10"},{"name":"objectDefinitionType","type":"string","required":false,"description":"Filter by data object definition type"},{"name":"rootImport","type":"boolean","required":false,"description":"Filter by root/child import permission"}]},{"name":"get_data_source_writers","description":"List available writer types (output destinations) for exporting data from Conviu. Each writer includes a configurationSchema describing the keys to put in the \"configuration\" object when calling add_data_writer_job/edit_data_writer_job with that writerType.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"formatSmallUid","type":"string","required":false,"description":"Format UID10"}]},{"name":"get_data_writer_job","description":"Get export job details including state, schedule, AI/translation flags, item count, output links, `fields` and `variables`. In `fields`, the map KEY is the full element path (segments joined by \" > \") and each record reports `hasChildren` plus a `label` that is IDENTICAL to the key; rule SETTINGS take that key verbatim, never shortened to its last segment. A field in rule FQL has exactly TWO valid forms: `%variable%` (PREFERRED) — an exact `name` from `variables`, percent signs INCLUDED, reading the item source data; or `'FULL > PATH'` — an exact `fields` key in single quotes (key \"SHOPITEM > EAN\" becomes `'SHOPITEM > EAN'`) — reading the rendered output, only when the user asks about the finished feed or no variable fits. Anything else silently never matches. `list_data_queries` returns neither catalogue.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"get_data_writer_job_latest_download_logs","description":"Get recent export download activity for monitoring external access.","readOnly":true,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"get_data_writer_job_latest_validation","description":"Get the most recent data feed validation result for a data writer job.","readOnly":true,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"get_data_writer_job_logs","description":"Get export execution history with timing and error details.","readOnly":true,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Data writer job UID32"},{"name":"limit","type":"number","required":false,"description":"Limit number of log entries returned"}]},{"name":"get_data_writer_job_rule","description":"Get single export rule details including conditionsType, typed settings, applicability dates, the parent job with its exact output `fields`, and the `variables` catalogue its conditions can filter on. Settings paths are exact `fields` map keys, never shortened to the last segment. A field in rule FQL has exactly TWO valid forms: `%variable%` (PREFERRED) — an exact `name` from `variables`, percent signs INCLUDED, reading the item source data; or `'FULL > PATH'` — an exact `fields` key in single quotes — reading the rendered output, only when the rule targets the finished feed or no variable fits. Anything else silently never matches. The `settings` output materializes null branches and output-only helpers, so never send it back verbatim. When editing metadata only, omit `settings` from edit_data_writer_job_rule and the tool safely projects the current configuration.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job rule UID32"}]},{"name":"get_data_writer_job_validation","description":"Get full detail of a specific data feed validation by its UID.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":true,"description":"Validation UID32"}]},{"name":"get_documentation_page","description":"Return the full text of a Conviu help page by its path (as returned by search_documentation), for when a search passage is not enough and you need the complete page.","readOnly":true,"parameters":[{"name":"path","type":"string","required":true,"description":"Repo-relative page path from a search_documentation result (its \"path\" value)."}]},{"name":"get_module_jobs_by_data_source","description":"List all module jobs (data writer jobs, campaigns, pricing calculators, etc.) connected to a data source.","readOnly":true,"parameters":[{"name":"dataSourceUid","type":"string","required":true,"description":"Data source UID32"}]},{"name":"get_organization","description":"Returns key details about a Conviu organization: name, active status, subscription info, billing period, and data source presence. Provide either uid (UID32) or smallUid (UID10) to identify the organization.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":false,"description":"Organization UID32 (optional if smallUid provided)"},{"name":"smallUid","type":"string","required":false,"description":"Organization small UID10 (optional if uid provided)"}]},{"name":"get_organization_modules","description":"Returns the status of every Conviu module an organization uses (product import/export, pricing calculator, bidding, competition monitoring, marketplaces, PPC advertisement, …) — the same overview the Conviu dashboard shows. Use it to answer \"how is my organization doing?\", to spot which module needs attention, or to sweep several organizations for problems. Pass locale to get titles and messages in the user's language (whoami returns it). Each module reports: title (the human module name), status (an internal code — 'error' | 'warning' | 'success' | 'info' — describe it in plain words, never show the code itself), statusMessage and primaryMessages (ready-made human explanations of what is wrong), lastUpdatedAt, dataObjectDefinitionType, and route — the app page for that module or problem, as { name, parameters } where parameters carry ids such as uid, so a client can link the user straight to the affected import, export or campaign.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"locale","type":"string","required":false,"description":"Locale for module titles and status messages, e.g. 'cs-cz' or 'en-us'. Defaults to 'en-us'; whoami returns the current user's locale."}]},{"name":"get_workflow","description":"Fetch the step-by-step playbook for a multi-step Conviu task BEFORE you start it, so you collect exactly the right information, in the right order, every time. Call this FIRST — before any other tool — whenever the user wants to perform one of the available workflows. Available workflows: create_import (create a new data source / import), create_export (create a new export / data writer job from existing imports), create_export_rule (create a rewriting/filtering rule on an export), edit_import (change an existing data source / import), edit_export (change an existing export / data writer job), edit_export_rule (change an existing export rule), diagnose (find out why an import or export is not working and fix it).","readOnly":true,"parameters":[{"name":"workflow","type":"enum","required":true,"description":"Which workflow playbook to fetch."}]},{"name":"list_data_connector_accounts","description":"List connected external accounts (Google, Shoptet, Upgates, Heureka, Kaufland, Allegro, etc.) for an organization. Use this to obtain the connectorAccountUid required by marketplace/API reader and writer configurations. Returns uid, name, valid, and connector { code, name, accountRequired }.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"connectorCode","type":"string","required":false,"description":"Optional filter by connector code (DataConnectorCodeEnumType), e.g. SHOPTET_API, UPGATES_API, HEUREKA_ADMIN."},{"name":"platformCode","type":"string","required":false,"description":"Optional filter by digital platform code (DigitalPlatformCodeEnumType), e.g. SHOPTET, UPGATES, HEUREKA."}]},{"name":"list_data_queries","description":"List the data queries available as the SOURCE of an export (data writer job). Each existing import has a data query — pass the chosen ones' \"uid\" values as dataQueryUids when calling add_data_writer_job. Returns uid, name, type, itemCount and the backing dataSource (uid, active, state).","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32 (required)"},{"name":"objectDefinitionType","type":"string","required":false,"description":"Optional object definition type filter (e.g. \"product\", \"order\")"},{"name":"moduleCodes","type":"array","required":false,"description":"Module codes to include. Defaults to [\"DATA\",\"DATA_SOURCE_JOB\",\"DATA_WRITER_JOB\"] — the set offered as the source when creating an export."}]},{"name":"list_data_sources","description":"List all data sources for an organization with optional filtering, sorting and pagination.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type (e.g. product, order)"},{"name":"onlyRootParents","type":"boolean","required":false,"description":"Return only root parent data sources"},{"name":"filter","type":"string","required":false,"description":"FQL filter expression (see server instructions for syntax). Example: name:\"*feed*\" AND active:\"true\""},{"name":"sort","type":"object","required":false,"description":"Sort directive, e.g. { field: \"lastImportedAt\", order: \"DESC\" }"},{"name":"offset","type":"number","required":false,"description":"Pagination offset"},{"name":"limit","type":"number","required":false,"description":"Pagination limit"}]},{"name":"list_data_writer_job_rules","description":"List all export rules for a job with their configuration, status, and position. Returns totalCount.","readOnly":true,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job UID32"},{"name":"filter","type":"string","required":false,"description":"FQL filter expression (see server instructions for syntax). Example: name:\"*export*\" AND active:\"true\""},{"name":"offset","type":"number","required":false,"description":"Pagination offset"},{"name":"limit","type":"number","required":false,"description":"Pagination limit"}]},{"name":"list_data_writer_jobs","description":"List all export jobs for an organization with their state, schedule, and item counts. Supports FQL filtering, sorting, and offset/limit pagination. Returns uid, name, state, active, schedule, lastWrittenAt, processArtificialIntelligence, processTranslation, itemCount, and totalCount.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32"},{"name":"formatTypes","type":"array","required":false,"description":"Filter by format types"},{"name":"objectDefinitionType","type":"string","required":false,"description":"Data object definition type"},{"name":"filter","type":"string","required":false,"description":"FQL filter expression (see server instructions for syntax). Example: name:\"*export*\" AND active:\"true\""},{"name":"sort","type":"object","required":false,"description":"Sort directive, e.g. { field: \"lastWrittenAt\", order: \"DESC\" }"},{"name":"offset","type":"number","required":false,"description":"Pagination offset"},{"name":"limit","type":"number","required":false,"description":"Pagination limit"}]},{"name":"list_items","description":"Lists data items (products or other objects) for a Conviu organization. Supports FQL filtering, sorting, and offset/limit pagination. Returns item id, dataSourceUid, approval status, manual flag, data fields, customData, variables, and totalCount.","readOnly":true,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32 (required)"},{"name":"objectDefinitionType","type":"string","required":false,"description":"Optional object definition type filter (e.g. product, order)"},{"name":"filter","type":"string","required":false,"description":"Optional FQL filter expression (see server instructions for full syntax). Fields include item data columns plus dataSource.uid and approval. Example: brand:\"Nike\" AND salePrice:[\"100\" TO \"500\"] AND dataSource.uid:\"<uid32>\""},{"name":"sort","type":"array","required":false,"description":"Sort directives, e.g. [{field: \"title\", order: \"ASC\"}]"},{"name":"offset","type":"number","required":false,"description":"Offset for pagination"},{"name":"limit","type":"number","required":false,"description":"Limit for pagination"}]},{"name":"list_organizations","description":"Lists the Conviu organizations the currently authenticated user has access to. Supports an optional search string (matches name, or exact smallUid / uid), sorting (name, createdAt, active) and offset/limit pagination. Returns each organization's uid, smallUid, name and active status, plus totalCount.","readOnly":true,"parameters":[{"name":"search","type":"string","required":false,"description":"Optional search string; matches organization name (case-insensitive) or exact smallUid / uid"},{"name":"sort","type":"object","required":false,"description":"Optional sort descriptor; defaults to name ASC"},{"name":"offset","type":"number","required":false,"description":"Offset for pagination"},{"name":"limit","type":"number","required":false,"description":"Limit for pagination"}]},{"name":"search_documentation","description":"Search the official Conviu help documentation (Czech) for how-to and conceptual questions about using Conviu — features, settings, step-by-step guides, troubleshooting. Returns the most relevant passages with their page title and public URL. Use this to ground product advice in the docs instead of guessing; use the data tools (not this) for the user's own imports, exports and items.","readOnly":true,"parameters":[{"name":"query","type":"string","required":true,"description":"The user's question, in their own words (any language)."},{"name":"limit","type":"number","required":false,"description":"How many passages to return (default 5)."}]},{"name":"set_data_source_active","description":"Enable or disable automatic imports for a data source. CAUTION: Disabling stops all scheduled processing for this source.","readOnly":false,"parameters":[{"name":"dataSourceUid","type":"string","required":true,"description":"Data source UID32"},{"name":"active","type":"boolean","required":true,"description":"Whether the data source should be active"}]},{"name":"set_data_writer_job_active","description":"Enable or disable automatic export job execution. WARNING: Setting active=false stops all scheduled executions.","readOnly":false,"parameters":[{"name":"dataWriterJobUid","type":"string","required":true,"description":"Data writer job UID32"},{"name":"active","type":"boolean","required":true,"description":"true to activate, false to deactivate"}]},{"name":"set_data_writer_job_rule_active","description":"WARNING: Enable or disable an export rule. Disabled rules are skipped during execution.","readOnly":false,"parameters":[{"name":"dataWriterJobRuleUid","type":"string","required":true,"description":"Data writer job rule UID32"},{"name":"active","type":"boolean","required":true,"description":"true to activate, false to deactivate"}]},{"name":"trigger_data_source","description":"TRIGGERS an immediate data source import outside the regular schedule. Use for testing or urgent refreshes. This starts a real import job.","readOnly":false,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data source UID32 to trigger"}]},{"name":"trigger_data_writer_job","description":"WARNING: Manually triggers immediate job execution outside the regular schedule. This starts a real export run.","readOnly":false,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"trigger_data_writer_job_validation","description":"WARNING: Manually requests a data feed validation run for the specified data writer job.","readOnly":false,"parameters":[{"name":"uid","type":"string","required":true,"description":"Data writer job UID32"}]},{"name":"update_data_source","description":"Update an existing data source (import): its name, schedule, format, connection details (e.g. the feed URL), or import settings. Changes take effect on the next import. Pass organizationUid + dataSourceUid plus ONLY the fields you want to change — everything else (including the full existing configuration and any custom-format field mapping) is preserved automatically. Reader-config changes go under `reader` (e.g. { \"url\": \"…\" }), import-level changes under `import`.","readOnly":false,"parameters":[{"name":"organizationUid","type":"string","required":true,"description":"Organization UID32 (required)."},{"name":"dataSourceUid","type":"string","required":true,"description":"Data source UID32 to update (required)."},{"name":"name","type":"string","required":false,"description":"New data source name. Omit to keep the current name."},{"name":"formatSmallUid","type":"string","required":false,"description":"New data format UID10 — the exact \"smallUid\" from get_data_source_formats. Omit to keep the current format."},{"name":"active","type":"boolean","required":false,"description":"Enable/disable the data source. Omit to keep the current state."},{"name":"schedule","type":"string","required":false,"description":"New crontab schedule; omit to keep the current one. 5 fields; minute = ONE number 0-59 (never \"*\"/list), other fields \"*\" or a comma-list — NO ranges/steps; hourly at shortest."},{"name":"childrenAutoImport","type":"boolean","required":false,"description":"Automatically import child data sources. Omit to keep the current setting."},{"name":"readerType","type":"string","required":false,"description":"New reader type. Omit to keep the current one. Only change this if the connection METHOD changes (rare); call get_data_source_readers and pass the returned \"type\" verbatim."},{"name":"reader","type":"object","required":false,"description":"Reader keys to CHANGE (merged onto the current config) — e.g. { \"url\": \"https://…/new.xml\" }. Omit entirely if the connection is not changing."},{"name":"import","type":"object","required":false,"description":"Import-level settings to CHANGE (merged onto the current import settings). Omit if unchanged."},{"name":"parentUid","type":"string","required":false,"description":"New parent data source UID32. Omit to keep the current parent."}]},{"name":"whoami","description":"Returns basic profile information about the currently authenticated Conviu user (email, name, locale). Takes no arguments.","readOnly":true,"parameters":[]}]