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 usUse Cases
Why integrate with Agile CRM
Common scenarios for SaaS companies building Agile CRM integrations for their customers.
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.
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.
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.
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.
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.
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.
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.
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.
Campaign enrollment controls
Enroll users into marketing campaigns on key events and unsubscribe them when conditions change, directly from your product UI.
Deal pipeline automation
Create deals, move them across milestones, update deal properties, and attach documents when revenue events happen in your system.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.