Integration details
Description
Kowalah is a managed AI advisory programme. Organisations map their business as an AI Operating Model: a tree of real processes, broken into steps, each with an owner, a quality bar, and a decision about whether a human or an AI runs it. This plugin puts that model in your conversation. Read your AI vision map, your process coverage, and any process in full, including where its cycle time actually goes and which steps have never been measured. Redesign a process from as-is to to-be. Set acceptance criteria and quality gates on the steps you hand to AI. Keep a register of the systems your work runs on and the AI your organisation actually uses, including what is unsanctioned, unowned or about to renew. Record the value AI has delivered, with claimed and verified figures kept apart. Search Kowalah's accelerator library before building something that already exists, and raise an opportunity with the Kowalah team. Who it's for: AI programme leads, process owners, and anyone in an organisation that maps its work in Kowalah. Everyone can read the whole operating model. What you can change depends on where you sit in it, and where you can't edit, you can propose a change instead. Limitations: it needs a Kowalah account. Signing in with a work email creates one, and the email domain places you in your company's organisation; a domain Kowalah doesn't recognise starts a new, empty organisation. It can't edit projects, deliverables, Expert Requests or contracts, and it never deletes your programme records or the processes in your map.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Kowalah
- Access
- Account required
- First tracked
- 2026-10-17
- Tool count
- 20
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Kowalah
Get updates when Kowalah’s Discoverability Score or category rank changes.
Competitive lineup
20 tools agents can invoke
Submit a new idea, question, or ask to Kowalah. This is the single entry point for everything a customer might want help with — whether it's a quick question, a piece of work they'd like the Kowalah team to take on, a new initiative they're considering, or a project they want to scope. The customer doesn't need to decide in advance whether it's an expert request, a deliverable, or a project. They just describe what they're trying to do; Kowalah's team triages it from there. Anyone in the organisation — admin, core team, or member — can create an opportunity using this tool. Use this when the user says things like "I need help with…", "can you raise an opportunity to…", "I've got an idea about…", "we should look into…", "raise this with Kowalah". What a complete submission carries: - content of at least a paragraph. The server rejects anything shorter than the minimum length. - an ICE score (impact / confidence / ease, each 1-10) with a short rationale for each. Optional in the schema, but an unscored opportunity is slower to triage. For a response to a discovery, the impact rationale relates to the discovery's business_value_context. - where the organisation has an AI vision map, the guiding principle the opportunity serves and the KPI it moves, named in the content. - discovery_id, when the opportunity answers a Kowalah discovery the user was invited to. Args: - title: Short title — one sentence summarising the ask - content: The detail — what you're trying to achieve, the context, what good would look like, anything Kowalah should know. Where the org has a vision map, include which guiding principle this serves and which KPI it moves. Plain string is fine; the server stores it as rich text. Aim for at least a paragraph (80+ chars). - organization_id: Which of the user's organisations this is for. Required. - score (expected): ICE assessment — { impact: { score 1-10, business?, productivity?, adoption? }, confidence: { score 1-10, rationale? }, ease: { score 1-10, rationale? } }. Use the impact slot(s) that fit: business (e.g. "£2M annual cost reduction in supplier spend"), productivity (e.g. "200 hours/week saved across support"), adoption (e.g. "drive ChatGPT login rate from 15% to 60%"). Composite is computed server-side. Partial scores are accepted but try to get all three numbers + a rationale per dimension. - department (optional): Which department this relates to (e.g. "Sales", "Operations") - source_note (optional): Where this idea came from (e.g. "from yesterday's leadership meeting", "raised by a customer") - requested_target_type (optional): If the user has a strong view on the form of help — "deliverable" (a piece of work Kowalah delivers for them) or "expert_request" (a focused question/answer with an expert). Omit if they're unsure; Kowalah's team will decide together with the client. - requested_project_id (optional): If this opportunity relates to an existing project, the project's UUID - discovery_id (optional): If the user is responding to a Kowalah discovery, the discovery's UUID (from the user's pending_discoveries). The server validates the caller is on the discovery's audience, stamps the opportunity with the discovery and its project, and marks the audience invite as responded. Returns: The created opportunity with its number (OPP-…, how the user refers back to it) and your_recent_opportunities, the user's own queue.
kowalah_create_opportunity
Create or update an org unit — a node of your organisation's operating-model tree. Modes: - Create: omit 'id'. Required: unit_type, name. For a child pass parent_id (the organisation is inherited); for a ROOT unit pass organization_id. - Update: pass 'id'. Only provided fields change. Pass parent_id to re-parent within the same organisation. Permission: you may create a child unit under a unit at or below your own, and edit a unit you lead or one below you. Creating a ROOT unit reshapes the top of the org chart and is restricted to admins and core team. Returns { kind: "org_unit", action: "created" | "updated", org_unit: { …domain shape… } }.
kowalah_save_org_unit
Create or update a process in your organisation's AI Operating Model. Modes: - Create: omit 'id'. Required: name, org_unit_id (the owning unit — it fixes the organisation). The process number is allocated automatically, and customer_owner_id defaults to the owning unit's leader. - Update: pass 'id'. Only provided fields change. Pass org_unit_id to re-parent within the same organisation. Permission: you may create in a unit at or below your own, and edit a process you own or one at or below your unit. Admins and core team may edit anywhere in the organisation. Anything else is refused, with a message saying a proposal is accepted instead. Returns { kind: "process", action: "created" | "updated", process: { …domain shape… } }.
kowalah_save_process
Create or update a step within a process. Modes: - Create: omit 'id'. Required: process_id, name. position defaults to append; current_disposition defaults to 'human'. - Update: pass 'id' (process_id is derived from the step). Only provided fields change. DEFINE contract: acceptance_criteria (the bar the step's output must meet), input_artifact and output_artifact capture the step's I/O. Its quality checks (evals) are separate records, not fields on the step. Jidoka rule: when the step's effective target_disposition is 'ai_autonomous', escalation_trigger is required (the stop-condition returning control to a human). A partial update that would leave the step autonomous without a trigger is rejected. Archive, never delete: archived: true (with archived_reason) takes a step out of the model and closes up the gap; archived: false restores it. A step is archived rather than recycled for something else, because a recycled record carries the wrong history. Systems: system_ids sets which systems the step runs on, as ids from the systems register (whole set; [] clears). Notes: pass notes to record what you learned (interview confirmations, CRM findings, agent config, open questions) and resolve_notes to close them. Keep exception_notes for how edge cases are handled, and platform_detail for the platform. Pass reason to say why a change was made; it goes into the model's history. Permission: the same rule as the parent process — you may edit steps of a process you own or one at or below your unit; admins and core team anywhere in the organisation. Anything else is refused, with a message saying a proposal is accepted instead. Returns { kind: "step", action: "created" | "updated" | "archived" | "restored", step: { …domain shape… }, notes?: { added, resolved } }.
kowalah_save_process_step
Create or update an eval on a process step — the quality check that a step's output meets its acceptance criteria. This is how a business owner sets and tracks the bar: "what counts as a good forecast category call", "what a compliant response looks like". Modes: - Create: omit 'id'. Required: process_step_id, name. method defaults to 'human_review', mode to 'monitor', status to 'defined'. - Update: pass 'id' (process_step_id is derived from the eval). Only provided fields change. Gate vs monitor: a 'gate' blocks the step until it passes (all-or-nothing) and must NOT carry sampling_pct; a 'monitor' observes a sample and may set sampling_pct (0–100). Rejected if the effective state is a gate with a sampling_pct. Scoring: target_score is the bar, current_score the latest reading. You cannot set the measurement timestamp, the source, or the position — the server owns all three. Writing current_score stamps measured_at for you; clearing it clears the stamp. Permission: creating an eval needs edit rights on the parent process. Once created, the eval's owner_user_id may edit it thereafter even if the process itself sits above their altitude — so a function lead can own the eval on a process they do not otherwise control. Admins and core team may do either anywhere in the organisation. Returns { kind: "step_eval", action: "created" | "updated", eval: { …domain shape… } }.
kowalah_save_process_step_eval
Add a system to your organisation's register, update it, and record how you hold it (arrangements). Modes: - Create: omit 'id', pass name. A system of the same name already in your register is returned instead of a duplicate (action "matched_existing", fields unchanged: pass its id to update). If Kowalah's catalogue has one of that name, the catalogue system is used and your arrangements go on it (action "matched_catalogue"); pass own_copy: true for your own record instead. - Update: pass 'id'. Only provided fields change. A catalogue system (scope 'global') cannot be edited, but you can pass arrangements for it. - Retire: status: "archived". Systems are not deleted. arrangements: each item adds, updates (with id) or removes (id + remove: true) one way your organisation holds the system, e.g. "Claude Team, 50 seats, organization-contracted, DPA in place, approved" and "Personal Max plans, employee-contracted, unreviewed". Adding one with the same label and tier as an existing arrangement updates that one. Unset fields stay null, and null means "not assessed", which is different from false. sanctioned_status records a decision the organisation has actually made. Permission: admins and core team. Everyone in the organisation can read the register. Returns { kind: "system", action: "created" | "updated" | "matched_existing" | "matched_catalogue" | "unchanged", system, arrangements: [{ action, arrangement }] }.
kowalah_save_system
Create, update or delete a connection between two DIFFERENT processes: a handoff ("qualified deals pass to Proposal") or a feed ("closed-won stories feed the content pipeline"). Connections are what make the operating model a graph rather than a list; a process read shows them under 'connections'. Modes: - Create: omit 'id'. Required: from_process_id, to_process_id, connection_type. Optionally pin either end to a step (from_step_id must belong to from_process_id, to_step_id to to_process_id). - Update: pass 'id'. You may change connection_type, note, and the step endpoints. You cannot re-point the processes: delete and recreate instead. - Delete: pass 'id' and delete=true. Permission: a connection changes both processes, so you need edit rights on BOTH ends (admins and core team may edit anywhere in the organisation). Without them the change is refused. Returns { kind: "process_connection", action: "created" | "updated", connection: {...} } or { kind: "process_connection", action: "deleted", id }.
kowalah_save_process_connection
Search Kowalah's accelerator library — pre-built prompts, GPTs, training, and tools you can reuse instead of starting from scratch. Use this when the user asks "have we done this before?", "is there a template for X?", "what's the fastest way to do Y?", or describes a need that may already be met by something off the shelf. You'll see your organisation's private accelerators plus the global Kowalah library. Each result is tagged with a 'scope' field ("org_private" or "global") so you can distinguish what the org has built for itself from Kowalah's shared library. Results that live elsewhere (a web app, an agent, an MCP server, a resource) include an external_url to open. Args: - query (optional): Free-text description of what you're looking for (e.g. "onboarding email", "expense policy review") - category (optional): One of: sales, hr, finance, legal, marketing, operations, it, customer_service, general - industry (optional): One of: technology, healthcare, finance, retail, manufacturing, education, professional_services, general - difficulty (optional): beginner | intermediate | advanced - type (optional): prompt | skill | plugin | agent | mcp | template | resource | web_app | training - scope (optional, default "all"): "org_private" to see only what's been built for this org, "global" for Kowalah's shared library, "all" for both - limit (optional, default 20, max 50): Maximum results to return Returns: Ranked accelerators with name, description, category, type, scope, difficulty, usage count, rating, and an external_url where there is one
kowalah_find_accelerator
Your organisation's AI estate: every AI asset recorded (connectors, skills, plugins, projects, agents, automations, apps), with its platform, owner, status, scope, who has seen it and where, and the process steps it runs. Use it for "what AI have we actually got?", "what's been built?", "which agents run which steps?", "what's personal / shadow AI?", "what has gone quiet?". 'gaps' comes first and is what to act on: - no_owner, undecided (still 'discovered'), scope_unknown - stale: nobody has recorded it from their session for 90 days - not_in_model: an agent, skill, automation or app that runs no process step - needs_auth: connectors someone has installed but not authorised (or that are disconnected / not set up) - personal: assets that belong to one person (scope 'user'), with platformSanction - acts_unsupervised: connectors that can act (send, sign, write) with nobody approving - connection_concentration: people holding 3+ connections (who, for admins and core team) - in_house: what your organisation built itself - unsanctioned: shadow AI — assets on a platform the organisation has not approved (no approved arrangement in the systems register) or has prohibited, personal ones first Pass unit_id for the assets running steps in one part of the business, or origin (e.g. in_house). Each asset shows its origin and version, whose login a connector runs on and what it can do, and how many outcomes it produced; with id, the outcomes themselves. With id: one asset with its sightings, the assets inside it, and the steps it runs. The register is only as complete as the people who have shared their tools, so a short register may be an incomplete one.
kowalah_get_ai_estate
Your Kowalah training: what you're scheduled into, your agenda, and how you're getting on. Use this for "what training am I booked on", "what's my schedule", "how am I doing", "did I pass". kind: - "enrolment" (default): the training programmes and events you're a participant in — titles, dates, location, your group, status. - "schedule": your day-by-day agenda (sessions, times, rooms, topics) for the events you're in. - "progress": YOUR own record — attendance, module/quiz results, AI-fluency scale scores, badges earned, certificates, your feedback, and your commitments. - "org_overview": an anonymised, aggregate view of training across your organisation (enrolment, attendance %, completion, average feedback). Available only if you are an admin or core_team member; everyone else gets a not-permitted note. This only ever shows your own training (matched to you by email / account) — it never exposes other participants, their results, or internal trainer notes. If you're not enrolled in anything, it says so.
kowalah_get_my_training
Return your organisation's AI Operating Model as a unit tree with coverage roll-ups on every node (coverage %, process count, redesign-gap count, constraint count — rolled up across each unit's whole subtree), plus org-wide totals and a narratable summary. Use this for the "world view": how much of the business AI could support today, and where the gaps and constraints concentrate. Args: - organization_id (optional): Required only if you belong to more than one organisation. Also returns a `vision` block when your organisation has an AI vision map. By default it is a summary: the vision statement and its guiding principles (`detail: "summary"`). Pass include_vision: true for the full map with attributes and measures (`{ ownership, owningUnitName, vision: {...} }`). Absent when no vision has been authored yet. Returns { kind: "operating_model", tree: { organizationId, totals, units: [...nested...], summaryMarkdown }, vision?: {...} }, or kind: "empty" when no operating model has been mapped yet.
kowalah_get_operating_model
Return one org unit: its subtree coverage roll-up, the processes it owns directly (each with its own roll-up), its child units, and the top redesign-backlog steps across its processes (ranked constraint × coordination burden). Args: - unit_id (required): The org unit's UUID. Also returns a `vision` block resolved FOR THIS UNIT — its own vision map if it has one, otherwise the nearest ancestor's with `ownership: "inherited"` and the owning unit named. By default it is a summary (statement and principles, `detail: "summary"`); pass include_vision: true for the full map. Returns { kind: "unit", portfolio: { unit, rollup, processes (each with openQuestionCount), childUnits, topBacklog, topOpenQuestions, summaryMarkdown }, vision?: {...} }. topOpenQuestions are the most recent unanswered questions across every process in this unit and below it. Returns kind: "no_match" when the unit isn't in your scope.
kowalah_get_operating_model_unit
Return one process in full: its metadata (purpose, cadence, criticality, owners, owning unit), its ordered steps with current→target dispositions, gap/constraint markers, the DEFINE contract (acceptance_criteria, input_artifact, output_artifact), per-step implementation links and per-step quality evals (gate/monitor checks with target vs current scores), a process-level roll-up, the ranked redesign backlog, its inter-process connections, and the initiatives already aimed at it. Use it for "walk me through this process", "why does X take so long", "where are the bottlenecks". Args: - process_id (required): The process's UUID. Returns { kind: "process", detail: { process, rollup, steps, backlog, connections, initiatives, diagnosis, summaryMarkdown }, notes: { counts, open_questions, all? }, access: {...} }, or kind: "no_match" when the process isn't in your scope. 'notes' is what has been LEARNED about the process: evidence, observations, decisions and open questions, added through the save tools' notes field. open_questions are the unanswered ones. The default shows open questions and says what else exists ('not_shown'); pass include_notes: true for the full log grouped by step. diagnosis.openQuestionCount and diagnosis.evidenceLastRecordedAt say how settled the process is. Each step carries systemIds and systems: the systems from your organisation's systems register that it runs on. 'outcomes' is the value realised on this process and its steps (on.type process or process_step), with totals per comparable unit: claimed and verified apart, one-off and recurring apart. Archived steps are left out of the model. Pass include_archived_steps: true to get them as 'archived_steps', with every field, to check an archive, restore one, or recreate it. A connection pinned to an archived step is flagged (thisStepArchived / otherStepArchived). 'diagnosis' is the derived read of how well this process is actually CAPTURED. It carries touch_minutes_total (a floor — read it with steps_missing_touch), handoff_count, distinct_owners, constraint_steps, steps_missing_output, steps_missing_acceptance_criteria and steps_with_exception_notes. Its counting rule: a null means "can't say", never "none". handoff_count is null whenever any step lacks an owner, because a partial count would understate the handoffs. It also carries 'cycle' — where the TIME goes, as against where the hours are — and 'chased_steps'. cycle.ratio is touch time over elapsed time across the whole chain, and it is NULL unless every step is both timed and costed, because a ratio built from three of twelve steps makes a process look tighter than it is. When it is null, cycle.steps_untimed says which steps are missing a timing. 'access' reports what YOU may do to this process — relationship ('at_own' | 'below' | 'at_peer' | 'above' | 'lateral'), can_edit, can_create and can_propose. When can_edit is false, an edit is refused and a proposal is accepted. 'initiatives' lists the opportunities / deliverables / projects linked to this process, with step_id / step_name when a link is pinned to one step. It is filtered to what you personally may see, so it can legitimately differ between colleagues.
kowalah_get_process
Your organisation's systems register: the tools and platforms the work runs on, whether each has AI in it, and how you hold it (arrangements: tier, seats, contracting party, DPA, training on data, admin control, audit trail, sanctioned status). Use it for "what AI tools do we have?", "which tools are unsanctioned?", "who pays for ChatGPT?", "what renews soon?", "where is Claude used?". Modes: - Register (no id): every system with its arrangements and how many live steps use it, plus 'flags': unreviewed arrangements, risks (employee-contracted, no DPA, trains on data, no admin control, no audit trail, prohibited in use), AI systems with no arrangement recorded, systems in no process step (not_in_model), and renewals due in 90 days. Pass ai_only: true for the AI Register view. - One system (id): the system, its arrangements, and used_in: every live step and process that runs through it. Catalogue systems (scope 'global') come from Kowalah's shared catalogue and cannot be edited, but you can record your arrangements on them. Commercial fields (annual cost, currency, payment route, renewal date, renewals_due) are shown to admins and core team only; 'commercial_fields' says whether they are included.
kowalah_get_systems
Get a status update from Kowalah. Use this for any "how are things going", "what's the status of X", "give me an update", "what have I raised recently", "who am I" question — the server figures out whether you mean a portfolio rollup, a focused view of a specific project / deliverable / expert request / opportunity, or simply your identity and organisations. What you get back depends on the user's role: - admin / core_team see every project, deliverable, expert request, opportunity, and client-visible risk in their organisation. - members see their own opportunities plus projects / deliverables / expert requests where they're a stakeholder. Anything they're not a stakeholder on is invisible — a "no_match" for a known reference number usually means they're not on that item, not that it doesn't exist. Args: - query (optional): A natural-language description of what you want a status on. Examples: "how are things", "the website project", "ER-42", "the procurement opportunity". Leave blank for a portfolio / home view. Returns: An object with a 'kind' field describing the shape: - kind: "home" — identity + organisations + role-appropriate rollup. May include a 'privileged' section (admin/core_team orgs) and/or a 'member' section (member-only orgs). - kind: "project" / "deliverable" / "expert_request" / "opportunity" — focused view, with children filtered to what the user is allowed to see. - kind: "ambiguous" — multiple things matched; pick one and call again. - kind: "no_match" — the query didn't match anything visible to the user. Returned even when an item with that name exists but the user isn't permitted to see it.
kowalah_get_update
Return your organisation's AI vision map — the vision statement, its guiding principles with their defining attributes, and the success measures. This is the top altitude of your AI Operating Model: the output of your AI Vision Day, in your own words. Use it for "what is our AI vision?" and "does this idea fit our vision?". Each principle carries defining attributes as an assertion plus a counter-clause ("It moves a business KPI." / "Not a good idea in search of one."). The pair is the test of whether something fits the principle. The vision is owned by an org unit. Passing `unit_id` resolves what that unit should be looking at: its own map if it has one, otherwise the nearest ancestor's, flagged `inherited`. Omit it for the group vision. Args: - organization_id (optional): Required only if you belong to more than one organisation. - unit_id (optional): Resolve for one unit rather than the group. Returns { kind: "vision", vision: { ownership: "own" | "inherited", owningUnitId, owningUnitName, lastUpdatedAt, vision: { …statement, principles, programmeMeasures… } } }, or kind: "empty" when no vision map has been authored yet.
kowalah_get_vision
Propose a change to a process you cannot edit directly (its access block reports can_edit: false). It files an opportunity linked to that process (and optionally to one step), so the owner can pick it up. Use it for "this step should be automated", "the acceptance criteria here are wrong", "we should add a quality gate" — anything you would change if it were yours. Anyone in the organisation may propose against any process they can see. Nothing about the process itself is modified. Args: - process_id (required): The process the proposal is aimed at. - process_step_id (optional): Pin it to one step. - title (required): Short summary of the change. - content (required): What should change and why. Returns { kind: "process_change_proposal", opportunity: { id, opportunity_number, title }, process_id, process_step_id }.
kowalah_propose_process_change
Create a TO-BE version of a process, held beside the original so the two can be compared. WHY THIS EXISTS AND EDITING STEPS DOES NOT COVER IT. A step's disposition (human / ai_assisted / automated / ai_autonomous) says who RUNS the step, and every one of those values keeps it. Editing dispositions can only ever produce the same process with better paint. This is the tool that can say "these ten steps become three". The to-be is SEEDED from the as-is and from the redesign decisions already recorded on its steps: steps marked 'eliminate' or 'merge' do not come across; everything else does. A process whose steps already carry redesign_decision and redesign_rationale produces a redesign that reflects those decisions; one with none produces a copy. A step with NO decision is CARRIED, not dropped, and reported back in undecided_count. Silently deleting work nobody decided to delete would be the worst possible default. Two things are deliberately NOT copied onto the to-be. The target disposition is cleared, because the redesign is a new design question and inheriting the old target pre-answers it. And elapsed time is cleared, because it is the number the redesign exists to MOVE — carrying it over would make the comparison show a saving of zero until somebody noticed. The result is a real process (status 'draft', redesign_status 'proposed') with its own number. Nothing about the as-is changes. Competing options are allowed: each call creates another to-be beside the as-is. Permission: the same rule as editing the process — you may redesign a process you own or one at or below your unit, as the process's access block reports. Args: - process_id (required): the as-is process's UUID. Returns { kind: "redesign", redesign: { id, process_number, name, step_count, carried_count, dropped_count, undecided_count } }.
kowalah_propose_redesign
Record the AI tools your organisation uses: connectors, skills, plugins, projects, agents, automations and apps. Use it when the user shares what THIS session uses, and to record what they tell you about each one. It is for what the user has seen and agreed to share: only names and ids are stored. Recording: pass each item with its kind, name and, whenever the surface shows one, external_ref (a connector's installed server id, plugin_…, skill_…, a project id). Pass surface. Known assets are "seen again" (their last-seen date moves); new ones arrive as status 'discovered', scope 'unknown'. Put plugins first and give the skills inside them parent_external_ref. Record a connector that is installed but not authorised with connection_status 'needs_auth'. Leave out built-in and local tools (memory, file system, the browser): they are not the organisation's estate. PRIVACY — it stores names and identifiers only: not a skill's instructions, a prompt, a tool's description or a project's contents, and not a description inferred from them. A project shows an id but not its name, so its name comes from the user. Personal projects are not part of the organisation's estate. Decisions (description, owner, status, scope, archive) record what the user says, not a guess. Admins and core team decide about any asset; anyone may mark something as their own personal asset (scope 'user'), and an owner may update what they own. A refused decision still records that the tool is used. serves_step_ids links an asset to the process steps it runs (e.g. the agent that drafts replies), so the process shows it on those steps. Platforms: what this session uses is linked to the platform its surface runs on (Claude for Claude's surfaces, ChatGPT for ChatGPT and Codex) when the systems register holds it, and a connector to the system it is named for (the HubSpot connector reaches HubSpot). Pass system_id / reaches_system_id to say otherwise. Returns one short result per asset (action created | seen_again | updated | ambiguous | refused, id, kind, name, gaps, and what was linked) with ask: true on the new or undecided ones, which the user has not yet described (ask_about counts them). Pass verbose: true for full records.
kowalah_record_ai_assets
Record realised value from AI work: time saved, cost reduced, revenue won, an adoption milestone. On any work, not only Kowalah's: a process step, a process, a unit, an opportunity, the whole organisation, or a Kowalah deliverable or expert request. Record what the user tells you, in their words. Ask how they know (the basis: estimated, sampled or measured) and don't upgrade a guess. Give a comparable unit (value_unit, plus currency for money, any currency) and a period whenever there is a figure, or it can't be added up. Link what produced it (ai_asset_id, e.g. the agent that runs the step) and what it counts towards (vision_measure_id) when you know. Modes: - Record: omit id; pass on, title, narrative, outcome_type (and the figure). source defaults to client. - Update: pass id. Only whoever recorded it, or admins and core team. Changing the figure of a verified outcome makes it a claim again. - Verify: id + verify: true. Admins and core team only, in their own name. - Remove: id + remove: true. Returns { kind: "outcome", action, outcome: { ..., annualised, gaps } }. gaps say what stops it being trusted or added up: not_comparable, no_period, no_basis, no_evidence, unverified.
kowalah_save_outcome
Kowalah ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Kowalah's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.