---
title: "Vtiger CRM Integration"
description: "Connect AI agents to Vtiger CRM. Agents query any module with Vtiger's query language, create and update contacts, leads, organizations, and other records, and inspect module schemas to work with custom fields."
url: https://flowrunner.ai/integrations/vtiger
date_modified: 2026-08-04T10:04:16-07:00
---

# Vtiger CRM

[CRM](https://flowrunner.ai/integrations/category/crm-sales)

Connect AI agents to Vtiger CRM. Agents query any module with Vtiger's query language, create and update contacts, leads, organizations, and other records, and inspect module schemas to work with custom fields.

[Verified](https://flowrunner.ai/integrations/verified "What does verified mean?") · 11 actions · Basic auth · available

[Vtiger CRM website](https://vtiger.com/) · [Platform Documentation](https://www.vtiger.com/docs/rest-api-for-vtiger) · Capability data verified 2026-08-12

1.  A demo booking arrives from the scheduling page
2.  Query Records checks Contacts and Leads for the booker's email before anything is created
3.  Describe Module confirms the current field keys on Leads, including the team's custom qualification fields
4.  Create Lead captures the prospect with company, source, and an assigned user resolved via Get Current User
5.  The assigned owner receives the lead with the booking context attached
6.  The owner qualifies the lead and decides conversion, nurture, or disqualify
7.  Update Record writes the qualification outcome with every mandatory field preserved in the revise

## What This Integration Enables

Vtiger is the CRM of teams that customized everything: renamed modules, invented fields, built picklists that encode how they actually sell. That customization is usually where CRM automation goes to die, because integrations assume a standard schema that stopped existing the week after rollout. This connector is built for the customized reality. Agents call Describe Module to learn the current field keys, types, mandatory flags, and picklist values before every write, and Query Records speaks VtigerQL, so any module becomes queryable with SQL-like precision.

-   List Modules and Describe Module make the org's actual schema, custom fields included, discoverable at run time
-   Query Records runs VtigerQL SELECTs with WHERE, ORDER BY, and LIMIT pagination against any single module
-   Create Contact, Create Lead, and Create Organization cover intake with mandatory fields enforced and Extra Fields for everything custom
-   Create Record and Update Record reach every other module, from Potentials to HelpDesk
-   Vtiger's full-revise update semantics get respected: agents retrieve before they revise, and destructive changes wait for [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) review

### Without FlowRunner

**Inbound leads queue for manual entry**: Bookings and form fills sit in email until someone retypes them into the CRM, or does not

**Custom fields break every automation**: Each integration hardcodes field names that stopped being true two admin changes ago

**Bulk updates are a leap of faith**: A mass edit runs against live records and the team finds out afterward what it silently cleared

### With FlowRunner

**Every lead lands with an owner**: Intake creates the record, resolves duplicates first, and routes to the assigned user in minutes

**Agents read the schema before writing**: Describe Module discovers current field keys and picklists at run time, so customization stops breaking flows

**Revisions are diffed, then applied**: Field-level changes queue for review before Vtiger's full-revise update touches live records

## Use Case Scenarios

### Intake that never creates the same person twice

Bookings from [Calendly](https://flowrunner.ai/integrations/calendly) and new customers from [Shopify](https://flowrunner.ai/integrations/shopify) hit the same intake flow. The agent runs Query Records against Contacts and Leads on the email address first. Existing records get the new touchpoint appended through Update Record; genuinely new people become a Create Lead or Create Contact with source and owner set. The owner gets a Slack ping with the record link. The CRM grows by exactly one record per human being, which is rarer than it should be.

### Payments that update the record without wrecking it

When [Stripe](https://flowrunner.ai/integrations/stripe) confirms a payment, the agent finds the Contact with Query Records, calls Retrieve Record to load the full current field set, and only then issues Update Record with the payment details merged into the complete record, so Vtiger's full-revise semantics cannot clear the fields the update did not mention. The safety step is invisible when it works and priceless the day someone would have wiped twelve custom fields with a three-field update.

### A reporting sync that speaks the org's own schema

Nightly, the agent queries each reporting module with VtigerQL modified-since filters, pages through results with LIMIT offsets, and lands the rows in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) for the pipeline dashboard. When an admin adds a custom field, Describe Module picks it up on the next run and the export includes it without a code change. The Monday pipeline review posts to [Slack](https://flowrunner.ai/integrations/slack) from data that matched the CRM at midnight, not at last quarter's integration build.

## Human-in-Loop Highlight

Update Record on this connector carries a loaded gun: Vtiger performs a full revise, meaning an update that omits mandatory fields can clear them on the live record. One careless bulk update, five hundred Contacts revised with three fields each, can silently blank the qualification data a sales team spent a year collecting, and Delete Record's trip to the recycle bin is not easily undone either. So FlowRunner agents treat bulk revisions as reviewable proposals. The agent retrieves current records, computes the full post-revise state, and presents the diff: "Bulk update ready: 500 Contacts, setting lifecycle\_stage and last\_payment\_date. All mandatory and custom fields carried forward unchanged, field-level diff attached for 10 samples. Apply?" The sales ops lead scans the samples, confirms nothing is being cleared that should survive, and approves. Single-record updates in routine flows run with the retrieve-then-revise pattern baked in; anything that touches records in the hundreds gets a human signature first. The CRM is the sales team's memory. Nothing overwrites memory at scale without a witness.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

11 actions

### Session and Schema

3

-   **Get Current User** Returns the connected account's internal user id, username, and profile. The connectivity check and the source of assigned\_user\_id for created records.
-   **List Modules** Lists the CRM modules accessible to the connected user, such as Contacts, Leads, Accounts, Potentials, and HelpDesk, for use with the schema and record operations.
-   **Describe Module** Returns field-level metadata for one module: every field name, type, mandatory flag, and picklist values. The discovery step that keeps flows correct against customized schemas.

### Queries and Records

5

-   **Query Records** Runs a VtigerQL SELECT against a single module, with WHERE, ORDER BY, and LIMIT offset,count pagination, returning up to 100 records per call. Statements target one module and end with a semicolon.
-   **Retrieve Record** Fetches a single record by its module-prefixed Vtiger id, such as 12x101, returning all readable fields. The load-before-revise step in safe update patterns.
-   **Create Record** Creates a record in any module from a Fields object keyed by the module's field names, with mandatory fields present. Returns the created record and its new id.
-   **Update Record** Updates a record by id with a Fields object. Vtiger performs a full revise, so mandatory fields must be included or they are cleared, the semantics this page's human gate exists to respect.
-   **Delete Record** Permanently deletes a record by id, moving it to the recycle bin. Not easily undone; gated in every FlowRunner flow.

### Intake Shortcuts

3

-   **Create Contact** Creates a Contact with last name mandatory, plus optional first name, email, phone, title, assigned user id, and any Contacts field via Extra Fields.
-   **Create Lead** Creates a Lead with last name and company mandatory, plus optional contact details, assigned user id, and any Leads field via Extra Fields.
-   **Create Organization** Creates an Account record with the account name mandatory, plus optional website, phone, industry, assigned user id, and any Accounts field via Extra Fields.

## Frequently Asked Questions

### What can FlowRunner do with Vtiger CRM?

FlowRunner agents can run Get Current User, List Modules, and Describe Module in Vtiger CRM, plus 8 more actions.

### Does connecting Vtiger CRM to FlowRunner require OAuth?

No. Vtiger CRM connects to FlowRunner with basic authentication (a username and password), no OAuth flow required.

### Can Vtiger CRM trigger a FlowRunner workflow automatically?

Vtiger CRM doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at Vtiger CRM?** This integration exposes Vtiger CRM to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/vtiger. Site index: https://flowrunner.ai/llms.txt
