- Brand
- AnyDB
- Category
- Productivity
- Primary Subcategory
- Business Data & Low-Code Apps
Integration details
Description
AnyDB is a workspace for records, documents, files, and business processes. This plugin connects ChatGPT to your AnyDB account so you can find, create, update, copy, and move records, search their content by meaning, and upload or download files without leaving the conversation. You can also build and adjust AnyDB solutions: define record types with fields, layouts, and formulas; set up filtered views and reports; share records and forms; add comments; review and restore earlier record versions; and automate work with event-driven workflows. Sign in with your AnyDB account. The plugin can only see and change what your AnyDB permissions allow.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Business Data & Low-Code Apps
- Secondary Subcategories
- None listed
- Brand
- AnyDB
- Access
- Account required
- First tracked
- 2026-09-25
- Tool count
- 173
- 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 AnyDB
Get updates when AnyDB’s Discoverability Score or category rank changes.
Competing in ChatGPT Business Data & Low-Code Apps
View Category173 tools agents can invoke
Post a comment on a record, or on one cell of it. Use this rather than writing into a record's comments through update_record: the author is the authenticated user and cannot be set by the caller, the id and timestamp are assigned by the server, and mention notifications fire. Omit cellPosition to comment on the record itself; pass a grid position such as 'A8' to comment on that one cell. Returns the new commentId.
anydb_add_comment
Team admins: approve a proposed profile, or the pending proposal on an active one, so its rules are the ones checked.
anydb_approve_compliance_profile
Cancel one of the follow-ups a Teammate scheduled for itself (followUpId from anydb_get_teammate_memory's followUps). Team admins and those who manage it.
anydb_cancel_teammate_follow_up
Stop a Teammate's task that is queued, running or waiting.
anydb_cancel_teammate_task
Stop a bulk_create_records job after its current chunk of 25. Records already created stay; nothing is rolled back.
cancel_bulk_job
Add users to, and/or remove them from, a group of the team. Everyone added immediately gets the access the group holds. Refused unless you may manage the group.
anydb_change_group_members
Check specific permission type/level pairs for a user on a team, database, or record — for example OBJECT_ATTACHED at PERM_CREATE to ask whether they may add records underneath it. Use anydb_get_permissions instead when you want the whole picture. Permission names and what they mean are in anydb://guides/permissions/v1.
anydb_check_permissions
Fetch only what CHANGED at one version, rather than the whole record. Use it to answer "what did this edit actually do" without diffing two full records yourself. Same timestamp rules as anydb_get_record_version.
anydb_get_record_version_delta
The compliance rule catalog: every rule kind a profile can use, with its parameters, and starter templates (ITAR, SOC 2 access, personal data). Templates are a starting point, not legal advice. Read this before writing a profile's rules.
anydb_compliance_catalog
Create a copy of an existing AnyDB record. The copy will be an independent record with its own ID. You can optionally attach the copy to a different parent record and control how file attachments are handled. There are three attachment modes: (1) 'noattachments' - Copy without any file attachments (files are not copied), (2) 'link' - Copy with linked attachments (files reference the same storage location as the original), (3) 'duplicate' - Copy with duplicated attachments (files are fully copied to new storage locations, creating true independent copies).
copy_record
Correct a Teammate about one of its tasks, finished or not ("the summary goes to #eng, not email"). The correction is kept as a lesson it recalls on later tasks, and noted on the task; it does not restart the task. To have it redo the work, give it a new task.
anydb_correct_teammate
Set up a Document Generation template: attach an uploaded .docx or .xlsx file to a workspace type, so documents can be generated from records of that type. THE FILE MUST BE UPLOADED FIRST and the upload must be COMPLETED - use prepare_file_upload, PUT the bytes, then complete_file_upload, and pass the resulting File record's adoid as fileRecordId. A record that is not a File, or a File whose upload never completed, is rejected: an agent that skips complete_file_upload has an adoid that looks usable and is not. The type must already exist. WHAT TO PUT INSIDE THE TEMPLATE FILE - the merge-tag syntax: - A placeholder is SINGLE braces around a field name: {Invoice Number}. This is NOT the double-brace {{...}} of AnyDB's formula language - the two look alike and are different. Double braces do also work, because the renderer retries with {{ }} when single-brace parsing reports duplicate delimiters, but single braces are the primary form and the one to write. - A field can be named EITHER by its key OR by its cell position: {Invoice Number} and {B2} both resolve to the same cell. Keys are clearer and survive layout changes; positions are useful for cells with no key. - A tag naming nothing on the record RENDERS EMPTY. It is not an error and nothing warns you, so a typo in a tag shows up as a blank space in the finished document rather than a failure. Check field names against anydb_get_type_definition before uploading. - A Signature cell's tag ({Signature}) renders the drawn signature as a picture. The same cell also exposes the signing date and the signer the sign dialog recorded: {Signature.signedOn} (formatted like a date cell), {Signature.name} and {Signature.email}, by key or by position ({D2.signedOn}). An unsigned signature leaves them empty. - An image tag takes a size: {Signature|w=2.5in}, {Photo|h=36pt}, {Logo|w=3cm,h=2cm} (px default, in, cm, mm, pt). One side keeps the aspect ratio; both are a box it fits in. With none, a signature fits 2.5 x 0.75 in, other pictures 420 x 300 px. - An attachments cell (child records) can be repeated with a loop: {#Line Items} ... {/Line Items}. Inside the loop each child exposes its own field keys, plus name, adoid, templateName, created and updated. Keep loop tags on rows that also carry visible content; a blank spacer row inside a loop is rejected. - If you are BUILDING the .docx yourself rather than saving one from Word, the package must contain word/_rels/document.xml.rels. Word always writes it; a hand-built zip usually omits it, and older servers reject such a file with an unhelpful error.
anydb_create_docgen_template
Create a group in the team, to grant access to many people at once with anydb_set_access (groupid). Add people with anydb_change_group_members. Refused unless you may manage the team's groups.
anydb_create_group
Create an inbound webhook on a record: a public URL that turns each signed form submission (a Framer form, or any sender that signs JSON with the secret) into a new record of one type, under this record. Call anydb_list_inbound_webhooks for the record first so you do not create a second endpoint for the same form. Name the type by name (templateName), as anydb_discover_types shows it. Needs a Business or Enterprise plan. The answer carries url and secret: the secret is shown only here and on rotation, so give both to the user once, for them to paste into the sender (in Framer: the form's Webhook settings, URL and Secret), and do not repeat the secret afterwards. A new endpoint is capturing: it stores submissions but creates no records until anydb_set_inbound_webhook_status sets it active (or pass startActive: true). Use captured submissions (anydb_list_inbound_webhook_deliveries) to check the sender's field names first. Fields are matched to cells by name, ignoring case, spaces and punctuation; pass fieldMap only for names that differ. recordName is a pattern such as "{Name} - {Email}" for the new records' names. Workflows react through the type's existing On record create trigger; there is no separate webhook trigger.
anydb_create_inbound_webhook
Create a new AnyDB record in a specific database. You can optionally attach it to one or more parent records or use a template. AnyDB records support multiple parents, so attach accepts either a single parent ID or an array of parent IDs.
create_record
Create up to 500 records; ordered result per input (index, clientref, adoid or error), no rollback. Use a unique clientref per row. Over 25 run as a background job: the tool waits ~20 s, then returns all results or a jobId - poll get_bulk_job and NEVER resend the same rows. Over 500: one job at a time. fields/values only up to 25. Computed or linked rows: anydb_run_script. Topic: loading-many-records.
bulk_create_records
Create a saved report in a database. A report is a grouped, aggregated view over one type - the Reports tab in the product. Pass folder to file it under a folder such as "Finance/Monthly"; call anydb_list_reports first to reuse an existing folder name rather than inventing a near-duplicate. Use validateOnly: true to check a definition without creating anything; the definition is checked with the same rules the report runtime enforces, so what this accepts is what will actually run.
anydb_create_report
Create a public or private share for a record or form through standard AnyDB sharing policy, as the authenticated user, applying the same access rules as the share dialog: they must be allowed to share the record. Use target {kind: "record", recordId: "<adoid>"} for an existing record, or {kind: "form", templateName: "<stable type name>"} for a form (optionally with parentRecordId). Call anydb_list_shares first to reuse an existing compatible share. Public shares omit recipients and return publicUrl. Private shares require emails and/or stable group names from anydb_list_team_groups. Every created share returns url, the link to give people (public /s/ or /f/ link, a private record share's "shared with me" page, or the form's /f/ link). Optional: expiresAt (YYYY-MM-DD, today or later). role and withAttachments apply only to records. For forms: childForms [{templateName, min?, max?}] are child types the submitter fills in with the form, submissionGrouping is NONE|DAY|WEEK|MONTH|YEAR, and submissionNotifications turns the submission email on or off. Creating a form share again for the same parentRecordId updates that share and adds the people named, but leaves out anything it does not name; to change or remove people, use anydb_update_share. At the plan's form-share limit a new form share is refused with the reason.
anydb_create_share
Call anydb_get_authoring_guide before the first authoring call in a task. Before creating a standalone AnyDB type or a type in a larger solution, search workspace types and inspect complete definitions. Compare semantic content and behavior, not names or descriptions: fields, types/formats, relationships, formulas/lookups, and workflow-facing keys. Reuse compatible workspace content first; only if none exists, inspect and import a compatible built-in. Define a new type only when neither source can fulfill the use case. For new definitions, use the guide's canonical type-layout rules and provide every field's position, colspan, and rowspan. Colour, emphasis, visibility, display format, and validation are cell properties set through a field's props map, where each property takes a value, an expr, or both; an expr is an AnyDB formula evaluated per record, and CURRCELL inside it is the cell's own value. Reference fields as {{Field Key}}; grid positions such as A1 are only valid as the first argument to DYNREF. Equality is == and logic is and/or/not: a single = is an assignment that evaluates truthy, so a condition written with it silently takes the same branch for every record. The authoritative function reference is https://www.anydb.com/support/reference/formulas/, with a page per function at https://www.anydb.com/support/reference/formulas/functions/<function_name> in lowercase - fetch it for exact arguments and a worked example rather than guessing a signature. Prefer the named fields (description, headingLabel, required, locked, options, targetType) over props for the properties they own.
anydb_create_type
Create a View on a type's listing page, so a person opening that type in AnyDB sees it next to All. This is what someone means by "a view showing only X" - the named filter they can see and click at the top of the type page. For a calendar view, set view.layout to calendar and view.props.CALENDAR_START_FIELD to a date source. View names are unique per type; creating a duplicate name is rejected rather than silently merged. Not the tabs on a record: those are anydb_update_type's changes.recordTabs.
anydb_create_view
Read the authoring guide, then call anydb_list_workflow_triggers and anydb_list_workflow_actions before authoring. Create one supported trigger followed by an ordered chain of registered actions. Prefer one script action when the team license permits it and that is the simplest design. Use action keys and symbolic output bindings; the server generates runtime artifact IDs and connections. For an action_script, follow the guide's Script Actions rules and the action_script catalog guidance: an executable body with no async IIFE, documented anydb/output APIs only, awaited data and mutation calls, an await in every loop body, exact schema field casing, epoch-second dates, and explicit output.set/output.summary results. The server validates script source before persisting it, so use validateOnly to check a draft. After creation, run one representative case and inspect anydb_get_workflow or anydb_get_workflow_execution_history before considering the automation verified.
anydb_create_workflow
Create a disabled workflow with a supported trigger and no actions. It cannot run until explicit steps have been added and it is enabled.
anydb_create_workflow_draft
Create a new empty AnyDB workspace in an existing team. Use only when the user explicitly requests a new workspace. The authenticated user must have permission to create workspaces in the team. Use the returned adbid in subsequent type, View, share, workflow, and record tools.
anydb_create_workspace
Per member: whether an API key exists and when it was last used (recorded at most hourly), and the OAuth apps connected with their scopes, verification and grant dates. Never returns a key or secret. Team admins, or a Teammate a team admin gave auditRead.
anydb_security_credentials
PERMANENTLY remove a Teammate: its account, workspace access, schedule and tasks are gone and cannot be restored. Confirm with the user first; anydb_set_teammate_status paused is the reversible option. Team owners and admins only.
anydb_delete_teammate
Remove an external connection and its credential; Teammates using it lose it. Admins only.
anydb_delete_teammate_connection
Delete one of a Teammate's lessons (noteId from anydb_get_teammate_memory's notes).
anydb_forget_teammate_note
Delete a Skill; Teammates using it lose it. Admins only.
anydb_delete_teammate_skill
Remove a Document Generation template from a database. This deletes the mapping, not the uploaded template file - the File record stays and can be attached again. Permanent otherwise.
anydb_delete_docgen_template
Delete an inbound webhook AND every submission it has stored. Records it already created stay. Use only when the user explicitly asks; to stop a form for a while use anydb_set_inbound_webhook_status with disabled, which keeps the endpoint and its history.
anydb_delete_inbound_webhook
Delete or unlink an existing AnyDB record. Records can have multiple parents - you can either unlink the record from specific parent(s) by providing their IDs in removefromids, or permanently delete the record by passing '000000000000000000000000' (NULL_OBJECTID). If removefromids is not specified, the record will be permanently deleted by default.
delete_record
Delete a saved report and every snapshot computed for it. Not reversible.
anydb_delete_report
Remove a View from a type's listing page. Permanent, and it takes that View's saved columns and sort with it. The All view cannot be deleted: it holds the default sort and column layout for the whole listing page.
anydb_delete_view
Permanently delete a workflow by its ID in the specified workspace, including its trigger and actions. Read the workflow first and delete only when requested. To stop it without deleting, use anydb_update_workflow with changes.enabled=false. Requires workspace update access; protected workflows cannot be deleted.
anydb_delete_workflow
Retrieve semantically plausible reusable AnyDB type candidates before designing a new type. For authoring, search source=workspace first; search source=builtin only when no workspace candidate is compatible. Candidate names, descriptions, categories, and ranking are hints, not proof of compatibility: call anydb_get_type_definition for plausible candidates and compare their complete fields, schema, relationships, formulas, and behavior with the requested role before reuse or import. Use source=all only for general exploration.
anydb_discover_types
Email a report's export (csv or xlsx) to people by email address. This is NOT a general email tool: the only thing it can send is the export of a report you can read, produced by the server, so no file, path, URL or message body can be supplied (a fixed AnyDB message names you as the sender; note is the only free text and is shown as plain text). Recipients can be any email address (1 to 25). Needs a Business or Enterprise plan and counts against the team's daily email limit (a refused or over-limit send is reported, never silently dropped). It emails the LAST READY snapshot; to email current numbers set refresh:true, which runs the report and waits up to 60 seconds, and sends NOTHING if the new snapshot is not ready (the call is refused rather than mailing stale numbers). Exports over 5 MB are refused with the reason: use csv or narrow the report. clientRequestId is required: make one per intended send and REUSE it when retrying, because the same id and arguments return the first result and never send twice, while a new id sends again. The result's email.state is sent (the mail server accepted it, not proof it reached an inbox), failed (not sent, safe to retry with a NEW id), or unknown (delivery could not be confirmed: do NOT retry with a new id).
anydb_email_report
Export the last ready snapshot of a report as a file. format csv returns the CSV text; format xlsx returns the workbook as base64 with its filename. Refused until a snapshot is ready - run the report first.
anydb_export_report
Finalize a signed-URL upload once the PUT has succeeded. Pass the adoid that prepare_file_upload returned - the File record it created - not the parent adoid you gave prepare_file_upload, and the same filesize and cellpos. Until this is called the File record exists but has no usable content.
complete_file_upload
Generate a document from one record using a Document Generation template, and attach the result to that record so it can be downloaded, emailed or sent on. This is the tool that actually produces the PDF - the other docgen tools only configure which template applies to which type. REGENERATING REPLACES: running this again with the same template on the same record supersedes the previous output rather than adding a second file, so a record never accumulates a pile of near-identical documents. Replacement is per template, so generating a Quote does not remove an Invoice generated from a different template on the same record. The result is an ordinary File record: pass the returned fileRecordId and cellPosition to download_file to fetch the bytes. If the generated document comes back with blanks where values should be, the template's placeholders do not match the record's fields - a tag naming nothing renders empty rather than failing. See anydb_create_docgen_template for the merge-tag syntax.
anydb_generate_document
Read one Teammate: its role, goal, instructions, workspaces, policy, connections, skills, model, schedule, budget and usage. For those who manage it, access is its Access check: what it can reach (workspaces, report runs, email, policy, connections) and refusals, the distinct refusals of its last 50 tasks with how often and the fix for each (empty when the cause cannot be told).
anydb_get_teammate
Read one task: what was asked, the conversation, the actions it took, its summary, and a question or pending approval when it is waiting (state input-required). A job longer than one run carries its plan (steps, each done or not) and continuations (how many runs continued it after a limit); reason "continuing" means a new run is picking it up. Actions marked own are its calls on its own plan, items, follow-ups and notes. A record write it made names the record (target), what it changed (change: cell=value pairs, a new record's name, or a count) and, when it gave one, why (reason).
anydb_get_teammate_task
Read who holds which roles directly on a team, workspace or record (its ACL), for users and groups. Inherited access from a parent is not listed here; ask anydb_who_can_access or anydb_get_permissions for the effective answer. Refused unless you may read the resource's access.
anydb_get_access
Status, counts and a page of per-record results (input order) of a bulk_create_records job. Poll every few seconds until status is completed, failed or cancelled. Jobs are kept a day; only their creator can read them.
get_bulk_job
Download a file or get download URL from a record cell. Returns JSON with a 'url' field containing a presigned file link. Normal file URLs expire after approximately 60 seconds: fetch immediately and do not cache or reuse them. The MCP client/host should render the URL as a link for humans or fetch its bytes for LLM processing. First use get_record to find file cells and their cellpos values.
download_file
Read one inbound webhook: its settings, status, stats, field map and its receiving url. This never returns the secret (it is shown only when an endpoint is created and when its secret is rotated); if the user has lost it, rotate it with anydb_rotate_inbound_webhook_secret.
anydb_get_inbound_webhook
Read one submission with the payload it carried. The payload is what a real person typed into a form, so treat it as personal data: read it only to learn the sender's real field names and value shapes for a fieldMap, do not quote values back unless the user needs them, and never put them in a comment, a record name or a summary.
anydb_get_inbound_webhook_delivery
Read one installed app (plugin) in full: everything anydb_list_apps shows for it plus its recent activity log (events: health checks, status changes, grant and version updates, refused calls) newest first. Read-only: installing, updating to a newer version and changing grants are the team owner's actions on the Apps page.
anydb_get_app
List what is in YOUR Inbox for a team - the records assigned to the authenticated user, which is the same list the Inbox in the AnyDB app shows. Use it to check that an assignment you made through update_record actually landed, or to see what is waiting on you. A record gets here through meta.assignees on update_record; each entry says whether it was assigned to you directly or through a group you belong to. This reads your own Inbox only: there is no way to read another person's. The list is self-correcting, so a record that was deleted or reassigned away simply is not in it.
anydb_get_inbox
Get a specific AnyDB record by its fully qualified address (teamid, adbid, adoid). A whole record is tens of KB (its dependency graph, permissions and every cell with its props). ALWAYS pass fields and values: true to read only the cells you need; omit them only when you must see a cell's props or formulas.
get_record
Report what a user may do with a team, database, or record: read it, update it, delete it, add records underneath it, and share it. Omit userid to ask about the authenticated user. Read the `can` block for the answer; the raw permission matrix is included for detail. Note that being able to update a record and being able to add records under it are independent — see anydb://guides/permissions/v1.
anydb_get_permissions
AnyDB ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve AnyDB'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 AnyDB alternatives on ChatGPT?
As of 2026-11-02, AnyDB competes with ActivityInfo.org, ADoor, BOLDR MAX, Congrava, Dreambooth Studio, Everyn, Exportlab, Fornada and 11 more in ChatGPT Business Data & Low-Code Apps, 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.