CRM · Beta
Qomon
API integration
Ship CRM features without building the integration. Full Qomon API access via Proxy and 50+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Qomon
Common scenarios for SaaS companies building Qomon integrations for their customers.
Sync fundraising and checkout data into supporter records
Payment platforms and donation checkout tools can push donations, memberships, and ticket purchases into Qomon as bundled transactions, keeping campaigns' supporter history as the single source of truth for financial activity.
Log omnichannel outreach as contact interactions
Phonebanking, SMS, and email tools can write every call, text, or message as a tagged interaction on the Qomon contact, so field canvassers never double-contact a supporter who was just reached digitally.
Power real-time campaign dashboards
BI and analytics SaaS can pull server-side aggregated KPIs for donations, memberships, and search segments to render live metrics on campaign HQ dashboards without paginating through raw records.
Automate decentralized chapter and volunteer provisioning
Enterprise campaign management tools can programmatically create Qomon teams, assign roles, and send user invitations so new local chapters or field offices can be stood up without manual admin work.
Capture petition, form, and advocacy signups
Digital petition builders and advocacy platforms can upsert supporters into Qomon on form submission and append survey data to their contact profile, feeding downstream field and email workflows.
What You Can Build
Ship these features with Truto + Qomon
Concrete product features your team can ship faster by leveraging Truto’s Qomon integration instead of building from scratch.
Deduplicated contact upsert pipeline
Ingest supporters from any source and let Qomon match on email, external_id, nationbuilderid, or name/address to prevent duplicate contact records at scale.
Bundled transaction sync
Push grouped donations, memberships, and campaign codes as a single transaction bundle, with lookups against configured donation and membership price lists.
Interaction timeline writer
Log calls, SMS, emails, letters, and meetings as tagged contact interactions using Qomon's configurable interaction tags, so every touchpoint appears on the supporter's activity feed.
Live KPI widgets
Render real-time donation totals, membership counts, and search-segment metrics from Qomon's aggregated KPI endpoints without ingesting raw transactional data.
Team and user provisioning flows
Create teams, invite users, update roles in bulk, and manage memberships to onboard new chapters or field offices directly from your product.
Field activity reporting
Pull mobilization actions — visits, contacts reached, and completed forms — to power canvassing ROI dashboards and volunteer leaderboards.
SuperAI
Qomon AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
create_a_qomon_contact
Create a contact in qomon's database. Returns the created contact record including id, firstname, surname, mail, address, and notes. Required: data wrapping the contact fields (data.contact).
get_single_qomon_contact_by_id
Get a single contact by id in qomon. Returns the full contact payload (contact) including contact.id, firstname, surname, mail, address, birthdate, membership fields, notes, and tags. Required: id (integer contact ID).
update_a_qomon_contact_by_id
Update a contact by id in qomon. The endpoint fully replaces the existing contact (behaves like PUT), so send the complete data.contact payload. Returns the updated contact record including id, firstname, surname, mail, and address. Required: id (numeric contact ID) and data wrapping contact (data.contact).
delete_a_qomon_contact_by_id
Delete a contact by id in qomon. Returns an empty 204 response on success. Required: id (integer contact ID).
create_a_qomon_contacts_upsert
Upsert a contact in Qomon asynchronously: match an existing contact by id, nationbuilderid, external_id, email, or name/address and create a new one if no match is found. Returns an empty 202 response with no body; processing happens asynchronously. Requires a data object containing the contact fields (e.g. id, firstname, surname, mail, address).
get_single_qomon_form_by_id
Get a qomon form by its numeric id. Returns the form record under form (id, label, type, refvalues, group_id, CreatedAt, UpdatedAt) and the matching list under forms. Required: id. Passing a form type string as id is deprecated — use the list-forms-by-type endpoint instead.
list_all_qomon_forms_types
List forms of a given type in qomon (one of consent, survey, level_of_support, custom_fields, presence_status, tasks). Returns forms — form records with id, label, type, refvalues, group_id, and CreatedAt/UpdatedAt timestamps. Required: type. Max 1000 per page.
list_all_qomon_transaction_bundles
List transaction bundles for the authenticated group, ordered by creation date (newest first). Returns bundle records with id, group_id, summary, transactions, memberships, and donations. Filter by creation date with created_from and created_to (RFC 3339). Maximum limit is 1000; updating a bundle does not move it to the top of the list.
create_a_qomon_transaction_bundle
Create a transaction bundle in qomon grouping one or more transactions with optional memberships and donations; the bundle is recorded in the space associated with the API key. Returns the created bundle with id, group_id, transactions, memberships, donations, and summary. Requires a data payload with at least one transaction (data.transactions).
get_single_qomon_transaction_bundle_by_id
Get a single transaction bundle by id in qomon, including all associated transactions, memberships, and donations. Returns the bundle with id, group_id, summary, CreatedAt, transactions, memberships, and donations. Required: id.
update_a_qomon_transaction_bundle_by_id
Update a qomon transaction bundle by id. Updates are additive — items not included in the request remain unchanged; include an item's id to update it or omit id to add a new one. Returns the updated bundle with id, group_id, summary, transactions, memberships, donations, CreatedAt, and UpdatedAt. Required: id and data (transactions is the only required array).
delete_a_qomon_transaction_bundle_by_id
Delete a qomon transaction bundle by id, permanently removing all its associated transactions, memberships, and donations. Returns: status. Required: id.
get_single_qomon_transaction_bundle_history_by_id
Get the complete change history for a transaction bundle in qomon. Each entry records a creation, modification, or deletion of a transaction, membership, donation, or status change. Returns: id, created_at, kind, target_id, transaction_bundle_id, user, new, old, source, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token,…
list_all_qomon_contact_transactions
List a qomon contact's full transaction history (newest first). Returns transaction_bundles (each bundling transactions, donations, and memberships) plus total_don lifetime donated totals per currency. Required: contact_id.
list_all_qomon_transactions
List transactions for the authenticated group in Qomon, ordered newest-first by default, with optional server-side filters on transaction date, creation date, amount, status, payment method, and campaign code. Returns: id, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token, external_transaction_id, group_id, payment_method,…
get_single_qomon_transaction_by_id
Get a single transaction in qomon by id, including its contact, status, and the bundle it belongs to. Returns: id, amount, contact_id, date, CreatedAt, UpdatedAt, code_campaign, comment, comment_date, currency, delivered_at, delivery_token, external_transaction_id, group_id, payment_method, payment_method_kind, reimbursed_amount, status_id, transaction_bundle_id, unpaid_amount. Required: id.
list_all_qomon_donations
List donations in qomon with server-side filters for donation date, creation date, amount, contact, and donation price. Returns: id, amount, amount_initial, currency, date, comment, affectation, contact_id, donation_price_id, contact, CreatedAt, UpdatedAt. Sorted by donation date (newest first) by default; maximum limit 1000.
list_all_qomon_donations_kpis
Get aggregate donation KPIs for the authenticated qomon group(s). Returns: donation_count, new_donors, unique_donors, totals_by_currency. All date, amount, contact_id, and donation_price_id filters are optional; aggregates are computed in a single request with no pagination.
list_all_qomon_memberships
List qomon memberships for the authenticated group, filterable by start/end/created dates, amount range, contact, and membership price. Returns: id, amount, amount_initial, currency, start_date, end_date, rolling_year, comment, contact_id, membership_price_id, contact, CreatedAt, UpdatedAt. Ordered by start date (newest first) by default; max 1000 per page.
list_all_qomon_memberships_kpis
Retrieve aggregate membership KPIs for the authenticated qomon group(s) in a single request. Returns: membership_count, unique_members, new_members, totals_by_currency.
list_all_qomon_code_campaigns
List the campaign codes configured for your qomon group. Returns: code, created_at, updated_at. Use the returned codes as code_campaign on transactions. Max 1000 per page.
list_all_qomon_donation_prices
List donation prices configured for the qomon group. Returns: id, name, amount, currency, allow_custom_amount, hidden, kind, created_at, updated_at. Use the returned IDs as donation_price_id when creating donations. Max limit 1000.
list_all_qomon_membership_price_groups
List all membership price groups configured for your group in qomon, each with its associated membership prices. Returns: id, name, hidden, created_at, updated_at, membership_prices. Max 1000 per page.
list_all_qomon_membership_prices
List all membership prices configured for the group in qomon. Returns: id, name, amount, currency, duration, kind, rolling_period, allow_custom_amount, hidden, membership_price_group_id, created_at, updated_at. Max 1000 per page. Use the returned ids as membership_price_id when creating memberships.
list_all_qomon_transaction_settings
Get the transaction settings for the authenticated qomon group, including enabled payment method kinds, the defaults used when creating transaction bundles, and batch/membership serial configuration. Returns: batch_prefix, batch_serial, batch_serial_updated_at, currency, default_donation_price_id, default_membership_price_id, default_status_id, max_batch_size, membership_prefix,…
list_all_qomon_transaction_statuses
List transaction statuses configured for the group in qomon. Returns: id, name, kind, color, archived, created_at, updated_at. Max 1000 per page.
list_all_qomon_users
List users from the selected qomon space, optionally sorted alphabetically. Returns count and a users array; each user includes id, CreatedAt, UpdatedAt, firstname, surname, mail, phone, address, city, postal, location, avatar, birthdate, locale, status, group_id, contacts, role_data, and two-factor settings.
get_single_qomon_user_by_id
Get a single qomon user by id. Returns the user object including id, mail, firstname, surname, role_data, group_id, address, and two-factor settings. Required: id.
update_a_qomon_user_by_id
Partially update a qomon user by id. Send the fields to change (mail, address, avatar, birthdate, city, firstname, location, phone, postal, surname) under data. Returns a confirmation status on success. Required: id, data.
delete_a_qomon_user_by_id
Delete a qomon user by id, removing them from the selected space. Returns: data, status.g. "OK"), status. Required: id.
qomon_users_roles_bulk_update
Update a user's role in the selected qomon space. Returns a plain result message ("OK") on success. Required: data containing role_id and user_id; look up valid role_id values with the roles list endpoint.
list_all_qomon_teams
List all qomon teams the caller has access to. Returns a teams array where each team includes id, name, address, leaders, users, and created_at/updated_at timestamps.
create_a_qomon_team
Create a new team in qomon. Returns the created team (under team) including its id, name, address, leaders, users, and created_at/updated_at timestamps. Requires the data.team payload (name, users, address, description, hide_users, leaders, private).
update_a_qomon_team_by_id
Update an existing qomon team by id (full replace). Returns the updated team (under team) including id, name, address, leaders, users, and created_at/updated_at timestamps. Required: id and the full data.team payload.
get_single_qomon_team_by_id
Get a single qomon team by id. Returns the team record (team) including id, name, address, leaders, users, and created_at/updated_at timestamps. Required: id.
delete_a_qomon_team_by_id
Delete a qomon team by id. Soft-deletes the team with the given ID. Returns: message, team_id. Required: id.
list_all_qomon_teams_publics
List public teams in qomon. Returns an array of team records including id, name, description, address, leaders, users, private flag, and created_at/updated_at timestamps. No required parameters.
list_all_qomon_roles
List all roles available in the selected qomon space. Returns: count, roles.
list_all_qomon_users_invitations
List all user invitations in the qomon space. Returns each invitation with id, email, created_at, role_id, team_ids, and user_id. Max 1000 per page.
create_a_qomon_users_invitation
Invite users to a qomon space by email address. Returns each created invitation with id, email, created_at, role_id, team_ids, and user_id. Required: data.invitations, each with an email.
delete_a_qomon_users_invitation_by_id
Delete a user invitation in qomon by its id. Returns: data, status.message and status confirming the invitation was deleted. Required: id.
create_a_qomon_global_message
Send a global message to the specified teams in the sender-selected space in qomon; the data payload carries the message body, title, and team_ids of the recipient teams. Returns: accepted. Required: data.
list_all_qomon_contact_interactions
List a contact's interactions in qomon. Returns each interaction with id, title, type, sub_type, date_of_event, tags, and the user who logged it. Max 1000 per page. Required: contact_id.
create_a_qomon_contact_interaction
Log a new interaction (call, letter, meeting, sms, email, or donation) on a qomon contact. Returns the created interaction with id, title, type, date_of_event, and contact_id. Required: contact_id, date_of_event.
update_a_qomon_contact_interaction_by_id
Fully replace an interaction on a qomon contact — behaves like a PUT, so any field omitted from the payload (including tags) is cleared. Returns the updated interaction with id, title, type, date_of_event, and contact_id. Required: id, contact_id, date_of_event.
delete_a_qomon_contact_interaction_by_id
Delete an interaction logged on a qomon contact. Returns an empty 204 response on success. Required: id, contact_id.
list_all_qomon_interactions_tags
List interaction tags defined in your qomon space. Returns each tag with its id, name, color, created_at, and the count of interactions using it. Max 1000 per page.
create_a_qomon_interactions_tag
Create an interaction tag in qomon. Returns the created tag with its id, name, color, and created_at.
update_a_qomon_interactions_tag_by_id
Update an interaction tag in qomon by id. Returns the updated tag with its id, name, color, and created_at. Required: id.
delete_a_qomon_interactions_tag_by_id
Delete an interaction tag in qomon by id. Returns an empty 204 response on success. Required: id.
list_all_qomon_actions
List mobilization actions in Qomon with offset pagination. Returns one record per action combining the action object (Action: ID, name, status, start/end times, addresses, teams, users, forms) with visit aggregates (NbContacts, NbVisites, NbVisitesDeclared). No required parameters. Max 1000 per page.
list_all_qomon_search_contacts
Search Qomon contacts using condition-based AND/OR filters over personal info, addresses, tags, custom fields, and financial activity. Returns matching contacts: id, firstname, surname, mail, address, tags. Required: data.advanced_search.per_page (1–1000).
list_all_qomon_search_kpis
Get the count of Qomon contacts matching an advanced_search query without fetching the full contact list. Returns: total. Required: data (containing the advanced_search query body).
Why Truto
Why use Truto’s MCP server for Qomon
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ 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 Qomon in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Qomon account
Use Truto’s frontend SDK to connect your customer’s Qomon 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 Qomon
Truto’s Proxy API is a 1-to-1 mapping of the Qomon API. You call us, we call Qomon, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Qomon’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Qomon on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How do end users authenticate their Qomon account?
End users connect their Qomon account through Truto's managed auth flow. Truto handles credential storage, refresh, and secure token exchange so you never touch Qomon API keys directly.
Can I avoid creating duplicate contacts when importing supporters?
Yes. Use the contacts upsert endpoint, which matches incoming records against existing contacts by email, external_id, nationbuilderid, or name/address combinations before creating a new record.
How do I record a donation and a membership from the same checkout?
Use the create transaction bundle endpoint, which groups multiple transactions, memberships, and a campaign code into a single payload. You can fetch available donation prices, membership prices, and membership price groups beforehand to validate the amounts.
Can I display Qomon metrics in a dashboard without syncing all raw data?
Yes. Qomon exposes server-side aggregated KPI endpoints for donations, memberships, and search queries, so you can pull totals and breakdowns directly instead of paginating through transaction history.
How do I categorize interactions I log into Qomon?
Fetch the available interaction tags via the list interaction tags endpoint and reference them when creating a contact interaction. You can also create, update, or delete tags programmatically to match your product's disposition codes.
Can I provision new teams and invite users programmatically?
Yes. The integration supports creating and managing teams, listing roles, bulk-updating user roles, and sending or revoking user invitations, which is useful for spinning up new chapters or local field offices.
Qomon
Get Qomon integrated into your app
Our team understands what it takes to make a Qomon integration successful. A short, crisp 30 minute call with folks who understand the problem.