VComply
Manage GRC work in VComply
- Category
- Pending
- Primary Subcategory
- Pending
Integration details
Description
Connect VComply to ChatGPT and manage your compliance work directly through conversation. Securely access your VComply GRC account to find programs, responsibility centers, responsibilities, due dates, compliance performance, comments, and evidence. Key capabilities View your VComply profile, programs, and responsibility centers Search responsibilities by status, including active, overdue, upcoming, and incomplete View responsibility details and due-date schedules Check compliance performance across programs and responsibility centers Add comments and complete assigned responsibilities Securely upload and attach evidence through a browser-based upload page Evidence uploads When evidence is needed, ChatGPT provides a secure upload page where you can upload files directly to VComply's secure storage. File contents are not passed through ChatGPT or included in tool requests. Security OAuth 2.0 authentication with your VComply account Read and write actions are appropriately permissioned Requests are made only to VComply's first-party APIs
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Category
- Pending
- Primary Subcategory
- Pending
- Secondary Subcategories
- None listed
- Brand
- Unknown
- Access
- Account required
- First tracked
- 2026-09-23
- Tool count
- 23
- Geography
- US
The broad Category that contains the Primary Subcategory.
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for VComply
Get updates when VComply’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competitive lineup
23 tools agents can invoke
Adds a comment to a due date on a responsibility assigned to the authenticated user. When only one open due date exists the comment is added there automatically. When multiple open due dates exist, returns them for confirmation — call again with dueDateId. Plain text: pass comment only. Hyperlinks: include the visible label in comment and pass links [{ href, text, title? }] (or paste bare http(s) URLs — including a comment that is only a URL — to auto-link with pasteContent_RTE). To @mention users: call get_users (searchTerm), then pass comment with @DisplayName plus mentions [{ userId, name }]. Mentions and links can be combined. Optional attachmentFileRefs attach confirmed uploads via the evidence upload side-channel. Comment editing/deletion are not supported. Use when: the user explicitly asks to add, post, or leave a comment on a responsibility / due date. Do not use when: the user is searching, listing, reviewing details, checking due dates, or asking about performance — those are read-only flows. Prerequisites: numeric responsibilityId; non-empty comment. For @tags, get_users then mentions. Optional links, dueDateId, attachmentFileRefs. Next step: if confirmation_required is returned, call again with the selected dueDateId. Safety boundary: write/mutation tool — never select for search or read-only prompts.
add_responsibility_comment
Confirms a finished browser upload. Pass sessionId after the user completes uploadPageUrl. Returns a ready fileRef for mark_responsibility_complete (evidenceFileRefs) or add_responsibility_comment (attachmentFileRefs). Does not accept file content or Base64. Fails with UPLOAD_NOT_READY if the page has not finished uploading. Use when: the upload page reported success and you need a fileRef for complete/comment. Do not use when: the user has not finished the browser upload yet (poll get_evidence_upload_status instead).
confirm_evidence_upload
Fetches compliance performance for a single entity and ID. Set entity to "program" for a program ID or "responsibility_center" for a responsibility center ID. Returns performance as [completedOnTime, completedWithDelay, notCompleted] numeric ratios from V-Comply, or null when no linked responsibilities exist. When no responsibilities are linked to the selected entity, performance is null and a note explains that performance data is unavailable — tell the user explicitly rather than guessing. Use when: the user asks for compliance performance, completion rates, or on-time/delayed/not-completed stats for a program or responsibility center. Do not use when: listing programs or centers, fetching responsibility metadata, or answering due-date questions. Prerequisites: resolve the numeric ID first with programs (entity="program") or responsibility_centers (entity="responsibility_center"). Next step: none for the performance answer itself; use responsibilities if the user then wants individual items. Safety boundary: read-only — never use for completing work or adding comments.
compliance_performance
Returns the authenticated user profile, including orgUserId for mapping assignee and userRole fields across compliance entities. Use when: the user asks who they are, needs their org user ID, or an assignee/userRole field must be mapped to a person. Do not use when: searching or listing responsibilities, programs, responsibility centers, performance, due dates, or other compliance records. Prerequisites: none. Next step: use responsibilities, programs, or responsibility_centers for compliance discovery. Safety boundary: read-only identity helper — never treat this as compliance search.
current_user
Returns pending/ready/expired/failed for an evidence upload session. Poll with sessionId until ready after the user finishes uploadPageUrl. Metadata only — no file bytes. Use when: waiting for the browser upload page to complete before confirm_evidence_upload. Do not use when: listing responsibilities or other non-upload questions.
get_evidence_upload_status
Returns attestation completion status for a policy — acknowledged, pending, overdue, and totals. Optionally includes a user list for privileged callers. Use when: compliance managers ask how many people acknowledged a policy, who is pending, or who is overdue. Do not use when: listing or searching policies (use get_policies / search_policies) or reading policy content (use get_policy_detail). Prerequisites: policyId from get_policies or search_policies (numeric id or slug). Next step: none for the attestation answer itself. Safety boundary: read-only — never use for mutations. User lists are role-gated.
get_policy_acknowledgment_status
Returns plain-text policy section content for Q&A. Does not load the entire document into the model in one shot — use section crawl. Section crawl (preferred for thorough answers): (1) get_policy_sections (2) get_policy_answer with sectionIds for relevant headings (up to 8) and the user question (3) if truncated, repeat with the next sectionIds until enough context. Keyword shortcut: pass question only to auto-pick top matching sections (weaker for cross-section questions like leave calendars). Use when: the user asks what a policy says about a topic, leave entitlements, dates, or any body content. Do not use when: only listing section titles (use get_policy_sections) or opening the workroom (use get_policy_workroom_url). Prerequisites: policyId from get_policies or search_policies. Next step: synthesize an answer from matchedSectionContent and ALWAYS append sectionDeepLinkUrl (or portalUrl). If truncated is true, fetch more sectionIds. If error is NO_CONTENT_INDEXED, redirect the user to portalUrl. Safety boundary: read-only — never use for mutations.
get_policy_answer
Fetches a full policy record including content summary (plain text), linked controls, attestation stats, and optional version history. Use when: the user asks about a specific policy by name/id after it was identified via get_policies or search_policies. Do not use when: browsing the library (use get_policies) or keyword search (use search_policies). Prerequisites: policyId (numeric id or slug) from get_policies or search_policies. Next step: get_policy_acknowledgment_status for attestation completion; get_policy_workroom_url for a portal link; if contentSummary is null, tell the user content is not indexed and share portalUrl. Safety boundary: read-only — never use for mutations.
get_policy_detail
Fetches the section structure (titles/levels/previews) of a policy body without returning the full document. This is step 1 of section-crawl Q&A. Use when: the user asks what sections a policy has, or before reading body content for a thorough answer (leave rules, entitlements, multi-section topics). Do not use when: only needing a workroom link (use get_policy_workroom_url). Prerequisites: policyId from get_policies or search_policies. Next step: call get_policy_answer with sectionId or sectionIds from this list (batch up to 8). If truncated, call again with the next section ids. If error is NO_CONTENT_INDEXED, share portalUrl. Safety boundary: read-only — never use for mutations.
get_policy_sections
Builds a Policy Workroom deep-link URL for a policy (LOGIN_URL origin + /policyops/register/policies/{polid}?v={versionId}). Use when: the user asks to open, go to, or get a link to a policy workroom after identifying it via get_policies or search_policies. Do not use when: answering what the policy says (content Q&A is not available yet) or listing/searching policies. Prerequisites: policyId (numeric id or slug) from get_policies or search_policies. Next step: share workroomUrl with the user so they can open it in the browser. Safety boundary: read-only URL composition — never use for mutations.
get_policy_workroom_url
Fetches the responsibility record and metadata for a specific responsibility by ID, including fields like title, notes, objective, assignees, risk class, linked entities, and configuration. Use when: the user asks for details, metadata, notes, objective, assignees, risk class, or configuration of a known responsibility. Do not use when: answering due-date, deadline, or schedule questions (use responsibility_due_dates), or when the responsibility ID is unknown (call responsibilities first). Prerequisites: numeric responsibilityId from responsibilities when the user only provided a name/title. Next step: call responsibility_due_dates if the user then asks about deadlines. Safety boundary: read-only — never use for completing work or adding comments.
responsibility_details
Fetches due dates, deadlines, and open due-date items for a specific responsibility, resolved to the authenticated user as assignee. Use when: the user asks when a responsibility is due, for deadlines, schedules, open due dates, or overdue timing for a known responsibility. Do not use when: answering general metadata questions (use responsibility_details), or when the responsibility ID is unknown (call responsibilities first). Prerequisites: numeric responsibilityId from responsibilities when the user only provided a name/title. Next step: none for schedule answers; only call mutation tools if the user explicitly asks to complete or comment. Safety boundary: read-only schedule lookup — never use for completing work or adding comments.
responsibility_due_dates
Returns Always Notify (success) and Notify on Failure (fail) overseer userId and userGroupId lists for a responsibility. Use when: the user asks who oversees a responsibility, who gets notified on complete/fail, or before replacing overseer lists. Do not use when: listing responsibilities, due dates, or completing work. Prerequisites: numeric responsibilityId from responsibilities when only a title was given. Next step: update_always_notify_oversight or update_notify_on_failure_oversight with the full desired lists (replace semantics). Safety boundary: read-only.
get_responsibility_overseers
Lists organization users with optional status (active/inactive), license (power/light), and searchTerm filters. Use when: the user asks who is in the org directory, needs owner/author IDs for policy filters, wants to find a user by name or email, or wants active/inactive power or light users. Do not use when: only asking who the current signed-in user is (use current_user). Prerequisites: none. Next step: use returned user ids with get_policies ownerId/authorId filters, overseer update tools, or add_responsibility_comment mentions [{ userId, name }] for @tags. Safety boundary: read-only directory lookup — never use for mutations.
get_users
Lists policies with status, owner, review date, and linked controls count. Does not return policy body content. Use when: the user is exploring the policy library, filtering by workflow status (published, draft, in review, in approval, approved, rejected), category, RC, owner, or author. Do not use when: the user provides a keyword/topic to search (use search_policies), or needs full content for a known policy (use get_policy_detail). Prerequisites: none. Prefer this as the first call for browsing. Resolve owner/author names with get_users when needed. Next step: call get_policy_detail with a policy id/slug, get_policy_workroom_url for a portal link, or get_policy_acknowledgment_status for attestation stats. Safety boundary: read-only discovery — never use for mutations.
get_policies
Lists compliance programs available to the authenticated user, including each program ID, name, type, active status, and owners. Use when: the user asks for available programs, program names, or a program ID (for example "find program X" or "which programs do I have"). Do not use when: listing responsibilities, responsibility centers, due dates, or performance stats. Prerequisites: none. Next step: after selecting a program ID, call compliance_performance with entity="program", or responsibilities with programId to list linked responsibilities. Safety boundary: read-only discovery — never use for completing work or adding comments.
programs
Lists compliance responsibilities for the authenticated user, including linked program IDs/names on each item. Use type to filter: active (all active), not_completed (failed assignee work status), upcoming (pending), or overdue (delayed). Optional programId narrows to responsibilities under one program — resolve the program name with programs first (e.g. "all ISO 27001 responsibilities"). Use when: the user asks to find, search, list, or look up responsibilities, including by program. Do not use when: the numeric responsibility ID is already known and the question is only about metadata (use responsibility_details) or only about deadlines (use responsibility_due_dates). Prerequisites: none for general list; call programs first when filtering by program name. Prefer this as the first step whenever the user gives a title/name instead of an ID. Next step: call responsibility_details for general metadata, responsibility_due_dates for schedule questions, or overseer update tools after collecting ids. Safety boundary: read-only discovery — never use for completing work or adding comments.
responsibilities
Lists responsibility centers available to the authenticated user, including each center ID, rcid, name, status, origin, and parent. Use when: the user asks for available responsibility centers, center names, org units, or a responsibility center ID. Do not use when: listing responsibilities, programs, due dates, or performance stats. Prerequisites: none. Next step: after selecting a responsibility center ID, call compliance_performance with entity="responsibility_center" for performance questions. Safety boundary: read-only discovery — never use for completing work or adding comments.
responsibility_centers
Marks an open due date as completed for a responsibility assigned to the authenticated user. When only one open due date exists it is completed automatically. When multiple open due dates exist, returns them for confirmation — call again with dueDateId. Optional comment supports clickable hyperlinks: paste bare http(s) URLs or pass links [{ href, text, title? }]. @mentions are not supported on complete. Optional evidenceFileRefs attach confirmed uploads via the evidence upload side-channel (request_evidence_upload → confirm_evidence_upload). Do not pass file content or Base64. Use when: the user explicitly asks to complete, mark done, close, or finish a responsibility / due date. Do not use when: the user is searching, listing, reviewing details, checking due dates, or asking about performance — those are read-only flows. Prerequisites: numeric responsibilityId (from responsibilities if only a name was given). Optional dueDateId, comment, links, evidenceFileRefs. Next step: if confirmation_required is returned, call again with the selected dueDateId. If evidence is needed first, call request_evidence_upload then confirm before completing. Safety boundary: write/mutation tool — never select for search or read-only prompts.
mark_responsibility_complete
Requests a short-lived browser upload session for responsibility evidence or comment attachments. Returns hostAction=open_upload_page with uploadPageUrl and sessionId — the user opens the link in a browser and uploads the file there. Never pass Base64 or file content. After the page shows success, call get_evidence_upload_status or confirm_evidence_upload with sessionId. purpose=evidence (default): after confirm, pass evidenceFileRefs to mark_responsibility_complete. purpose=attachment: after confirm, pass attachmentFileRefs to add_responsibility_comment. Use when: the user needs to attach a file before completing a responsibility or adding a comment. Do not use when: listing or reading responsibilities without an explicit upload request.
request_evidence_upload
Full-text keyword search across the policy library. Returns a relevance-ranked list of matching policies. Use when: the user provides a keyword or topic rather than a specific policy name (e.g. password security, data residency). Do not use when: browsing/filtering by workflow status without keywords (use get_policies instead). Prerequisites: non-empty query string. Next step: call get_policy_detail for a selected result id/slug, or get_policy_workroom_url to open it in Policy Workroom. Safety boundary: read-only discovery — never use for mutations.
search_policies
Replaces the Always Notify (success) overseer slot on one or many responsibilities with the exact userId and userGroupId lists provided. Same lists are applied to every responsibilityId in the request. Empty arrays clear that side. Does not change Notify on Failure. Use when: the user explicitly asks to set, replace, or clear Always Notify / success overseers. Do not use when: reading who oversees (use get_responsibility_overseers), or changing Notify on Failure (use update_notify_on_failure_oversight). Prerequisites: numeric responsibilityIds; numeric user/group IDs from get_users when names were given. Call get_responsibility_overseers first if merging/add/remove is intended — this tool does not merge. Safety boundary: write/mutation — full-slot replace via internal bulk API; never select for read-only prompts.
update_always_notify_oversight
Replaces the Notify on Failure (fail) overseer slot on one or many responsibilities with the exact userId and userGroupId lists provided. Same lists are applied to every responsibilityId in the request. Empty arrays clear that side. Does not change Always Notify. Use when: the user explicitly asks to set, replace, or clear Notify on Failure / fail overseers. Do not use when: reading who oversees (use get_responsibility_overseers), or changing Always Notify (use update_always_notify_oversight). Prerequisites: numeric responsibilityIds; numeric user/group IDs from get_users when names were given. Call get_responsibility_overseers first if merging/add/remove is intended — this tool does not merge. Safety boundary: write/mutation — full-slot replace via internal bulk API; never select for read-only prompts.
update_notify_on_failure_oversight
How do I improve a ChatGPT Plugin's 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.