- Brand
- Introw
- Category
- Sales & CRM
- Primary Subcategory
- Partner & Ecosystem Revenue
Integration details
Description
Introw is a partner relationship platform (PRM) that allows you to launch a personalised partner portal in minutes - all integrated with your CRM (HubSpot & Salesforce). If you're working with resellers, referral partners, distributors, implementation partners,... keep reading. Introw creates personalised partner experiences, enhancing partner engagement and efficiency without the lengthy implementations of a traditional PRM. Introw keeps your HubSpot CRM data as the single source of truth. Think about deal registration, training partners with a built in LMS, enabling them with content, tracking partner goals, and more.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Partner & Ecosystem Revenue
- Secondary Subcategories
- None listed
- Brand
- Introw
- Access
- Account required
- First tracked
- 2026-08-21
- Tool count
- 29
- Market
- 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 Introw PRM
Get updates when Introw PRM’s Discoverability Score or category rank changes.
Competing in ChatGPT Partner & Ecosystem Revenue
View Category29 tools agents can invoke
Add a partner-facing comment in Introw. Call this tool when the user explicitly authorizes posting a comment or note to a partner portal, task, form submission, or CRM object. Authorization may refer to an earlier draft in the conversation (for example, "post it", "add that", "that works — post it", or "post the revised version"). In that case, resolve the reference from the conversation and submit the latest approved draft; do not merely describe what would be posted or claim it was posted without calling this tool. An explicit request to add or post a supplied comment is already authorization: execute it without asking for an additional confirmation. Adding a comment to a deal is not a CRM property update; never use update_crm_object_properties for comments or notes. Preserve the approved draft exactly, including its Markdown structure. Do not summarize, rewrite, or remove formatting at submission time unless the user asks for another edit. For CRM-object comments, provide objectId and objectType from search_crm_objects; the partner and portal room are resolved from the CRM object link. For task comments, provide taskId. For form submission comments, provide formSubmissionId from search_form_submissions. For general partner portal comments, provide partnerId. Pass the comment as plain text or Markdown (**bold**, *italic*, [links](url), blank-line paragraphs, and - / 1. lists). Prefer that over HTML: if the user pasted HTML, rewrite it as Markdown/plain text before calling this tool. HTML is accepted as a fallback and converted server-side, but Markdown is more reliable. To mention someone, use @Name or @email in the comment body and/or pass their email or name in the mentions array — unresolved or ambiguous mentions are rejected with a short candidate list so you can ask the user who they meant. Formatting is preserved in the partner portal timeline. The comment may notify participants through Introw notification settings.
add_partner_comment
Open an upload slot to hand files to Introw — use it for anything you generated yourself (a PDF, one-pager, battlecard, deck, image, spreadsheet) or any local file that has no public URL. Pass EVERY file of the job in one call (fileNames, up to 15). They share one upload page, so a bulk upload costs the user one visit instead of one per file; calling this once per file is the wrong shape. A batch whose links would be too long to hand over intact comes back saying how many of its first files fit; call again with those, then with the rest. Then pick a delivery path on your own capability, and never tell anyone to change network, firewall or allowlist settings — no path needs one: - You cannot run shell commands or send an HTTP request with a file body (any chat environment, and any case where the files is on the user's machine and not yours): give the user the returned uploadPageUrl and nothing else. It is a drag-and-drop page, and requires them to sign in to Introw in this organisation. Continue once they confirm. - You can: HTTP PUT the raw bytes to the returned uploadUrl with the returned contentType as the "Content-Type" header. Either way, finish with one upsert_asset call per file, passing the returned uploadKey. The bytes never pass through this conversation, so large files are fine (up to 2 GB each). Links expire after 30 minutes and can only write this slot's organisation-scoped objects. Nothing appears in the library until upsert_asset is called. Prefer upsert_asset's fileUrl when the file is already hosted publicly, and its url parameter for webpages/videos that should stay where they are.
create_asset_upload
Create a public task in a partner portal. Use this only when the user asks to create, add, or assign a task for a partner, or to create a task linked to a specific CRM object. For CRM-object tasks, provide objectId and objectType from search_crm_objects; the partner and portal room are resolved from the CRM object link. For general partner tasks, provide partnerId. Requires name. Optional fields are description, dueDate, and assignedTo. Defaults to assigning the task to the organisation when assignedTo is omitted. Creates a persisted Introw task, enqueues a task assignment notification, and records a TASK_CREATED timeline event.
create_partner_task
Open an upload slot to hand a SCORM zip to Introw when it has no hosted https URL. Then pick a delivery path on your own capability, and never tell anyone to change network, firewall or allowlist settings — no path needs one: - You cannot run shell commands or send an HTTP request with a file body (any chat environment, and any case where the zip is on the user's machine and not yours): give the user the returned uploadPageUrl and nothing else. It is a drag-and-drop page, and requires them to sign in to Introw in this organisation. Continue once they confirm. - You can: HTTP PUT the raw bytes to the returned uploadUrl with the returned contentType as the "Content-Type" header. Either way, finish with upsert_course, passing the returned scormFileKey. The bytes never pass through this conversation, so large files are fine (up to 2 GB each). Links expire after 30 minutes and can only write this slot's organisation-scoped objects. Nothing is imported until upsert_course is called with the key. Prefer scormFileUrl on upsert_course when the zip is already hosted somewhere public.
create_scorm_upload
Add content to the partner asset library, or update an asset that is already there. Use this only when the user explicitly asks to add, upload, ingest, publish, rename, re-file or replace an asset. OMIT assetId to CREATE: name plus exactly one source is required — - uploadKey: a file you uploaded through the create_asset_upload flow (generated PDFs, one-pagers, decks, images). - fileUrl: a public https file that Introw copies into its own storage. - url: a URL asset — a webpage, video or hosted doc that stays at its own location (YouTube, Loom, Vimeo, Google Docs/Slides/Sheets, Calendly, any https page). Introw stores the link and embeds it; nothing is copied. PROVIDE assetId (from list_assets) to UPDATE: only the fields you pass change. Passing a source REPLACES the file — the previous version is kept in the asset's version history — so confirm with the user before replacing. Settings: description, folder (a folderId from list_assets or a path such as 'Sales/Battlecards', created when missing), categories, partnerId (that partner's private library instead of the shared one), isPublic (openable through a public share link). Uploaded documents are previewed and indexed for AI search in the background.
upsert_asset
Organise the asset library: create a folder or subfolder, rename it, move it, re-categorise it, or archive and restore it. Use this only when the user explicitly asks to change how the library is structured. OMIT folderId to CREATE: name is required. parentFolder nests it under an existing folder (a folderId from list_asset_folders, or a path such as 'Sales/Battlecards' whose missing levels are created); omit it or pass '/' for a top-level folder. partnerId puts the folder in that partner's private library instead of the shared one. A folder that already has this name in the same place is reused rather than duplicated. PROVIDE folderId (from list_asset_folders) to UPDATE: name renames it, parentFolder MOVES it with every subfolder and asset inside (they follow it, and the folder adopts its new parent's library, so moving between the shared library and a partner's changes who can see the content), categories replaces its tags. archived: true archives the folder AND its entire contents (reversible, but partners immediately lose access and the AI agent stops answering from those documents); archived: false restores it. Always confirm archiving with the user first, and report how many assets it affected.
upsert_asset_folder
Create a SCORM-based LMS course, or update an existing course. Use this only when the user explicitly asks to create or change a course. OMIT courseId to CREATE: name and the SCORM zip are required — pass the zip as scormFileUrl (a publicly downloadable https URL) OR as scormFileKey (from the create_scorm_upload flow), never both. The import runs in the background — check scormStatus with list_courses. PROVIDE courseId (from list_courses) to UPDATE: only the fields you pass change. Passing scormFileUrl/scormFileKey on update REPLACES the course's package in place (SCORM_RUNTIME courses only): enrollments and completions are kept, but learners' in-progress SCORM state is reset — confirm with the user before replacing. Settings: description, thumbnailUrl (3:1 banner; any hosted https image URL), dueDate (relative to enrollment or fixed), minimumPassingScore (0-100), autoEnrollmentEnabled (audience segments are managed in the UI), certificateId (via list_certificates).
upsert_course
Search the authenticated organisation's knowledge base for content relevant to a question. Use this whenever the user asks about specific policies, procedures, documentation, product information, recent updates, or anything whose answer may live in uploaded documents, portal content, announcements, courses, or configured websites. Try this before answering from general knowledge. Returns the most relevant content snippets ranked by relevance, along with their source (asset, portal tab, announcement, course, or website). Google Docs, Slides and Sheets assets also carry googleWorkspace links (open, make a copy, present, download): share those when the user wants to edit, reuse or download the file.
find_relevant_content
Read commission information for the authenticated Introw organisation. Use this when the user asks about commission plans, payout rules, rates, how a partner earns, how much commission is potential/earned/due, or where their recent payouts are. When partnerId is provided, data is scoped to that partner. Without partnerId, organisation-wide data is returned for admins. Returns the organisation currency code plus, by default, three sections (narrow with 'sections'): - plans: formatted plan details (name, status, type, source object, filters with resolved labels, installments, rate tiers). - summary: aggregated amounts in the org currency (potential pipeline commission, earned-but-unpaid, upcoming payouts, in-review, total paid). - payouts: the most recent payouts with their stage, period, and amount.
get_commission_information
Read marketing development fund (MDF) information for the authenticated Introw organisation. Use this when the user asks about MDF / co-marketing funds, marketing budget, fund configuration, how funds work, when funds expire, available budget, or the status of MDF requests/claims. When partnerId is provided, data is scoped to that partner's allocated budgets. Without partnerId, organisation-wide totals are returned for admins. Returns the organisation currency code plus, by default, three sections (narrow with 'sections'): - funds: each fund's configuration (name, status, currency, validity period, daysRemaining, allocation type, human-readable claim/request timeline) with budget/spent/pending/available amounts. - summary: aggregated MDF budget figures (totalBudget, approvedSpend, availableBudget, pendingApproval). - activity: the most recent MDF requests/claims with their status, fund, partner, and amounts.
get_marketing_funds_information
Read KPI and goal progress for a partner. Use this when the user asks about a partner's goals, KPIs, targets, progress, achievement status, or goal performance for a specific period. Requires a partnerId or partner context. Optionally accepts a date range for the goal progress period. Returns the partner goal/KPI records with calculated progress from Introw and CRM-synced data.
get_partner_goals
Read configured partner tiers and tier plan information for the authenticated organisation. Use this when the user asks about partner levels, tier names, tier order, requirements, rewards, benefits, or how partners progress between tiers. Returns tiers ordered by their configured order, including tier name, tier properties, badge image URL, and tier plan/group name for admins.
get_partner_tier_information
Browse the asset library's folder tree: how content is organised, what is in each folder, and where a new asset or subfolder should go. Use this before upsert_asset (to file an asset in the right folder) and before upsert_asset_folder (to find a folderId, or to check whether a folder already exists under a different name). Prefer reusing an existing folder over creating a near-duplicate. Returns per folder: folderId, name, path (the readable location such as "Sales/Battlecards"), parentFolderId, partnerId, categories, assetCount (assets directly inside), subfolderCount, and archived plus archiveReason when archived folders are included. Filter with query (name), parentFolder (only what is inside that folder, at any depth), partnerId (a partner's private library), includeAllPartnerFolders, and includeArchived.
list_asset_folders
List the authenticated organisation's asset library: documents, images, videos and URL/embed assets, plus the library's folders. Use this to find an assetId before updating an asset with upsert_asset, to find a folderId to file a new asset under, to check which categories are in use, or to answer "what do we have on X?" about library contents (use find_relevant_content when the question is about what a document *says*). Filter with query (name/file name/description), folder, or partnerId for a partner's private library. Returns per asset: assetId, name, description, fileName, mimetype, type (FILE or URL), folder, categories, isPublic, locale, viewCount and timestamps.
list_assets
List the authenticated organisation's LMS certificates. Use this to find a certificateId to link a certificate to a course via upsert_course (awarded when a learner passes the course), or to answer how many partners/learners currently hold each certificate. Returns per certificate: id, name, description, validity fields, activeLearnerCount, activePartnerCount (non-expired awards), and linkedCourses (courses that award this certificate). Certificates themselves (design, colors, badge) are created and edited in the Introw UI, not through MCP. Use list_issued_certificates when the user asks *who* holds a certificate.
list_certificates
List learners enrolled in the organisation's LMS courses, including progress and completion. Use this when the user asks who is enrolled, in progress, or has completed a course, or wants a roster of partners/learners per course. Filter by courseId (from list_courses), partnerId, status (NOT_STARTED, IN_PROGRESS, COMPLETED), or a free-text query on learner/partner/course name. Returns per enrollment: enrollmentId, courseId, courseName, partnerId, partnerName, learnerId, learnerName, learnerEmail, status, enrolledAt, startedAt, completedAt, and module progress counts. For certificate awards (which can also be given without completing a course), use list_issued_certificates. For per-course totals without a roster, use list_courses.
list_course_enrollments
List the authenticated organisation's LMS courses. Use this to find a courseId before calling upsert_course, to check import status after creating/updating a course with a SCORM package, or to answer how many partners/learners are enrolled or have completed each course. Returns per course: id, name, description, lmsMode (NATIVE or SCORM_RUNTIME), scormStatus ("processing" while a new SCORM import is being extracted, "ready" once live, null for native courses), scormPackageVersion (opaque id of the live package), scormVersion, bannerImage, dueDate, minimumPassingScore, autoEnrollmentEnabled, isRequired, certificateId, certificateName, enrolledLearnerCount, completedLearnerCount, enrolledPartnerCount, completedPartnerCount, and timestamps. Note: after a package *replacement* scormStatus stays "ready" (the old package serves until the swap completes) — poll until scormPackageVersion changes to confirm the new package is live. Use list_course_enrollments when the user asks *who* enrolled or completed a course, and list_issued_certificates when they ask who holds a certificate.
list_courses
List partners and learners who have been awarded an LMS certificate in the authenticated organisation. Use this when the user asks who is certified, which partners/learners hold a certificate, or wants a roster of certificate holders. Filter by certificateId (from list_certificates), courseId (the certificate linked to that course), partnerId, a free-text query on learner/partner/certificate name, or includeExpired (default false, active awards only). Returns per award: issuedId, certificateId, certificateName, partnerId, partnerName, learnerId, learnerName, learnerEmail, issuedAt, expiresAt, and status (ACTIVE or EXPIRED). Course completion is tracked separately. Use list_course_enrollments for who finished a course, and list_courses / list_certificates for counts without a roster.
list_issued_certificates
Gather source data for a partner business review. Use this when the user asks to prepare a QBR, MBR, WBR, or similar partner review for one partner. Requires partnerId and duration. QUARTERLY reads data from three months back through three months forward, MONTHLY reads one month back through one month forward, and WEEKLY reads one week back through one week forward. Returns grouped review inputs: goals, CRM opportunities/deals, mutual action plan tasks, form submissions, and instructions for composing an agenda and discussion points. It does not create or save a meeting record.
prepare_partner_business_review
Accept, decline, or return a pending partner form submission such as a deal registration or shared lead. Use this only when the user explicitly asks to accept/approve, decline/reject, or return a specific submission, and after confirming the decision. Use search_form_submissions first to discover the submission and its formSubmissionId. ACCEPT approves the submission (recording the current approval step for multi-step approvals, finalising once all steps are approved); optionally provide linkWithDealId to link to an existing CRM deal instead of creating a new record. DECLINE terminally rejects it. RETURN sends it back to the submitter to revise and resubmit. Only pending submissions can be processed. Provide an optional message to communicate the decision to the submitter.
process_form_submission
Find CRM-synced objects in the authenticated organisation. Use this when the user asks for deals, opportunities, forecasts, tickets, cases, leads, companies, accounts, or contacts. Supports filtering by CRM object type, partner, text query, deal stage, due/overdue/inactive deal views, rolling date periods, explicit date ranges, and sorting/limits such as top deals by amount or earliest close date. Returns matching objects with formatted properties, related partner summary when available, recent activity for each object, stage metadata, currency, timezone, integration metadata, and an object link when a URL context is available. Map common terms before calling: opportunity or forecast to DEAL, account to COMPANY, and case to TICKET. Provide objectOfInterestPlural as the user's plural label for the object type, such as "deals", "tickets", "companies", or "contacts".
search_crm_objects
Find partner form submissions in the authenticated Introw organisation. Use this when the user asks about submitted partner forms, deal registrations, shared leads, pending submissions, accepted submissions, declined submissions, or submissions from a specific partner. Requires a status filter: SUBMITTED for all submitted forms regardless of review status, or PENDING, ACCEPTED, or DECLINED for review state. Optionally filter by partner and created or completed date range. Returns submission data, review status, the formSubmissionId (use it with process_form_submission to accept/decline/return), submitter email/name/job title, submitter partner name, potential channel conflict flag, and a submission link when a URL context is available.
search_form_submissions
Find partner portal timeline activity in the authenticated organisation. Use this when the user asks about partner activity, engagement history, portal visits, comments, form events, task events, CRM object updates, commission events, quote events, announcements, or asset views. Supports filtering by activity type, partner, created date range, or a specific CRM object ID and type. Returns up to 500 newest timeline events with event type, created date, partner ID/name, CRM object reference, task ID, form submission ID, quote metadata, comment content, asset name, initiator metadata, and CRM object changelog fields when present.
search_partner_activity
Find public partner portal tasks in the authenticated Introw organisation. Use this when the user asks about tasks, to-dos, onboarding tasks, mutual action plan items, pending work, completed work, or tasks for a specific partner. Supports filtering by task status, partner ID, and created or completed date range. Returns matching task IDs, titles, status, due date, completion date, assignee label, description HTML, and a task link when a URL context is available.
search_partner_tasks
Find partner companies in the authenticated Introw organisation. Use this when the user asks for partner records, partner IDs, partner owners/managers, champion email, lifecycle phase, tier, experience/template, categories, country, or last activity. Returns matching partners with IDs, names, categories, country, champion email, owner/manager details, lifecycle phase, tier and tier plan, experience name, last activity date, and a partner link when a URL context is available. Use query when the user names a partner. Use dateRange only when the user asks for partners created or active within a specific period.
search_partners
Discover or submit any partner portal form for a known partner. Use this when the user wants to submit, fill out, complete, or start any partner form: registering a deal, sharing a lead, requesting MDF / funds, onboarding, feedback or surveys, submitting a project, filing a claim, applying, or any other configured partner form. This tool has two modes. Discovery mode uses partnerId, objectType, and callToAction without formId to identify the matching available form and return field IDs, labels, types, required flags, allowed dropdown options, auto-filled values, and a manual form link. Submit mode uses formId and userProvidedData from discovery to validate and submit the form. Also use this tool to change an existing CRM record when update_crm_object_properties answered with a ctaFormFallback: call it with that action's submitPartnerFormArguments (formId plus relatedObjectId and relatedObjectType), which preselects the record in the form's CRM object picker so the submission updates it instead of creating a new one. Submit mode creates a persisted form submission, may trigger configured form automations such as CRM-facing record creation, and may enqueue form, timeline, acceptance, or notification jobs. Call submit mode only after the user has provided the required form data and confirmed they want to submit it.
submit_partner_form
Update editable properties on a CRM-synced object in Introw. Use this only when the user explicitly asks to change fields on a specific deal, ticket, lead, company, or contact. Never use this tool to add a comment, note, message, or approved draft to an object, including requests phrased as "add it to the deal"; use add_partner_comment instead. Use search_crm_objects first when objectId and objectType are not already known. Provide propertiesToUpdate as CRM property API names mapped to the requested values, and include only properties the user explicitly wants changed. The tool verifies the object is linked to a partner room, checks the object's configured CRM entity list, filters to properties that are editable in Introw, normalizes values, and applies the edit. Successful edits may sync to the connected CRM. If the requested properties are not editable inline, the response may include a ctaFormFallback: the organisation routes those changes through a partner form (an "edit" or "move to next stage" button on the portal). Never report the change as impossible before checking for it. Pick the listed action that IS the requested change (never an unrelated one), then call submit_partner_form with that action's submitPartnerFormArguments to read the form's fields, and again with the same arguments plus userProvidedData to submit it; the record is already attached. A response carrying addCommentFallback instead means nothing can apply the change, and the suggestion can be posted with add_partner_comment after user confirmation.
update_crm_object_properties
Update one partner management field for one or more partners in Introw. Use this only after the user explicitly asks to set, clear, add, or remove a supported partner field and the target partner IDs are known from search_partners or prior context. Supported fields are tier, phase, experience/template, commission plan, champion email, currency, locale/language, categories, company name, and company domain. For configured option fields, the tool resolves the provided value against live Introw options and returns a needs_value, option_not_found, or ambiguous_value status when it cannot safely update. For categories, mode controls whether values are set, added, or removed. Some updates, such as tier, may also sync mapped values to the connected CRM.
update_partner_fields
Update an existing partner portal task. Use this only when the user asks to edit a task title, description, due date, status, or assignment, or to mark a task complete. Use search_partner_tasks first when the task ID is not already known. Provide taskId and only the fields the user explicitly wants changed; omitted fields remain unchanged. Use status DONE to mark a task complete. Assignment changes may enqueue an assignment notification; completion changes may enqueue a completion notification; noticeable changes record a TASK_UPDATED timeline event.
update_partner_task
Introw PRM ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Introw PRM'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.
What are Introw PRM alternatives on ChatGPT?
As of 2026-11-02, Introw PRM competes with Channlworks, Crossbeam, EULER, Luasai, Nesha, Partner.io, Suger in ChatGPT Partner & Ecosystem Revenue, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.