{"id":51031,"plugin_id":"plugin_asdk_app_6ac48b25a4a08191b185564c1c949923","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:45:15.625Z","digest":"31961bd653e73fe7121e064ee9993680270fe9df759b7955da2d739d0d688aed","against":null,"payload":{"description":"Create or update Heffl deals, convert leads, move opportunities between pipeline stages, and prepare quotations or estimates for clients.","included_files":[],"name":"heffl-sales","skill_md_contents":"---\nname: heffl-sales\ndescription: \"Create or update Heffl deals, convert leads, move opportunities between pipeline stages, and prepare quotations or estimates for clients.\"\n---\n\n# Deals and quotations\n\nRead ../heffl-crm/references/operating-rules.md before writes. Discover current write schemas with records_describe, surface:\"write\", mode:\"create\" or \"update\".\n\nDeals use object:\"deals\". Creation requires title, clientId and stageId even when field metadata omits a required flag. Resolve clients with records_resolve. Read pipelines_list and pipelines_details to find stages. If the pipeline is unspecified and multiple plausible pipelines exist, clarify. Use a requested stage, otherwise the first ACTIVE stage in the chosen pipeline. Re-describe custom fields for the chosen pipeline when needed. Deal value is price; do not invent value, amount, probability or conversionRate fields. The pipeline is derived from stageId. Move, close or reopen through records_update with values.stageId; the shared handler derives ACTIVE/WON/LOST and checks destination requirements. Use leads_convert for lead conversion.\n\nQuotations use object:\"quotations\". Describe creation to obtain fields, defaults and template candidates. Resolve clientId and supply at least one lineItem. Prefer the user-named template, a unique service match, or a generic template; when several templates remain and terms materially differ, clarify. Follow the described templateId/contentHtml rules and required custom fields for the selected template. Do not invent a deal linkage from a quotation title.\n\nLines use name, quantity and price, plus described discounts/taxes. For a free-text service explicitly set productId:null to suppress catalogue inference. Do not compute or send derived totals. Clarify how to allocate a fixed discount across multiple lines when unspecified. Preserve requested currency and tax-inclusive pricing. Creating a quotation does not send it; discover a supported send action before claiming delivery. Return the saved record and returned link only after a successful receipt.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}