Dovetail Regulatory
Connect to your eQMS
- Category
- Operations
- Primary Subcategory
- Regulated-Industry Compliance & Regulatory Research
Integration details
Description
Dovetail Regulatory connects medtech teams to their Dovetail workspace from ChatGPT. Users can inspect devices and tasks, search and edit regulatory documents and data keys, manage traceability links and comments, research standards and FDA 510(k)s, recall project knowledge, and run regulatory research and review agents.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Regulated-Industry Compliance & Regulatory Research
- Secondary Subcategories
- None listed
- Brand
- Dovetail
- Access
- Account required
- First tracked
- 2026-07-18
- Tool count
- 37
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Dovetail Regulatory
Get updates when Dovetail Regulatory’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

Competing in ChatGPT Regulated-Industry Compliance & Regulatory Research
View Category37 tools agents can invoke
Create a new document shell. Provide exactly one of `template_key` or `default_title`. Template-backed documents use `template_key`; freeform documents use `default_title`. After this returns, use `create_document_version` if you need an editable draft and `edit_document` to change document content.
create_document
Create or reuse an editable draft for a Dovetail document. Use this after `read_document_metadata` shows the latest version is a finalized revision and you need an editable draft before `edit_document` or `edit_document_comments`. If an editable latest draft already exists, this tool returns it without creating another version. This tool rejects uploaded documents, documents that do not support live editing, and versions currently routing for approval.
create_document_version
Create a traceability matrix link. Use this after reading the traceability matrix and identifying the exact source and target IDs to connect. Supported `link_type` values: - `risk_control_ssr`: provide `rc_id` and `ssr_id` - `ssr_design_file`: provide `ssr_id` and `document_id` - `test_validation_file`: provide `test_id` and `document_id`
create_traceability_matrix_link
Delete a traceability matrix link. Use this after reading the traceability matrix and identifying the exact source and target IDs to disconnect. Supported `link_type` values: - `risk_control_ssr`: provide `rc_id` and `ssr_id` - `ssr_design_file`: provide `ssr_id` and `document_id` - `test_validation_file`: provide `test_id` and `document_id`
delete_traceability_matrix_link
Update the value of a data key. The tool resolves the current source-answer context, validates the proposed final value, and asks the backend to write it. The backend is authoritative for whether the selected version can be modified. When accepted, the new value takes effect immediately and overwrites the current one. Use exactly one mode: - Full replacement: provide `value` - Partial edit: provide `old_string` and `new_string`, optionally with `replace_all=true` Rules: - choose one explicit `source` object for either a document version or staged assistant-process state - an assistant-process source contains only process and access scope; document/version fields belong only to a document source - the selected version must be an editable draft; the backend rejects finalized versions and versions routing for approval - for a finalized version, call `create_document_version` first; for a routing version, resume editing before changing the data key - partial edits are case-sensitive - partial edits fail if `old_string` is missing, not found, empty against a non-empty current value, or matches multiple times unless `replace_all=true` Returns the identifier of the document version that was updated.
edit_data_key
Edit the latest live Dovetail document as tracked changes. Pass the Dovetail document UUID as document_id. This only works when the latest version is already an editable draft. If the latest version is a live revision, call create_document_version first, then retry the edit. Operation content must be shorthand strings. To delete a whole target node/block as a tracked deletion, use a "replace" operation with "content" set to the empty string "". Do not pass [] or any other array value: edit content must always be a Shorthand string. Do not use $paragraph[] for deletion; that replaces the target with an empty paragraph instead of removing it. Do not use this for historic revisions or uploaded documents. <top-level-shorthand-examples> When content contains multiple top-level blocks, concatenate their Dovetail Shorthand node expressions directly, with no spaces, tabs, or line breaks between them. Whitespace between top-level nodes is parsed as document content and creates unwanted paragraphs. Correct single block: $paragraph[Body text.] Correct multiple blocks: $heading{"level":1}[Title]$paragraph[Body text.]$heading{"level":2}[Next section]$paragraph[More text.] Correct whole-document operation: {"type":"replace","target":"doc","content":"$heading[Title]$paragraph[Body text.]"} Incorrect whole-document operation: {"type":"replace","target":"doc","content":"$heading[Title]\n$paragraph[Body text.]"} In that incorrect JSON, the \n escape decodes to a literal line break in content, which creates an unwanted paragraph. Never pretty-print multi-block shorthand across lines. </top-level-shorthand-examples> Edit the document. <tool-input> operations: an array of edit operations. Each operation is an object with type, target, and content properties. <type> replace (replaces the target), insertBefore (inserts content before the target), insertAfter (inserts content after the target) </type> <target> The target is the content where the operation will be applied. It can be: - a 6-character hash identifier of a node (obtained from the _hash attribute in nodes returned by read_document tool). Always use the value of the _hash attribute itself, never the node's id or any other attribute. Each operation can only target one node at once. To edit multiple nodes, create one operation for each node. - "doc" to target the entire document. Use it to replace the entire document with new content. </target> <content> Should be a valid string in Dovetail Shorthand format. Do not include _hash attributes. </content> </tool-input> <tool-result> operationResults: the results of applying the operations </tool-result> <important-rules> Call the read_document tool to get the _hash attributes of the nodes you want to edit. In the insertBefore and insertAfter operations, the content should not contain the current content of the node, only the new content that is inserted before or after. </important-rules> Server AI Toolkit bridge note: this Python integration executes tools with format='shorthand', so generated edit content must be Dovetail Shorthand, not HTML.
edit_document
Edit comments on the latest live Dovetail document. <tool-input> operations: an array of operation objects. Each operation is an object with a `type` field plus operation-specific fields. Do not pass tuple/list-style operations to this tool; only object operations are accepted. <operation-types> createThread: Creates a new anchored comment thread on document content. First call read_document to get the target top-level node hash, then provide the full replacement content for that same node with the new inline thread mark. Example: { "type": "createThread", "nodeHash": "ABC123", "content": "$paragraph[The #inlineThread{\"data-thread-id\":\"new:Needs clarification\"}[target text].]" } replyToThread: Adds a reply to an existing thread. { "type": "replyToThread", "threadId": "thread-id", "content": "reply text" } createComment: Alias for replyToThread. { "type": "createComment", "threadId": "thread-id", "content": "comment text" } updateComment: { "type": "updateComment", "threadId": "thread-id", "commentId": "comment-id", "content": "new text" } removeComment: { "type": "removeComment", "threadId": "thread-id", "commentId": "comment-id" } removeThread: { "type": "removeThread", "threadId": "thread-id" } resolveThread: { "type": "resolveThread", "threadId": "thread-id" } unresolveThread: { "type": "unresolveThread", "threadId": "thread-id" } </operation-types> After editing comments, call read_document_comments again to verify the updated state. Use read_document_comments with from_node=0 to read existing comment threads. </tool-input>
edit_document_comments
Get details for a specific 510(k) number from the FDA database. Use this to inspect the device record and retrieve the parsed summary URL that can then be passed to `read_summary`.
get_510k
Check the status of a previously started AGENT run. Pass the `agent_run_id` returned by one of the `run_*_agent` tools. The result is either `working`, `completed` with final output, or `failed` with an error message.
get_agent_run_result
Get the complete database entry for an assistant process. Use this when the user refers to a staged or proposed value. The process state contains changes that have not been applied to documents yet, so inspect it before searching document metadata for that value. Provide the process, organization, and device IDs that identify the process context.
get_assistant_process
Get basic device information and characteristics. Returns high-level device metadata such as name, description, market, and components. Prefer `read_data_key` or `read_document` if you need specific regulatory content rather than an overview.
get_device
Get the computed dashboard for an organization or device. Omit `device_id` for the organization dashboard. Provide `device_id` when the user wants the dashboard scoped to a specific device.
get_dashboard
List available data-key definitions. A data-key id can belong to multiple document records. The id identifies the field definition; each document version holds its own value. Use a selected `document_id`/`version_id` pair when reading or editing one.
list_data_keys
Get the devices the authenticated user can access in one organization. Use this to identify the device ID you need before reading data keys, documents, templates, or running an AGENT against a specific device. Call `get_organizations` first if you need an organization ID.
get_devices
List document templates available for the configured device. Use this if you need to understand which template keys are available in the system before reading a template or creating related content.
list_document_templates
List all available documents for a device in JSON format. Returns a lightweight list with `title`, `id`, and `templateKey`. Use `read_document_metadata` for revision metadata and `read_document` for full document content.
list_documents
Get the functional groups for an organization. Use this when you need the available functional groups before creating or updating documents that belong to a specific function or team.
get_functional_groups
Get the organizations the authenticated user can access. Use this to understand which organizations are available to the current user before listing or working with devices and related resources.
get_organizations
List all standards available to the current server.
list_standards
Get tasks for the authenticated user or the whole organization. `scope="mine"` returns tasks assigned to the current user. Use `scope="all"` when the user explicitly needs organization-wide task visibility. Provide `device_id` to include tasks for that device plus organization-wide tasks.
get_tasks
Get team members for an organization. Use this when you need collaborators in a specific organization, for example to identify reviewers or document owners across that org.
get_team_members
Read the text content of a parsed 510(k) summary file. Pass the `Parsed PDF URL` returned by `search_510k_summaries` or `get_510k`. Do not use the original FDA 510(k) URL here.
read_summary
Get the configuration for a specific data key. Use this to inspect the data key type, guideline text, related data keys, and visibility rules before reading or editing the value.
read_data_key_configuration
Get the value for a given data key. By default this returns the first 50,000 characters with a summary when the value is longer. Choose a document source with `document_id` and `version_id`, or an assistant-process source with `assistant_process_id`, `org_id`, and `device_id`.
read_data_key
Read the full body for a document version. Live editable drafts return the current Dovetail document JSON. Stored revisions return the saved Dovetail document JSON when available. Uploaded documents return their stored parsed markdown. If `version_id` is omitted, the latest draft is preferred and otherwise the latest retrievable revision is returned. For Dovetail document JSON, `from_node` starts reading at a zero-based top-level node index. Use `read_document_metadata` for version, author, and approver metadata.
read_document
Read comment threads for the latest live Dovetail document. Pass the Dovetail document UUID as document_id. Read comment threads from the document with pagination. <tool-input> from_node: the index of the first thread to read (zero-based). The tool will read from that thread until the chunk size limit is reached. </tool-input> <tool-result> totalThreadCount: the total number of threads in the document threadRange: the range of threads that was read as [from, to) (zero-based, exclusive) threads: an array of thread objects, each containing: - id: unique thread identifier - nodeRange: the location of the thread in the document, or null if the thread is not annotated - content: the content of the document that is marked by the thread, or null if the thread is not annotated - resolvedAt: ISO timestamp when thread was resolved, or null if unresolved - createdAt: ISO timestamp when thread was created - updatedAt: ISO timestamp when thread was last updated - comments: array of comment objects, each containing: - id: unique comment identifier - content: the comment text content - userId: identifier of the user who created the comment - createdAt: ISO timestamp when comment was created - updatedAt: ISO timestamp when comment was last updated - data: optional metadata object associated with the thread </tool-result> <thread-location> Threads are associated with specific ranges of text in the document using the `inlineThread` mark. The `inlineThread` mark has a `data-thread-id` attribute that references the thread's ID. To find where a thread is located in the document, use read_document to read the document content and look for text nodes with an `inlineThread` mark whose `data-thread-id` matches the thread ID. </thread-location> <important-rules> To read from the beginning, call this tool with from: 0. Continue reading with higher from values to paginate through all threads. Use this tool to understand existing comments before making edits with edit_document_comments. </important-rules>
read_document_comments
Read document metadata for a document and its retrievable versions. Use this to inspect retrievable versions, authors, approvers, and revision details without fetching the full document body.
read_document_metadata
Look up a document template and the data keys that are part of it. Use this to understand which template keys and fields are part of a given document so you can create or review the relevant content sequentially. Always call `read_data_key_configuration` separately for each returned data key before filling out answers; the template response only identifies the fields, while the data key configuration provides the field-specific guidance, type, context, and constraints needed to complete them correctly.
read_document_template
Read a standards file by ID. Returns a paged view of the standard content. Use this to review the actual text of a standard after locating the file via `list_standards` or `grep_search_standards`.
read_standard
Get the device traceability matrix payload. Returns the backend traceability matrix JSON for a device, including chains, relations, and Mermaid definitions. Set `plain_mermaid=true` to remove Mermaid styling from `chains[].mermaidDefinition`. Mermaid click links are omitted by default because MCP clients cannot use them; set `include_mermaid_links=true` to include source links.
get_traceability_matrix
Search recalled expert knowledge relevant to the current device. This looks across organization-specific memory and the configured expert knowledge namespace to return concise retrieved context for the query.
memory_recall
Search 510(k) summaries by semantic similarity to the query. The query should be a short description of the device and the relevant characteristics you want to match. Results include similar devices and metadata such as organization, product code, received year, FDA URL, parsed summary URL, and similarity score.
search_510k_summaries
Run a fast regex search across document and data key content. This is best for finding exact text matches or regex patterns and is more precise than manually scanning with `read_document` or `read_data_key`. The query must be a valid regex, so escape special characters when needed.
grep_search_documents
Run a fast regex search across standards content. This is best for finding exact text matches or regex patterns inside standards. The query must be a valid regex, so escape special characters when needed.
grep_search_standards
Start the Expert Reviewer and return an `agent_run_id`. Use this when you need an agentic expert review of regulatory content or reasoning for a specific device. This call starts the background run only. Use `get_agent_run_result` with the returned handle until the status is `completed`.
run_expert_reviewer_agent
Start the Predicate Researcher and return an `agent_run_id`. Use this when you need agentic predicate or FDA research for a specific device. This call starts the background run only. Use `get_agent_run_result` with the returned handle until the status is `completed`.
run_predicate_researcher_agent
Start the Standards and Guidances Researcher and return an `agent_run_id`. Use this when you need agentic research across standards and guidances for a specific device. This call starts the background run only. Use `get_agent_run_result` with the returned handle until the status is `completed`.
run_standards_and_guidances_researcher_agent
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.
What are Dovetail Regulatory alternatives on ChatGPT?
As of 2026-09-28, Dovetail Regulatory competes with Amok, Ansvar Gateway, BoardWise, Brokly, CMS Coverage, COLA Cloud, H-INNO FCC/KC Insight, Lumini, Midlyr, neimo., Rebarly, Reecopedia, Regit PRIIPs, Scorechain, Tariff Code Compliance, Taxiger Doc in ChatGPT Regulated-Industry Compliance & Regulatory Research, 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.