---
title: Qomon API Integration on Truto
slug: qomon
category: CRM
canonical: "https://truto.one/integrations/detail/qomon/"
---

# Qomon API Integration on Truto



**Category:** CRM  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 53 tools for Qomon that AI agents can call directly.

- **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).

## How it works

1. **Link your customer's Qomon account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Qomon.** The Proxy API is a 1-to-1 mapping of the Qomon API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **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

- **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.

## FAQs

### 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.
