Skip to content

CRM

Agile CRM
API integration

Ship CRM features without building the integration. Full Agile CRM API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Talk to us
Agile CRM

Use Cases

Why integrate with Agile CRM

Common scenarios for SaaS companies building Agile CRM integrations for their customers.

01

Enrich CRM records with product and behavioral signals

Give your users a native Agile CRM integration that automatically pushes in-app behavior, custom properties, and dynamic lead scores from your SaaS into their CRM — so sales reps work from a single, enriched source of truth.

02

Log AI-generated calls, notes, and tasks to the contact timeline

If you build meeting intelligence, VoIP, or conversation tools, use Truto to drop transcripts, summaries, and follow-up tasks directly onto the right Agile CRM contact via email-based matching — no manual ID lookups required.

03

Trigger marketing campaigns from product events

Let your users wire product events (signups, webinar attendance, feature adoption) to Agile CRM campaigns, tags, and drip workflows so marketing automation stays in sync with real customer behavior.

04

Automate deal and document workflows for revenue tools

FinTech, CPQ, billing, and proposal apps can push deal stage updates, close-won signals, and finalized PDFs straight onto Agile CRM contacts and deals, keeping sales and finance fully aligned.

05

Unify external support channels into Agile CRM helpdesk

Feedback, NPS, and chat tools can open tickets, add ticket notes, and tag at-risk accounts in Agile CRM so account managers see churn risk alongside sales context.

What You Can Build

Ship these features with Truto + Agile CRM

Concrete product features your team can ship faster by leveraging Truto’s Agile CRM integration instead of building from scratch.

01

Bi-directional contact and company sync

Keep contacts, companies, custom properties, tags, and owners in lockstep between your product and Agile CRM, including Agile's company-as-contact model.

02

Email-first activity logging

Log notes, tasks, and deals against Agile CRM contacts using just an email address, skipping multi-step search-and-update flows.

03

Dynamic lead scoring and tagging

Increment or decrement lead scores and apply or remove tags in real time based on product events, triggering Agile CRM automations downstream.

04

Campaign enrollment controls

Enroll users into marketing campaigns on key events and unsubscribe them when conditions change, directly from your product UI.

05

Deal pipeline automation

Create deals, move them across milestones, update deal properties, and attach documents when revenue events happen in your system.

06

Embedded helpdesk ticketing

Open Agile CRM tickets from your app, add notes, and filter ticket queues so support interactions stay inside the user's CRM of record.

SuperAI

Agile CRM AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_agile_crm_contacts

List contacts in Agile CRM ordered by creation time. Returns contact objects with id, type, lead_score, star_value, tags, tagsWithTime, properties, created_time, and updated_time. Send the Accept: application/json header for JSON responses (XML is the default).

create_a_agile_crm_contact

Create a contact in Agile CRM. Returns the created contact object including id, type, lead_score, star_value, tags, properties, created_time, and owner details. Required: properties (the first_name SYSTEM property is mandatory).

agile_crm_contacts_update_star_value

Update the star rating of a single contact in Agile CRM (max value 5). Returns the updated contact values (id, star_value). Does not affect other fields. Required: id, star_value.

agile_crm_contacts_update_tags

Add tag values to a single contact in Agile CRM. Returns the updated tag set (id, tags). Does not affect other contact fields. Tags must start with an alphabet and cannot contain special characters other than underscore and space. Required: id, tags.

agile_crm_contacts_delete_tags

Delete tags from a contact or company in Agile CRM by id. Returns the remaining tags on the contact as a list. Required: id and tags.

agile_crm_contacts_search_by_email

Get a single contact in Agile CRM by email address. Returns the contact object including id, type, tags, lead_score, star_value, properties, and owner. Required: email.

agile_crm_contacts_search_by_emails_bulk

Search multiple contacts in Agile CRM by a list of email addresses. Returns matching contact records including id, type, tags, lead_score, star_value, properties, and owner. Required: email. Sent as application/x-www-form-urlencoded. Form field: email_ids (JSON array as a string, e.g. ["a@x.com","b@x.com"]).

agile_crm_contacts_search

Search contacts or companies in Agile CRM by keyword across default fields and searchable custom fields. Returns matching records including id, type, tags, lead_score, star_value, properties, and owner. Required: q, page_size, and type.

agile_crm_contacts_add_tags_by_email

Add tags to a contact in Agile CRM by locating the contact via email address. Returns the updated contact record including id, type, tags, lead_score, star_value, properties, and owner. Required: email and tags. Sent as application/x-www-form-urlencoded. Form fields: email (string), tags (JSON array as a string, e.g. ["vip"]).

agile_crm_contacts_delete_tags_by_email

Delete the specified tags from an Agile CRM contact identified by email. Returns an empty 204 response on success. Required: email, tags. Sent as application/x-www-form-urlencoded. Form fields: email (string), tags (JSON array as a string, e.g. ["vip"]).

agile_crm_contacts_add_score_by_email

Adjust an Agile CRM contact's lead score by email — pass a positive number to increase it or a negative number to subtract from the existing score. Returns the updated contact object including id, type, lead_score, tags, and properties. Required: email, score. Sent as application/x-www-form-urlencoded. Form fields: email (string), score (number).

agile_crm_contacts_add_property

Add or update a single property field on an Agile CRM contact identified by email. Returns the updated contact object including id, type, lead_score, tags, and properties. Required: email, type, name, value.

agile_crm_contacts_change_owner

Change the owner of a contact. Sent as application/x-www-form-urlencoded. Required: owner_email, contact_id. Returns the updated contact; if no user has owner_email, Agile CRM returns a 'user does not exist' message.

agile_crm_contacts_search_by_phone

Get an Agile CRM contact by phone number. Returns the matching contact object including id, type, lead_score, tags, properties, and owner. Required: phone_number.

agile_crm_contacts_dynamic_filter

Retrieve Agile CRM contacts or companies by a dynamic filter. Returns contact/company records including id, type, properties, star_value, lead_score, and tags. Requires filterJson. Sent as application/x-www-form-urlencoded. Form fields: page_size, global_sort_key (e.g. -created_time), filterJson (JSON as a string, e.g. {"rules":[{"LHS":"tags","CONDITION":"EQUALS","RHS":"lead"}],"contact_type":"PERSON"}).

agile_crm_contacts_list_tasks

List Agile CRM tasks related to a specific contact, sorted latest first. Returns task records including id, type, priority_type, due, is_complete, subject, status, and taskOwner. Requires contact_id.

agile_crm_contacts_list_notes

List Agile CRM notes related to a specific contact. Returns an array of note records. Requires contact_id.

agile_crm_contacts_delete_note

Detach a specific note from a specific contact in Agile CRM. Returns the affected contact record including id, type, properties, star_value, and lead_score. Requires contact_id and note_id.

agile_crm_contacts_list_deals

List Agile CRM deals related to a specific contact. Returns an array of deal records including id, name, milestone, expected_value, pipeline_id, close_date, and probability. Requires contact_id.

agile_crm_contacts_update_lead_score

Update the lead score of a single contact in Agile CRM. Returns the updated contact values (id, lead_score). Does not affect other contact fields. Required: id, lead_score.

get_single_agile_crm_contact_by_id

Get a single Agile CRM contact by id. Returns the contact object including id, type, lead_score, star_value, tags, tagsWithTime, properties, created_time, and updated_time. Required: id.

delete_a_agile_crm_contact_by_id

Delete a single contact in Agile CRM by id. Returns an empty 204 response on success. Required: id.

agile_crm_contacts_partial_update

Update or add custom property fields of a contact in AgileCRM without affecting other fields. Properties whose subtype matches an existing phone, website, or email override that value. Lead score, star value, and tags are not supported by this endpoint. Returns the updated contact object including id, type, created_time, and 4 more fields.…

list_all_agile_crm_companies

List companies in Agile CRM ordered by creation time. Returns a paginated array of company objects with id, type, created_time, updated_time, star_value, lead_score, tags, and properties. Companies are contacts with type COMPANY: use contacts.get, contacts.partial_update and contacts.delete with the company id to read, edit or remove one.

create_a_agile_crm_company

Create a company in Agile CRM. Returns the new company object including id, type, created_time, updated_time, star_value, lead_score, tags, and properties. Required: type (must be COMPANY), properties (must include a SYSTEM `name` property).

list_all_agile_crm_deals

List Agile CRM deals. Returns the deal records including id, name, contacts, expected_value, milestone, probability, close_date, pipeline_id, and owner.

get_single_agile_crm_deal_by_id

Get a single Agile CRM deal by id. Returns the full deal object including id, name, contacts, expected_value, milestone, probability, close_date, pipeline_id, and owner. Required: id.

create_a_agile_crm_deal

Create a new deal in Agile CRM. Returns the created deal with id, name, contacts, expected_value, milestone, probability, close_date, pipeline_id, and owner. The milestone name must match one defined in the website and is case sensitive.

agile_crm_deals_create_by_email

Create a new deal in Agile CRM and link it to a contact by email. Returns the created deal with id, name, contacts, expected_value, milestone, probability, close_date, pipeline_id, and owner. Required: email. The milestone name must match one defined in the website.

delete_a_agile_crm_deal_by_id

Delete an Agile CRM deal by id. Returns an empty 204 response on success.

agile_crm_deals_bulk_delete

Delete multiple deals in Agile CRM by submitting a JSON list of deal ids. Returns an empty 204 response on success. Required: ids. Sent as application/x-www-form-urlencoded. Form field: ids (JSON array of deal ids as a string, e.g. ["123","234"]).

agile_crm_deals_list_by_milestone

List deals from the default Agile CRM track grouped by milestones. Returns an array of deal objects including id, name, milestone, expected_value, pipeline_id, probability, close_date, owner, and created_time.

agile_crm_deals_list_by_pipeline_grouped

List deals from a specific Agile CRM track grouped by milestones. Returns an array of deal objects including id, name, milestone, expected_value, pipeline_id, probability, close_date, owner, and created_time. Required: pipeline_id.

agile_crm_deals_list_by_pipeline

List deals from a specific Agile CRM track. Returns an array of deal objects including id, name, milestone, expected_value, pipeline_id, probability, close_date, owner, and created_time. Required: pipeline_id.

agile_crm_deals_list_my_deals

List deals owned by the current user in Agile CRM. Returns an array of deal objects including id, name, milestone, expected_value, pipeline_id, probability, close_date, owner, and created_time.

agile_crm_deals_remove_contacts

Remove contacts from a deal in AgileCRM. Returns the updated deal object with its id, name, milestone, expected_value, contact list, and owner. Required: id, contact_ids.

agile_crm_deals_partial_update

Update selected fields of a deal in AgileCRM without overwriting other fields. Returns the updated deal object including its id, name, milestone, expected_value, contact list, and owner. Required: id.

create_a_agile_crm_note

Create a note and relate it to contacts in Agile CRM. Returns the created note object including its id, created_time, subject, description, and entity_type. Required: subject and description.

agile_crm_notes_add_to_contact_by_email

Add a note to a contact in Agile CRM identified by email address. Returns the created note object including its id, created_time, subject, description, and entity_type. Required: subject and description. Sent as application/x-www-form-urlencoded. Form fields: email (string), note (JSON as a string, e.g. {"subject":"Call","description":"..."}).

agile_crm_notes_create_to_deal

Create a note on a deal in Agile CRM. Returns the created note object including its id, created_time, subject, description, and entity_type. Required: subject and description.

agile_crm_notes_list_for_deal

List notes related to a specific deal in Agile CRM. Returns an array of note records; each record includes id, created_time, subject, description, and entity_type. Required: deal_id.

agile_crm_notes_bulk_delete

Bulk-delete notes in Agile CRM. The vendor's REST docs do not specify the request payload or response body for this endpoint; the endpoint description only says it deletes notes of a specific deal. Required: nothing on the caller side beyond what the endpoint accepts. Sent as application/x-www-form-urlencoded. Form field: ids (JSON array of note ids as a string, e.g. ["5641751750508544"]).

agile_crm_notes_update_deal_note

Update a note attached to a deal in AgileCRM. Returns the updated note object including id, created_time, subject, description, and entity_type. Required: id, created_time, subject, description, entity_type.

agile_crm_tasks_list_pending

List pending Agile CRM tasks whose due date is within num_days days from today. Returns an array of those task objects including id, type, priority_type, due, subject, status, and taskOwner. Required: num_days.

list_all_agile_crm_tasks

List Agile CRM tasks filtered by type, owner, pending state, criteria, and page_size. Returns an array of task objects including id, type, priority_type, due, subject, status, and taskOwner.

get_single_agile_crm_task_by_id

Get a single Agile CRM task by id. Returns the task object including its id, type, priority_type, due, subject, status, contacts, notes, and taskOwner. Required: id.

create_a_agile_crm_task

Create a new task in Agile CRM. Returns the created task object including its id, type, priority_type, due, subject, status, contacts, notes, progress, and taskOwner. Required: type, priority_type, status, due, subject.

agile_crm_tasks_create_by_contact_email

Create a new task in Agile CRM related to the contact with the given email. Returns the created task object including its id, type, priority_type, due, subject, status, contacts, notes, and taskOwner. Required: email, type, priority_type, status, due, subject.

delete_a_agile_crm_task_by_id

Delete a task in Agile CRM by id. Returns an empty 204 response on success. Required: id.

agile_crm_tasks_list_all

List all Agile CRM tasks in the domain, ordered by creation time. Returns task records including id, type, priority_type, status, subject, due, is_complete, progress, created_time, and taskOwner.

agile_crm_tasks_partial_update

Update an existing task in Agile CRM. The endpoint accepts a task JSON object; the id of the task to update must be supplied. Required: id.

list_all_agile_crm_events

List events that happened in a particular time window in Agile CRM. Returns event records with id, created_time, subject, description, and entity_type. Requires start and end (both in epoch format).

agile_crm_events_list_for_contact

List events related to a specific contact in Agile CRM, sorted by date. Returns event records with id, created_time, subject, description, and entity_type. Required: contact_id.

create_a_agile_crm_event

Create an event in Agile CRM. Returns the created event record including id, created_time, subject, description, and entity_type.

delete_a_agile_crm_event_by_id

Delete an event in Agile CRM by id. Returns an empty response on success. Required: id.

update_a_agile_crm_event_by_id

Update an event in Agile CRM. The id of the event to update must be supplied inside the request body; otherwise the call creates a new event. Returns the updated event record including id, created_time, subject, description, and entity_type.

list_all_agile_crm_tracks

List Agile CRM tracks (pipelines). Returns each track's id, name, conditions, owner_id, updated_time, and is_default_filter.

create_a_agile_crm_track

Create a deal track (pipeline). Required: name (not "Default"), milestones. Returns {id, name, milestones}.

delete_a_agile_crm_track_by_id

Delete an Agile CRM track by id. Returns an empty 204 response on success. Required: id.

update_a_agile_crm_track_by_id

Update a deal track (pipeline). Required: id, name (not "Default"), milestones. Returns {id, name, milestones}.

list_all_agile_crm_campaigns

List Agile CRM campaigns (workflows). Returns an array of campaign records; each record is identified by id. Request 'Accept: application/xml' to receive XML; the default response is also XML.

agile_crm_campaigns_enroll_email

Add a contact to a campaign (workflow) by email. Sent as application/x-www-form-urlencoded. Required: email, workflow-id (from campaigns.list). This starts the campaign for the contact, which can send real email.

agile_crm_campaigns_unsubscribe_contact

Unsubscribe a contact from an Agile CRM campaign. Required: workflow_id, remove_active_subscriber_id. Returns an empty 204 response on success.

agile_crm_documents_list_for_contact

List documents attached to a contact in Agile CRM. Returns the document record with id, type, created_time, tags, tagsWithTime, and properties. Required: contact_id.

create_a_agile_crm_document

Create a new document attached to a contact in Agile CRM. The link to the file is attached. Returns the created record with id, name, conditions, owner_id, updated_time, and is_default_filter. Required: url.

update_a_agile_crm_document_by_id

Update an existing document attached to a contact in Agile CRM. The document link is replaced. Returns the updated record with id, name, conditions, owner_id, updated_time, and is_default_filter. Required: url.

list_all_agile_crm_tickets

List Agile CRM tickets. Returns ticket records with id, subject, status, type, priority, requester_email, created_time, and last_updated_time.

create_a_agile_crm_ticket

Create a helpdesk ticket. All fields are required by Agile CRM: requester_name, requester_email, subject, priority, status, groupID, html_text, cc_emails, labels. Returns the created ticket.

delete_a_agile_crm_ticket_by_id

Delete a ticket by id. Required: id. Returns an empty response on success.

agile_crm_tickets_list_filters

List Agile CRM ticket filter definitions. Returns filter records with id, name, conditions, owner_id, updated_time, and is_default_filter.

agile_crm_tickets_add_note

Add a note to an Agile CRM ticket. Returns the created note with id, ticket_id, plain_text, note_type, created_time, and requester_email. Required: ticket_id.

agile_crm_tickets_list_notes

List notes attached to a ticket in AgileCRM. Returns an array of note records with id, created_time, subject, description, and entity_type. Required: ticket_id.

Why Truto

Why use Truto’s MCP server for Agile CRM

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with Agile CRM in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s Agile CRM account

Use Truto’s frontend SDK to connect your customer’s Agile CRM account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call Agile CRM

Truto’s Proxy API is a 1-to-1 mapping of the Agile CRM API. You call us, we call Agile CRM, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate Agile CRM’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about Agile CRM on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How does authentication work for Agile CRM?

Agile CRM uses an API key paired with the user's email and account domain. Truto handles the connection flow, credential storage, and request signing so your users just enter their Agile CRM credentials once.

Can we match records by email instead of Agile CRM's internal IDs?

Yes. Agile CRM exposes email-first endpoints that Truto surfaces directly — you can add notes, create deals, create tasks, add tags, and update lead scores on a contact using only its email address.

Does the integration support custom properties and tags?

Yes. You can read and write custom properties on contacts via partial update endpoints, and add or remove tags either by contact ID or email.

How are Agile CRM companies handled?

Agile CRM treats companies as contacts with a COMPANY type attribute. Dedicated company list and create endpoints are available, and Truto routes requests accordingly so you don't have to special-case this in your app.

Can we pull filtered segments of contacts for a sync?

Yes. The dynamic filter endpoint accepts JSON condition rules, which lets you fetch targeted cohorts (e.g., recently created VIP leads) instead of paginating through every contact.

What support workflows are available for helpdesk integrations?

You can create tickets, delete tickets, list tickets with filters, add notes to tickets, and list ticket notes — enough to build a two-way bridge between an external support surface and Agile CRM's native helpdesk.

How does Truto handle pagination and rate limits?

Truto normalizes pagination across Agile CRM's list endpoints and manages retries and backoff when Agile CRM rate-limits a request, so your integration code stays simple.

Agile CRM

Get Agile CRM integrated into your app

Our team understands what it takes to make a Agile CRM integration successful. A short, crisp 30 minute call with folks who understand the problem.