# Virtuous MCP connector

The Virtuous connector brings donor contacts, household individuals, contact notes and receipts into Claude, ChatGPT, Cursor and any MCP client, so your team can look up, create and update donor records inside their own Virtuous access.

Source: https://elaichi.ai/connectors/virtuous/

## Facts

| | |
| --- | --- |
| Application | Virtuous |
| Category | CRM |
| AI tools | 345 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 345 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Virtuous is connected

- Show me all major donors who gave last quarter.
- Draft a gift receipt summary for this contact.
- List contacts with lapsed pledges this month.

## Connect Virtuous in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Virtuous.
2. Optionally set Share with, then press Connect.
3. Paste a Virtuous API key. One person generates a token in Virtuous and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Virtuous tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Virtuous to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Virtuous to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Virtuous to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Virtuous to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Virtuous tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Virtuous through Elaichi

### Catch a donor record up after a call

Development. Come back from a donor call, describe what happened in plain language, and have the note added to the right Virtuous contact without opening the record yourself.

### Brief yourself before a donor meeting

Major gifts. Ask for a donor's contact details, household individuals, recent notes and receipts in Virtuous, and get a short briefing you can read on the way to the meeting.

### Find the right household in seconds

Donor relations. Search Virtuous contacts by name, email or reference ID when a donor writes in, and see who else belongs to that household before you reply.

### Pull a donor's receipts for a question

Finance. When a donor asks what they gave last year, list the receipts on their Virtuous contact and answer in the same conversation.

### Clean up contacts and individuals in bulk

Operations. Walk through Virtuous contacts that need a corrected address, a renamed individual or a merged duplicate, and apply the updates one confirmed change at a time.

### Add new attendees as Virtuous contacts

Events. Take a list of people who signed in at an event, create each one as a Virtuous contact with the individuals in their household, and note where you met them.

## Frequently asked questions

### How do I connect Virtuous to Claude?

First connect Virtuous in Elaichi, which asks you to paste the API key from your Virtuous account, and there is no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp as the endpoint. Sign in to Elaichi when Claude asks, and Virtuous is available in your conversations.

### Does Virtuous work with ChatGPT and Cursor as well as Claude?

Yes. Once Virtuous is connected in Elaichi, the same https://api.elaichi.ai/mcp endpoint works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Virtuous once and every client you use picks it up.

### What can an AI agent actually do with my Virtuous data?

With Virtuous connected, an agent can search for a donor, pull up a contact with the individuals in its household, read and add contact notes, list a donor's receipts, and create or update contacts on your behalf. Because Virtuous has a large set of actions, short concrete asks such as "add a note to the Garcia household about today's call" work better than long instructions.

### Does connecting Virtuous give the AI everything in my organization?

No. Every request runs as the person who signed in, so the agent sees only the Virtuous contacts, notes and receipts that person's own Virtuous permissions allow. Elaichi can narrow that access further, for example to reading only, but it can never widen it beyond what Virtuous already grants you.

### Can my team share one Virtuous connection?

Yes. One person connects Virtuous with the API key and shares the connection with a team in Elaichi, and nobody else on the team ever handles that key. Each teammate still signs in to Elaichi as themselves, so every Virtuous action in the audit log names the person who did it.

### Can I stop an agent from deleting or changing things in Virtuous?

Yes. Restrictions in Elaichi apply per action, so you can allow searching and reading Virtuous contacts while blocking deletion of contacts, individuals or notes. A blocked action is never shown to Claude, ChatGPT, Cursor or any other client, so no prompt can reach it.

### What happens to a Virtuous connection when someone leaves?

Offboarding a person in Elaichi ends their access to Virtuous through every client at once, and a shared Virtuous connection keeps working for everyone else on the team. If you want to remove Virtuous entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other connected client.

## All 345 Virtuous tools

Every tool below is callable through https://api.elaichi.ai/mcp once Virtuous is connected, subject to the toolbox it is in and the restrictions on the caller.

- **Virtuous authentication get token** (Get). Retrieve an OAuth access token from Virtuous by authenticating with username and password (or refreshing an expired token with a refresh_token). Returns: access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.issued,…
- **List all Virtuous organizations** (List). List Virtuous organizations the current user belongs to. Returns: organizationUserId, organizationName, organizationTimeZone, organizationCulture, isAdministrator, isEnabled.
- **Virtuous organizations get current organization** (Get). Get the current Virtuous organization for the authenticated user. Returns: organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.
- **Virtuous organizations switch organization** (Action). Switch the current Virtuous organization for the authenticated user. Returns an empty 200 response on success. Required: organizationUserId.
- **List all Virtuous permissions** (List). List permissions for the current user in Virtuous. Returns a collection of permission entries, each with module, action, and allowed. No required parameters.
- **Get single Virtuous contact by ID** (Get). Get a single Virtuous contact by id. Returns the full contact object including id, contactType, name, isPrivate, contactIndividuals, address, customFields, originSegmentId, createDateTimeUtc, and related resource URLs. Required: id.
- **Virtuous contacts search** (Search). Search Virtuous contacts by keyword. Returns abbreviated contact records with id, name, contactType, contactName, email, phone, address, contactViewUrl, and individualId.
- **Create a Virtuous contact** (Create). Create a new contact in Virtuous. Returns the created contact object including id, contactType, name, isPrivate, contactIndividuals, address, and customFields. Will not check for contact duplicates; Virtuous recommends using the Contact Transaction endpoint instead to avoid creating duplicates. Required: contactType.
- **Update a Virtuous contact by ID** (Update). Update a Contact in Virtuous by id. Returns the full contact object including id, name, contactType, contactIndividuals, address, and customFields. Excluding a property removes its value from the object; the entire model is still required even when updating a single property. Required: id, contactType.
- **Delete a Virtuous contact by ID** (Delete). Delete a contact in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **List all Virtuous contacts** (List). List Virtuous contacts with abbreviated details using a query filter. Returns: id, name, contactType, contactName, address, email, phone, contactViewUrl. Max 1000 per page.
- **Virtuous contacts list full** (List). List Virtuous contacts with full details including individuals, addresses, custom fields, and gift history URLs. Returns: id, name, description, website, address, tags. Max 1000 per page.
- **Virtuous contacts get by reference ID** (Get). Get a single Virtuous contact by reference source and reference id. Returns the full contact object including id, contactType, name, contactIndividuals, isCurrentUserFollowing, and more. Required: reference_source, reference_id.
- **Virtuous contacts list receipts** (List). List Virtuous contact receipts, optionally filtered by email address. Returns: id, createdDateTimeUtc, receiptType, receiptMedium, emialAddress, receiptTitle. Max 1000 per page.
- **Get single Virtuous contact individual by ID** (Get). Get a single Virtuous contact individual by id. Returns: id, prefix, prefix2, suffix, nickname, gender, passion. Required: id.
- **Update a Virtuous contact individual by ID** (Update). Update a Virtuous contact individual by id. Returns the updated individual including id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields. Required: id, firstName, lastName.
- **Delete a Virtuous contact individual by ID** (Delete). Delete a Virtuous contact individual by id. Returns an empty 200 response on success. Required: id.
- **Create a Virtuous contact individual** (Create). Create a new contact individual in Virtuous belonging to an existing contact. Returns the created individual including id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields. Required: firstName, lastName, contactId.
- **List all Virtuous contact individuals** (List). Query contact individuals in Virtuous using filter groups with conditions. Returns a list of individuals with id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields.
- **Create a Virtuous contact note** (Create). Create a note for a contact in Virtuous. Returns: customFields, id, contactId, noteDate, type, note, important, isPrivate, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, createdByAvatarUrl, reminder, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: type, note, contactId.
- **Get single Virtuous contact note by ID** (Get). Get a single contact note by id in Virtuous. Returns: id, type, note, important, reminder. Required: id.
- **Update a Virtuous contact note by ID** (Update). Update a contact note by id in Virtuous. Excluding a property removes its value, so send the entire model even for single-property updates. Returns: id, type, note, important, reminder. Required: id, type, note.
- **Delete a Virtuous contact note by ID** (Delete). Delete a contact note by id in Virtuous. Returns an empty response on success. Required: id.
- **List all Virtuous contact notes** (List). Query contact notes in Virtuous using filter groups and sort options. Returns: id, type, note, important, reminder.
- **Virtuous contact notes get by contact** (Get). List all contact notes for a specific contact in Virtuous. Returns each note with id, contactId, note, type, important, isPrivate, noteDate, createDateTimeUtc, modifiedDateTimeUtc, and a nested reminder object. Required: bycontact_id.
- **Virtuous contact notes list query options** (Search). Get all possible query options for contact notes in Virtuous. Returns: options, operatorOptions.
- **Virtuous tags search** (Search). Search Virtuous tags by name, fully or partially. Returns: id, contactsByTagUrl.
- **List all Virtuous tags** (List). List all tags in Virtuous. Returns: id, tagName, tagGroupName, contactsByTagUrl.
- **Get single Virtuous gift by ID** (Get). Get a single Virtuous gift by id. Returns: id, amount, batch, segment, grant, notes, tribute, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **Create a Virtuous gift** (Create). Create a new gift directly on a contact record in Virtuous. Returns the created gift including id, contactId, giftType, giftDate, amount, giftDesignations, and customFields. Virtuous recommends using the Gift Transaction endpoint instead to leverage contact matching and avoid data duplication. Required: giftType, giftDate, amount, contactId.
- **Update a Virtuous gift by ID** (Update). Update a gift in Virtuous by id. Returns the updated gift including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, and customFields. Required: id, giftType, giftDate, amount.
- **Delete a Virtuous gift by ID** (Delete). Delete a Virtuous gift by id. Returns an empty 200 response on success. Required: id.
- **Virtuous gifts bulk create** (Create). Bulk create up to 100 gifts at a time in Virtuous, attaching them directly to contact records. Returns: id, amount, batch, segment, grant, notes, tribute. Not recommended; use the Gift Transaction endpoint for proper contact matching instead.
- **List all Virtuous gifts** (List). Query gifts in Virtuous with abbreviated details using filter groups and sort options. Returns: id, amount, segment, batch, culture. Sort by Id, Amount, GiftDate, ReceiptDate, or Batch.
- **Virtuous gifts list full** (List). Query gifts in Virtuous with full details using filter groups and sort options. Returns: id, amount, batch, segment, grant, notes, tribute. Sort by Id, Amount, GiftDate, ReceiptDate, or Batch. This endpoint can cause performance issues; the simpler Gift Query endpoint is recommended. Max 1000 records per page.
- **Virtuous gifts get by transaction ID** (Get). Get a single Virtuous gift by its transaction source and transaction id. Returns: id, amount, batch, segment, grant, notes, tribute, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: transaction_source, transaction_id.
- **Virtuous gifts bulk update** (Update). Update many Virtuous gifts in a single PATCH request. Only the gift id and the fields being changed need to be sent — this is a partial patch, not a full replacement. Returns: id, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.
- **Create a Virtuous gift ask** (Create). Create a new gift ask in Virtuous. Returns the created gift ask including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: askAmount, status, contactId.
- **Get single Virtuous gift ask by ID** (Get). Get a single gift ask in Virtuous by id. Returns the gift ask object including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: id.
- **Update a Virtuous gift ask by ID** (Update). Update a gift ask in Virtuous by id. Excluding a property removes its value from the object, but the full model is still required. Returns the updated gift ask including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: id, askAmount, status.
- **List all Virtuous gift asks** (List). Query gift asks in Virtuous using filter groups with conditions. Returns a paginated list of gift asks with id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields.
- **Create a Virtuous planned gift** (Create). Create a new planned gift in Virtuous. Returns the created planned gift including id, contactId, plannedGiftDate, frequency, anticipatedAmount, fulfilled, project, segment, createDateTimeUtc, and customFields. Required: plannedGiftDate, plannedGiftType, frequency, contactId.
- **Get single Virtuous planned gift by ID** (Get). Get a single planned gift in Virtuous by id. Returns: id, frequency, fulfilled, project, segment. Required: id.
- **Update a Virtuous planned gift by ID** (Update). Update a planned gift in Virtuous by id. Excluding a property removes its value; the full model is required even for single-property updates. Returns: id, frequency, fulfilled, project, segment. Required: id, plannedGiftDate, plannedGiftType, frequency.
- **List all Virtuous planned gifts** (List). Query planned gifts in Virtuous using filter groups with conditions, sort field, and sort direction. Returns: id, frequency, fulfilled, project, segment. Max 1000 records per page.
- **Create a Virtuous pledge** (Create). Create a new pledge in Virtuous. Returns the created pledge object including id, contactId, amountPledged, frequency, pledgeDate, status, payments, and customFields. Required: pledgeDate, amount, frequency, contactId.
- **Update a Virtuous pledge by ID** (Update). Update an existing pledge in Virtuous by id. Excluding a property removes its value from the object; the entire model is still required even when updating a single property. Returns the updated pledge including id, contactId, amountPledged, frequency, status, payments, and customFields. Required: id, pledgeDate, amount, frequency.
- **Get single Virtuous pledge by ID** (Get). Get a single Virtuous pledge by id. Returns: id, frequency, amount, segment, project. Required: id.
- **Get single Virtuous recurring gift by ID** (Get). Get a single recurring gift in Virtuous by id. Returns the full recurring gift object including id, contactId, amount, giftDate, giftType, giftDesignations, recurringGiftPayments, customFields, and isPrivate. Required: id.
- **Update a Virtuous recurring gift by ID** (Update). Update an existing recurring gift in Virtuous by id. Returns the updated recurring gift object including id, contactId, giftType, giftDate, amount, currencyCode, and giftDesignations. Required: id, startDate, frequency.
- **Create a Virtuous recurring gift** (Create). Create a new recurring gift in Virtuous. Returns the created recurring gift object including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, recurringGiftPayments, isPrivate, isTaxDeductible, and customFields. Required: startDate, frequency, contactId.
- **Virtuous recurring gifts bulk update** (Update). Bulk update multiple Recurring Gifts in Virtuous by sending a JSON array where each item includes only the id and the fields being changed (patch semantics). Returns the updated recurring gift including id, contactId, amount, giftDate, giftDesignations, and customFields.
- **List all Virtuous recurring gifts** (List). Query recurring gifts in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use recurring_gift_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, contactId, transactionSource, transactionId, recurringGiftDate, startDate, amount, frequency, anticipatedEndDate, cancelDateTimeUtc, status, nextExpectedPaymentDate, segmentId, segment, automatedPayments, trackPayments, isPrivate, designations (projectId, project, amountDesignated, projectCode), customFields, createDateTimeUtc, modifiedDateTimeUtc.
- **Get single Virtuous premium by ID** (Get). Get a single Virtuous premium by id. Returns: customFields, id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **Update a Virtuous premium by ID** (Update). Update an existing Virtuous premium by id. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields. Required: id, name, code, price, fairMarketValue.
- **Create a Virtuous premium** (Create). Create a new Virtuous premium. Returns the created premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields. Required: name, code, price, fairMarketValue.
- **Virtuous premiums search** (Search). Search Virtuous premiums by a search term. Returns a paged list of premium records including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields.
- **Virtuous premiums get by premium code** (Get). Get a single Virtuous premium by its unique code. Returns: customFields, id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: code_id.
- **Create a Virtuous tribute** (Create). Create a new tribute in Virtuous. Returns the created tribute object including its id, tributeType, firstName, lastName, address fields, postalCode, defaultAcknowledgeeIndividualId, and create/modified audit fields. Required: tributeType, firstName, lastName.
- **Update a Virtuous tribute by ID** (Update). Update an existing tribute in Virtuous by id. Returns the updated tribute object including its id, tributeType, firstName, lastName, address fields, postalCode, defaultAcknowledgeeIndividualId, and create/modified audit fields. Required: id, tributeType, firstName, lastName.
- **Get single Virtuous campaign by ID** (Get). Get a single Campaign in Virtuous by id. Returns the campaign object including its id, name, createDateTimeUtc, and modifiedDateTimeUtc. Required: id.
- **Create a Virtuous campaign** (Create). Create a new campaign in Virtuous. Returns the created campaign object including its id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **Update a Virtuous campaign by ID** (Update). Update a campaign in Virtuous by id. Send the full campaign model: excluding a property clears its value. Returns the updated campaign including campaignId, name, startDateTimeUtc, endDateTimeUtc, givingGoal, newGiverGoal, totalGiftGoal, isArchived, createDateTimeUtc and modifiedDateTimeUtc. Required: id, name.
- **List all Virtuous campaigns** (List). Query campaigns in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use campaign_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: campaignId, name, startDateTimeUtc, endDateTimeUtc, givingGoal, newGiverGoal, totalGiftGoal, isArchived, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser.
- **List all Virtuous segments** (List). List Segments in Virtuous. Returns a paginated collection of segment records including id, name, code, isActive, segmentUrl, createDateTimeUtc, modifiedDateTimeUtc, and customFields.
- **Get single Virtuous segment by ID** (Get). Get a single Segment by id in Virtuous. Returns the full segment object including id, name, code, isActive, segmentUrl, createDateTimeUtc, modifiedDateTimeUtc, and customFields. Required: id.
- **Update a Virtuous segment by ID** (Update). Update a Segment by id in Virtuous. Excluding a property will remove its value from the object; the entire model is still required even when updating a single property. Returns the updated segment object including id, name, code, isActive, segmentUrl, createDateTimeUtc, and modifiedDateTimeUtc. Required: id, name, code.
- **Create a Virtuous segment** (Create). Create a new Segment in Virtuous. Returns: id, name, description, code. Required: name, code.
- **Virtuous segments search** (Search). Search for segments in Virtuous that match the given search text. Returns a paginated list of segment records including id, name, code, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and customFields.
- **Get single Virtuous project by ID** (Get). Get Project By Id. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl. Required: id.
- **Create a Virtuous project** (Create). Create a new project in Virtuous. Returns the created project with id, projectCode, and additional standard project attributes such as type, location, url, externalAccountingCode, and customFields. Required: name, revenueAccountingCode, inventoryStatus, type, location.
- **Update a Virtuous project by ID** (Update). Update a project in Virtuous by id. Send the full project model: excluding a property clears its value. Optional query parameter disableWebhookUpdates suppresses webhook notifications for this change. Returns the updated project including id, name, projectCode, revenueAccountingCode, externalAccountingCode, onlineDisplayName, description, type, location, inventoryStatus, durationType, startDate, endDate, isActive, isPublic, isAvailableOnline, isTaxDeductible, beginningBalance, currentBalance, financialNeedAmount, giftSpecifications, and customFields. Required: id, name, revenueAccountingCode, inventoryStatus, type, location.
- **Virtuous projects search** (Search). Search projects in Virtuous by a free-text search string, with optional sortBy and descending. Paginated with skip/take (max take 1,000). Returns a list of matching projects with id, name, projectCode, externalAccountingCode, onlineDisplayName, description, type, location, inventoryStatus, isActive, isPublic, isAvailableOnline, beginningBalance, currentBalance, financialNeedAmount, lifeToDateGiving, customFields, plus total. Required: search.
- **List all Virtuous projects** (List). Query projects in Virtuous using filter groups with conditions, sort field, and sort direction. Returns each project's id, name, code, type, location, and externalAccountingCode.
- **Virtuous projects bulk update** (Update). Bulk update multiple projects in Virtuous by sending a JSON array where each item includes only the id and the fields being changed (patch semantics): name, projectCode, onlineDisplayName, description, financialNeedAmount, beginningBalance, currentBalance, type, startDate, endDate, customFields. Use this whenever more than one project is being updated. Returns an empty object on success.
- **Get single Virtuous event by ID** (Get). Get a single Virtuous event by id. Returns the event object including id and attributes (event fields defined by the upstream EventBindingModel schema). Required: id.
- **List all Virtuous events** (List). List Virtuous events with pagination. Returns: customFields, id, eventViewUrl, name, eventType, locationName, displayAddress, geocodeAddress, startDateTime, endDateTime, timeZone, description, specialInstructions, inviteOnly, rsvpRequired, totalInvites, totalRsvps, totalAttended, totalGifts, totalGiving, communicationId, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser,…
- **Create a Virtuous event** (Create). Create a new event in Virtuous. Returns the created event object including id and attributes (event fields defined by the upstream EventBindingModel schema). Required: name, startDateTime, endDateTime, timeZone.
- **Update a Virtuous event by ID** (Update). Update a Virtuous event by id. Returns the updated event object including its id, location, startDateTime, endDateTime, and timeZone. Excluding a property removes its value; the entire model must be sent even for single-property updates. Required: id, name, startDateTime, endDateTime, timeZone.
- **Delete a Virtuous event by ID** (Delete). Delete a Virtuous event by id. Returns an empty 200 response on success. Required: id.
- **Virtuous events list query** (Search). Query events in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use event_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, name, eventType, eventViewUrl, locationName, displayAddress, startDateTime, endDateTime, timeZone, description, specialInstructions, inviteOnly, rsvpRequired, totalInvites, totalRsvps, totalAttended, totalGifts, totalGiving, communicationId, customFields, generosityEventContacts, createDateTimeUtc, modifiedDateTimeUtc.
- **Virtuous events events attendee update** (Update). Update an event attendee in Virtuous by event and attendee id. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: event_id, event_attendee_id.
- **Virtuous events events attendee delete** (Delete). Delete an event attendee from a specific event in Virtuous. Returns an empty 200 response on success. Required: event_id, event_attendee_id.
- **List all Virtuous event invitations** (List). List event invitations in Virtuous by submitting a query request with filter groups. Returns: id, invitee, event, location, rsvp, attended, invited. This endpoint is deprecated.
- **Get single Virtuous grant by ID** (Get). Get Grant By Id. Returns: customFields, id, grantUrl, giftsAppliedUrl, ownerId, title, grantingOrganizationId, grantingOrganizationUrl. Required: id.
- **Create a Virtuous grant** (Create). Create a new grant in Virtuous. Returns the created grant object including id, contactId, giftType, giftDate, amount, currencyCode, grantId, grant, grantUrl, and customFields. Required: ownerId, title, grantingOrganizationId.
- **Update a Virtuous grant by ID** (Update). Update a grant in Virtuous by id. Send the full grant model: excluding a property clears its value. Returns the updated grant including id, title, ownerId, grantingOrganizationId, receivingOrganizationId, projectId, description, dueDateUtc, totalAnticipatedAmount, status, submissionDateUtc, anticipatedAwardDateUtc, awardedGrant, awardedAmount, grantType, and customFields. Required: id, ownerId, title, grantingOrganizationId.
- **Delete a Virtuous grant by ID** (Delete). Delete a grant in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **List all Virtuous grants** (List). Query grants in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use grant_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, title, ownerId, grantingOrganizationId, receivingOrganizationId, projectId, project, description, referenceId, dueDateUtc, totalAnticipatedAmount, status, submissionDateUtc, anticipatedAwardDateUtc, awardedGrant, awardedAmount, awardedDateUtc, awardTerms, grantType, pointOfContactName, pointOfContactEmail, pointOfContactPhone, website, customFields.
- **List all Virtuous volunteers** (List). List volunteers for a specific volunteer opportunity in Virtuous. Returns: list, total. Required: volunteer_opportunity_id.
- **Create a Virtuous volunteer** (Create). Create a volunteer for a specific volunteer opportunity in Virtuous. Returns the created volunteer object including id, volunteerOpportunityId, contactId, contactIndividualId, and emailAddress. Required: volunteer_opportunity_id, contactIndividualId.
- **Get single Virtuous volunteer by ID** (Get). Get a single volunteer by id within a volunteer opportunity in Virtuous. Returns: id. Required: id, volunteer_opportunity_id.
- **Delete a Virtuous volunteer by ID** (Delete). Delete a volunteer by id from a volunteer opportunity in Virtuous. Returns an empty 204 response on success. Required: id, volunteer_opportunity_id.
- **Virtuous volunteers search** (Search). Search volunteers in Virtuous by volunteer opportunity, contact, or email address. Returns: id, volunteerUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactIndividualId, contactUrl, displayName, firstName, avatarUrl, primaryPhone, primaryEmail, totalHours, timesVolunteered, volunteerAttendanceUrl, volunteerOpportunityId, volunteerOpportunityUrl,…
- **Virtuous volunteers list query** (Search). Query volunteers in Virtuous by posting filter conditions in the request body. Returns a paged list of volunteer records including id, volunteerOpportunityId, contactId, contactIndividualId, and emailAddress.
- **List all Virtuous volunteer opportunities** (List). List volunteer opportunities in Virtuous, optionally filtered by a filter expression. Returns each opportunity with its id and attributes. Accepts a filter query parameter.
- **Create a Virtuous volunteer opportunity** (Create). Create a new volunteer opportunity in Virtuous. Returns the created opportunity with its id. Required: name.
- **Get single Virtuous volunteer opportunity by ID** (Get). Get a single volunteer opportunity in Virtuous by id. Returns the opportunity with its id. Required: id.
- **Update a Virtuous volunteer opportunity by ID** (Update). Update an existing volunteer opportunity in Virtuous by id. Returns the updated opportunity with its id. Required: id, name.
- **Delete a Virtuous volunteer opportunity by ID** (Delete). Delete a volunteer opportunity in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **Virtuous volunteer opportunities list query** (Search). Query volunteer opportunities in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use volunteer_opportunity_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, projectId, name, url, description, anytime, startDateTime, endDateTime, preferredDateTime, timeZone, isActive, isLocalOnly, currentPriority, currentPriorityName, currentNeed, preferredNumberOfHours, anywhere, locationName, displayAddress, address1, address2, city, state, postal, country, totalVolunteers, totalVolunteerHours, currentNeedFilledPercentage, hoursFilledPercentage, volunteerOrganizers, customFields.
- **Get single Virtuous communication by ID** (Get). Get a single Communication in Virtuous by id. Returns: name, description, id. Required: id.
- **Create a Virtuous communication** (Create). Create a new Communication in Virtuous. Returns the created Communication object including id, createDateTimeUtc, and modifiedDateTimeUtc. Required: name, campaignId, channelType, communicationType, communicationStep, startDateTime, ownerId.
- **Virtuous communications list query** (Search). Query Communications in Virtuous using filter conditions and sorting. Returns a list of Communication records including id, createDateTimeUtc, and modifiedDateTimeUtc.
- **Virtuous communications list channel type options** (List). List available communication channel types in Virtuous. Returns: a list of channel type strings (e.g. Email, Phone, Letter, SMS). No required parameters.
- **Virtuous communications list communication type options** (List). List available communication types in Virtuous. Returns: a list of communication type strings (e.g. Call, Email, Meeting, Letter). No required parameters.
- **List all Virtuous organization groups** (List). List all Organization Groups in Virtuous. Returns each group with id, organizationGroupUrl, organizationId, organizationName, name, location, description, and organizationGroupContactsUrl. An optional filter query parameter narrows results by name or other attributes.
- **Get single Virtuous organization group by ID** (Get). Get a single Organization Group by id in Virtuous. Returns: id, organizationName, name, description. Required: id.
- **List all Virtuous gift designations** (List). Query gift designations in Virtuous using filter groups and sorting. Returns each designation with id, amountDesignated, giftId, giftDate, projectId, project, contactId, and contactName. Sortable by Id, Amount, GiftDate, ReceiptDate, and Batch.
- **List all Virtuous configuration** (List). List contact types in Virtuous. Default types include Household, Organization, and Foundation; additional types are configurable via CRM. Returns: parentType, type.
- **Virtuous transactions create gift** (Create). Create a gift transaction in Virtuous via the v2 import endpoint. Transactions are queued for processing with intelligent contact and gift matching rather than created in real-time. Returns an empty response with no body on success. Use webhooks to be notified when the actual gift is created.
- **Virtuous transactions create contact** (Create). Create a contact transaction in Virtuous through the Import Tool, which queues the contact for intelligent matching, validation, and batch processing rather than creating it in real-time. Returns an empty 200 response on success. Use webhooks to be notified when the contact is actually created.
- **List all Virtuous tasks** (List). List tasks in Virtuous. Returns a paginated list of task records including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **Create a Virtuous task** (Create). Create a new task in Virtuous. Returns the created task object including its id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: taskType, task, dueDateTime.
- **Update a Virtuous task by ID** (Update). Update an existing task (reminder) in Virtuous by id. Returns the updated task object including id, message, targetDate, reminderType, taskStatus, description, contactId, and owner. Required: id.
- **Delete a Virtuous task by ID** (Delete). Delete a Task in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **List all Virtuous webhooks** (List). List webhook subscriptions in Virtuous. Returns each subscription's id, payloadUrl, secret, active, and event subscription flags (contactCreate, giftCreate, projectCreate, formSubmission, etc.). Note: the CRM+ spec does not include a dedicated list-all endpoint; store subscription IDs at creation time.
- **Create a Virtuous webhook** (Create). Create a new webhook subscription in Virtuous to receive event notifications at your payload URL. Returns the created subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate, contactNoteDelete,…. Required: payloadUrl.
- **Delete a Virtuous webhook by ID** (Delete). Delete a webhook subscription permanently in Virtuous. Events are dropped immediately and not queued for later delivery. Returns an empty 204 response on success. Required: id.
- **Get single Virtuous webhook by ID** (Get). Get a single webhook subscription by id in Virtuous. Returns the subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate, contactNoteDelete, eventCreate, eventUpdate, eventDelete). Required: id.
- **Update a Virtuous webhook by ID** (Update). Update a webhook subscription in Virtuous — change the payload URL, rotate the secret, or modify event selections. Returns the updated subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate,…. Required: id, payloadUrl.
- **List all Virtuous campaign query options** (List). List the available query options for Campaign queries in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous campaign get steps by campaign ID by ID** (Get). Get the list of steps associated with a specific Virtuous campaign by id. Returns an array of step name strings. Required: id.
- **Get single Virtuous communication by campaign by ID** (Get). Get Campaign Communications. Returns: list, total. Required: id.
- **List all Virtuous communication query options** (List). List available query options for Communication searches in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous contact finds** (List). Find a contact in Virtuous by email address or by reference source and ID. Returns the full contact object including id, name, contactType, contactIndividuals, address, customFields, and giving summaries. Either email or both referenceSource and referenceId must be provided; providing both prioritizes the reference source and ID.
- **Get single Virtuous contact by reference by ID** (Get). Get a contact in Virtuous by external reference ID. Returns the full abbreviated contact object including id, contactType, name, informalName, website, address, contactIndividuals, contactReferences, tags, and customFields. Required: id.
- **Create a Virtuous contact batch** (Create). Create a batch of unmatched contacts in Virtuous by providing a reference source and an array of contact records with individual, address, email, phone, event, and volunteer details. Returns an empty 200 response on success.
- **Create a Virtuous contact transaction** (Create). Post Contact Transaction.
- **Update a Virtuous contact archive by ID** (Update). Archive a Contact in Virtuous by id. Accepts a JSON request body whose schema is not publicly documented in the discovered source. Returns an empty 204 response on success. Required: id.
- **Update a Virtuous contact unarchive by ID** (Update). Unarchive a contact in Virtuous, restoring it from an archived state. Returns an empty 204 response on success. Required: id.
- **List all Virtuous contact prefixes** (List). List contact prefixes in Virtuous. Returns an array of string prefix values.
- **List all Virtuous contact types** (List). List contact types in Virtuous. Default types include Household, Organization, and Foundation, and are configurable via CRM. Returns: parentType, type, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous contact by tag by ID** (Get). Get contacts associated with a specific tag in Virtuous. Returns a paged list of contact items including id, name, contactType, contactName, address, email, phone, and contactViewUrl. Required: id.
- **Update a Virtuous contact toggle follow by ID** (Update). Toggle follow or unfollow status for a contact for the current user in Virtuous. Returns a 200 OK response with no body on success. Required: id.
- **List all Virtuous contact activities** (List). List contact activities in Virtuous. Returns: contactId, contactName, activity, contactViewUrl. This endpoint is deprecated.
- **Create a Virtuous contact activity** (Create). Create a new contact activity in Virtuous. Returns: activity. Required: contactId, type.
- **List all Virtuous contact followings** (List). List contacts the current user is following in Virtuous. Returns: id, name, contactType, contactName, address, email, phone, contactViewUrl.
- **Create a Virtuous contact proximity** (Create). Search for Virtuous contacts within a given distance of a geographic coordinate. Returns an array of matching contacts, each with id, name, address, lifeToDateGiving, contactViewUrl, latitude, and longitude. Required: latitude, longitude, distanceInMiles.
- **List all Virtuous contact custom fields** (List). List all enabled custom fields available for the Contact object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous contact custom collections** (List). List custom collections available for contacts in Virtuous. Returns: id, entityType, name, isEnabled, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, fields, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Create a Virtuous collection** (Create). Create a custom collection instance for a contact in Virtuous. Returns the created collection instance including customCollectionId, customCollectionName, collectionInstanceId, and fields. Required: contact_id, custom_collection_id.
- **Update a Virtuous collection by ID** (Update). Update an existing custom collection instance for a contact in Virtuous. Returns the updated collection instance including customCollectionId, customCollectionName, collectionInstanceId, and fields. Required: id, contact_id.
- **Delete a Virtuous collection by ID** (Delete). Delete a custom collection instance from a contact in Virtuous. Returns an empty 200 response on success. Required: id, contact_id.
- **List all Virtuous contact query options** (List). List available query options for contacts in Virtuous. Returns the parameters, operators, and predefined value options that can be used to build contact queries, including options (parameter, type, operatorOptions, valueOptions) and global operatorOptions (operator, multipleValuesAllowed, valueRequired).
- **Get single Virtuous contact receipt by ID** (Get). Get a single contact receipt in Virtuous by id. Returns the full receipt including id, contactId, giftType, amount, giftDate, receiptDate, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **List all Virtuous contact activity by user follows** (List). List contact activity for contacts the current Virtuous user follows. Returns: contactId, contactName, activity, contactViewUrl.
- **Get single Virtuous contact addrese by ID** (Get). Get a single contact address in Virtuous by id. Returns the contact address object including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, and createDateTimeUtc. Required: id.
- **Update a Virtuous contact addrese by ID** (Update). Update a contact address in Virtuous by id. Excluding a property removes its value; the full model should be provided. Returns the updated contact address including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, and createDateTimeUtc. Required: id, label.
- **Delete a Virtuous contact addrese by ID** (Delete). Delete a contact address in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **Create a Virtuous contact addrese** (Create). Create a new contact address in Virtuous. Returns the created address including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, createDateTimeUtc, and modifiedDateTimeUtc. Required: label, contactId.
- **Get single Virtuous contact address by contact by ID** (Get). Get all contact addresses for a specific contact in Virtuous by contact id. Returns an array of address objects including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, startMonth, startDay, endMonth, endDay, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: id.
- **Update a Virtuous contact address archive by ID** (Update). Archive a contact address in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **Update a Virtuous contact address unarchive by ID** (Update). Unarchive a contact address in Virtuous by id. The upstream endpoint returns 200 OK with no response body. Required: id.
- **List all Virtuous contact individual finds** (List). Find a Virtuous contact individual by email address. Returns the matched individual's id, contactId, firstName, lastName, gender, contactMethods, customFields, and customCollections.
- **Get single Virtuous contact individual by contact by ID** (Get). Get all contact individuals associated with a specific contact in Virtuous. Returns an array of contact individual records including id, contactId, firstName, lastName, gender, isPrimary, birthDate, contactMethods, customFields, and customCollections. Required: id.
- **Get single Virtuous avatar by ID** (Get). Get the avatar for a contact individual in Virtuous. Returns the full contact individual object including id, firstName, lastName, avatarUrl, contactMethods, and customFields. Required: id.
- **Create a Virtuous avatar** (Create). Upload the avatar for a contact individual in Virtuous. Returns the updated contact individual object including id, firstName, lastName, avatarUrl, contactMethods, and customFields. Required: contact_individual_id.
- **Get single Virtuous email list by ID** (Get). Get a single email list in Virtuous by id. Returns: name, total, id. Required: id.
- **Create a Virtuous email list** (Create). Create a new email list in Virtuous. Returns an empty 202 Accepted response on success. Required: emailListIds, contactIndividualIds.
- **Virtuous email lists search** (Search). Search Virtuous email lists that match the given search string. Returns: list, total.
- **Virtuous email lists list by contact individual** (List). List email lists for a contact individual in Virtuous. Returns: id, name, isSubscribed, unsubscribeReason, unsubscribeType, unsubscribeDateTimeUtc, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. Required: contact_individual_id.
- **List all Virtuous contact individual custom fields** (List). List all enabled custom fields available for the Contact Individual object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous contact individual custom collections** (List). List the custom collection definitions available for individual contacts in Virtuous. Returns each collection with id, entityType, name, isEnabled, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and its fields (dataType, formatter, name, displayName, required, rank, options).
- **List all Virtuous contact individual query options** (List). List query options for contact individuals in Virtuous, including available filter parameters, their data types, applicable operators, and predefined value options. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous contact method types** (List). List contact method types available in Virtuous. Returns an array of contact method type strings.
- **List all Virtuous contact method related types** (List). List contact method types related to a given base type in Virtuous. Returns an array of related contact method type strings filtered by the supplied base type name.
- **Get single Virtuous contact method by ID** (Get). Get a single contact method in Virtuous by id. Returns: id, type, value. Required: id.
- **Update a Virtuous contact method by ID** (Update). Update a contact method in Virtuous by id. Excluding a property from the body removes its value. Returns: id, type, value. Required: id, type, value.
- **Delete a Virtuous contact method by ID** (Delete). Delete a contact method in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **Create a Virtuous contact method** (Create). Create a new contact method in Virtuous. Returns the created contact method including id, type, value, isOptedIn, isPrimary, canBePrimary, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. Required: type, value, contactIndividualId.
- **Update a Virtuous contact method archive by ID** (Update). Archive a contact method in Virtuous by its contact method identifier. Returns an empty 200 response on success with no response body. Required: id.
- **Update a Virtuous contact method unarchive by ID** (Update). Unarchive a contact method in Virtuous, restoring it from archived state. Returns an empty 200 response with no body on success. Required: id.
- **Get single Virtuous important by contact by ID** (Get). Get important contact notes for a specific contact in Virtuous. Returns a paged list of notes including id, contactId, noteDate, type, note, important, isPrivate, and a total count. Required: id.
- **List all Virtuous contact note types** (List). List contact note types in Virtuous. Returns a map of contact note type keys to their string values. No required parameters.
- **List all Virtuous contact note custom fields** (List). List all enabled custom fields available for the Contact Note object in Virtuous. Returns each custom field definition including dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **Create a Virtuous contact note email** (Create). Create a contact note in Virtuous from an email message. Returns an array of contact note objects including id, contactId, note, type, important, isPrivate, noteDate, createdByUser, and a nested reminder object.
- **Create a Virtuous contact reference** (Create). Create a contact reference in Virtuous that links a contact to an external reference source. Returns an empty 200 response on success.
- **Virtuous contact references bulk delete** (Delete). Delete a contact reference in Virtuous by reference source and reference identifier. Returns an opaque object body on success. Required: reference_source.
- **Get single Virtuous contact tag by contact by ID** (Get). Get all tags assigned to a specific contact in Virtuous. Returns: list, total. Required: id.
- **Create a Virtuous contact tag** (Create). Create a contact tag in Virtuous by assigning a tag to a contact. Returns: contactTagId, tagId, name, total, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactsByTagUrl.
- **Delete a Virtuous contact tag by ID** (Delete). Delete a contact tag in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **Get single Virtuous custom field by ID** (Get). Get a single custom field in Virtuous by id (customFieldId). Returns the custom field including dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: id.
- **Virtuous custom fields search** (Search). Search custom fields in Virtuous by submitting a search query in the request body. Returns a paged list (list) with a total count, where each custom field includes dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **List all Virtuous custom field names** (List). Get a custom field definition in Virtuous by its name. Returns: name. Required: custom_field_name.
- **Get single Virtuous custom collection by ID** (Get). Get a single custom collection in Virtuous by id. Returns: id, name. Required: id.
- **Virtuous custom collections search** (Search). Search custom collections in Virtuous by submitting search criteria. Returns: list, total. Each item in the list contains id, entityType, name, and fields with their data types and options.
- **List all Virtuous custom collection names** (List). Get a Virtuous custom collection by its name. Returns the custom collection object including its id, entityType, name, field definitions, and audit timestamps (createDateTimeUtc, modifiedDateTimeUtc). Required: custom_collection_name.
- **Virtuous emails search** (Search). Search emails in Virtuous using a search term provided in the request body. Returns a paged list of matching email records. Returns: list, total. Each record includes id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **Create a Virtuous email send** (Create). Send an email in Virtuous via the Email Send endpoint. Accepts a JSON request body following the SendEmailRequestBindingModel schema; the model's field definitions are referenced but not inlined in the crawled API docs. Returns an empty 200 response on success. Required: emailId, contactIds.
- **Create a Virtuous email sent** (Create). Search for sent email batches in Virtuous by keyword. Returns: list, total.
- **List all Virtuous activity query options** (List). List Email Activity query options in Virtuous, describing the parameters, operators, and value choices available for filtering email activity queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **Create a Virtuous email activity** (Create). Query email activities in Virtuous using a structured QueryRequest body with filter groups, sort, and conditions. Returns: list, total. The emailVersionId query parameter scopes results to a specific email version.
- **Create a Virtuous subscription** (Create). Add or update contact individual subscriptions on an email list in Virtuous. Returns a 202 Accepted response with no body on success. Required: email_list_id.
- **List all Virtuous search events** (List). Search events in Virtuous using an optional filter string. Returns an array of event objects including id, name, location, startDateTime, endDateTime, and timeZone.
- **List all Virtuous event types** (List). List event types in Virtuous. Returns each event type record with parentType and type. Results may be sorted by a specified field in ascending or descending order.
- **List all Virtuous event custom fields** (List). List all enabled custom fields available for the Event object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous event query options** (List). Get the available query options for filtering Events in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous attendees** (List). List event attendees for a Virtuous event. Returns: list, total. Required: event_id.
- **Create a Virtuous attendee** (Create). Create a new event attendee in Virtuous with RSVP, invitation, and seating details. Returns the created attendee including id, invitee, contactId, rsvp, attended, emailAddress, event, and customFields. Required: event_id, contactIndividualId.
- **Get single Virtuous attendee by ID** (Get). Get a single event attendee by id in Virtuous. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, event_id.
- **List all Virtuous event attendee custom fields** (List). List all enabled custom fields available for the Event Attendee object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Create a Virtuous event attendee query** (Create). Search event attendees in Virtuous using filter groups, conditions, geo-location bounds, and sorting. Returns a paged list of attendees, each with id, invitee, contactId, eventId, rsvp, attended, and customFields.
- **List all Virtuous event attendee query options** (List). Get the available query filter options for Event Attendee queries in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **List all Virtuous invitations** (List). List invitations for a specific Virtuous event. Returns: list, total. This endpoint is marked as deprecated upstream. Required: event_id.
- **Create a Virtuous invitation** (Create). Create a new event invitation in Virtuous for a specific event. Returns the created invitation including id, contactId, invitee, rsvp, attended, emailAddress, and createDateTimeUtc. This endpoint is deprecated. Required: event_id, contactIndividualId.
- **Update a Virtuous invitation by ID** (Update). Update an event invitation in Virtuous. Returns the updated invitation including id, invitee, contactId, eventId, rsvp, attended, and customFields. This endpoint is deprecated. Required: id, event_id.
- **Delete a Virtuous invitation by ID** (Delete). Delete an event invitation in Virtuous by id. Returns an empty 204 response on success. Required: id, event_id.
- **Get single Virtuous invitation by ID** (Get). Get a single event invitation in Virtuous by id. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. This endpoint is deprecated. Required: id, event_id.
- **List all Virtuous event invitation custom fields** (List). List all enabled custom fields available for the Event Invitation object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated.
- **List all Virtuous event invitation query options** (List). List available query filter options for event invitations in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated.
- **List all Virtuous gift non cash gift types** (List). List non-cash gift types available in Virtuous. Returns: list, total. Supports optional sortBy and descending parameters for ordering results.
- **Create a Virtuous gift reversing transaction** (Create). Create a reversing transaction in Virtuous that negates the amount and splits applied to an existing gift. Returns the full gift object including id, contactId, giftType, amount, giftDesignations, giftPremiums, and customFields.
- **Get single Virtuous gift by reference by ID** (Get). Get a paginated list of gifts with designations associated with a contact reference id in Virtuous. Returns: list, total. Required: id.
- **Create a Virtuous gift transaction** (Create). Create a new gift transaction in Virtuous. Returns the created gift transaction object including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, and customFields. This endpoint is deprecated.
- **List all Virtuous gift custom fields** (List). List all enabled custom fields available for the Gift object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous gift by contact by ID** (Get). Get gifts for a specific contact in Virtuous. Returns a paged list of gift items including id, contactName, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **Get single Virtuous passthrough by contact by ID** (Get). Get passthrough gifts for a specific contact in Virtuous. Returns a paged list of gift records including id, contactId, giftDate, amount, giftType, giftDesignations, giftPremiums, and customFields. Required: id.
- **List all Virtuous gift query options** (List). List gift query options in Virtuous for building filtered gift queries. Returns the available query options (each with parameter, type, operatorOptions, and valueOptions) and global operatorOptions. No required parameters.
- **List all Virtuous gift ask status** (List). List all available Gift Ask statuses in Virtuous. Returns an array of gift ask status objects representing the status options that can be assigned to a Gift Ask record.
- **Get single Virtuous gift ask by contact by ID** (Get). Get gift asks for a specific contact in Virtuous by contact id. Returns a paged list of gift ask records including id, contactId, askAmount, askDate, askType, frequency, declined, status, and customFields. Required: id.
- **List all Virtuous gift ask custom fields** (List). List all enabled custom fields available for the Gift Ask object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous gift ask query options** (List). Get Gift Ask query options in Virtuous, describing the available filter parameters, their types, supported operators, and predefined value options for building Gift Ask queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous gift designation query options** (List). List the available query options for gift designations in Virtuous, describing the parameters, operators, and value choices that can be used to filter gift designation queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **Get single Virtuous grant by reference by ID** (Get). Get a single Virtuous grant by its reference id. Returns the full grant object including id, contactId, contactName, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **Get single Virtuous grant by contact by ID** (Get). Get a paged list of grants associated with a contact in Virtuous. Returns each grant with id, contactId, giftType, giftDate, amount, grantId, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **List all Virtuous grant custom fields** (List). List all enabled custom fields available for the Grant object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous grant query options** (List). Get grant query options in Virtuous, describing the available filter parameters, operators, and value options for querying grants. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous organization group by contact by ID** (Get). Get all organization groups associated with a specific contact in Virtuous. Returns an array of organization group binding objects including parentType and type. Required: id.
- **Get single Virtuous planned gift by contact by ID** (Get). Get all planned gifts for a specific contact in Virtuous. Returns a paged response with list and total, where each record includes id, plannedGiftDate, frequency, anticipatedAmount, currentValue, projectId, segment, and customFields. Required: id.
- **List all Virtuous planned gift custom fields** (List). List all enabled custom fields available for the Planned Gift object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous planned gift query options** (List). List the available query options for planned gift searches in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous pledge by contact by ID** (Get). Get pledges for a contact in Virtuous by contact id. Returns a paged list of pledge records including id, contactId, giftType, amount, pledgePayments, giftDesignations, and customFields. This endpoint is deprecated. Required: id.
- **Update a Virtuous pledge cancel by ID** (Update). Cancel a pledge in Virtuous by id. Returns the cancelled pledge object including id, contactId, amountPledged, frequency, status, payments, and customFields. This endpoint is deprecated. Required: id.
- **Create a Virtuous pledge query** (Create). Search pledges in Virtuous by submitting filter groups with conditions. Returns a paginated result with list and total, where each pledge item includes id, contactId, contactName, giftType, amount, giftDate, and customFields. This endpoint is deprecated; use the v2 Pledge Query endpoint instead.
- **List all Virtuous pledge query options** (List). List pledge query options in Virtuous. Returns available filter parameters, their types, applicable operators, and predefined value options for building pledge queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated; prefer the v2 equivalent.
- **Get single Virtuous pledge payment by ID** (Get). Get a pledge payment in Virtuous by pledge ID. Returns: id, gift. This endpoint is deprecated. Required: id.
- **Update a Virtuous pledge write off by ID** (Update). Write off a Virtuous pledge by supplying a reason. Returns the updated pledge including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, segment, project, status, payments, and customFields. The reason field has a maximum length of 100 characters. Required: id, reason.
- **List all Virtuous pledge custom fields** (List). List all enabled custom fields available for the Pledge object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Update a Virtuous premium increment by ID** (Update). Increment the inventory count of a Virtuous premium by the specified incrementor value. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and customFields. The incrementor parameter defaults to 1. Required: id.
- **Update a Virtuous premium decrement by ID** (Update). Decrement the inventory count of a Virtuous premium by a specified amount. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, modifiedDateTimeUtc, and customFields. The decrementor query parameter defaults to -1. Required: id.
- **List all Virtuous premium custom fields** (List). List all enabled custom fields available for the Premium object in Virtuous. Returns each field's dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **Create a Virtuous premium query** (Create). Query premiums in Virtuous using filter groups with conditions, sort options, and optional geographic location criteria. Returns a paged list of premium records including id, name, code, price, fairMarketValue, isActive, and customFields.
- **List all Virtuous premium query options** (List). List query options for premiums in Virtuous, describing available filter parameters, their data types, applicable operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous project code by ID** (Get). Get a project in Virtuous by its project code. Returns: id, name, description, type, location. Required: id.
- **Virtuous balances bulk update** (Update). Update the balance for a Virtuous project. Returns the updated project object including id, projectCode, and projectType. Required: project_id.
- **Virtuous status bulk update** (Update). Update the inventory status of a Virtuous project by project_id. Accepts an optional inventoryStatus value and a durationMinutes window. Returns an empty 200 response on success. Required: project_id.
- **List all Virtuous project types** (List). List project types in Virtuous. Returns an array of project type name strings.
- **List all Virtuous project query options** (List). List the available query filter options for Virtuous projects, including filterable parameters, their data types, applicable operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous project custom fields** (List). List all enabled custom fields available for the Project object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous project alls** (List). List all projects in Virtuous with optional filtering by project type, inventory status, or sub-projects only. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl, parentId, parentName, isSubProject, inventoryStatus, projectType, type, location, isRestrictedToGiftSpecifications, isLimitedToFinancialNeed, isPublic, isActive,…
- **List all Virtuous project tops** (List). Search Top Projects. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl.
- **List all Virtuous sub projects** (List). List sub-projects for a specific Virtuous project. Returns: list, total. This endpoint is deprecated. Required: project_id.
- **List all Virtuous project expenses** (List). List project expenses in Virtuous, optionally filtered by project ID, project code, or a free-form filter string. Returns: id, projectId, projectName, projectCode, parentProjectId, parentProjectName, parentProjectCode, expenseAmount, expenseDate, accountingCode, expenseDescription, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. All parameters are optional; the default…
- **Create a Virtuous project expense** (Create). Create a new project expense in Virtuous. Returns the created project expense including id, contactId, giftDate, amount, currencyCode, giftDesignations, and customFields. A JSON request body conforming to the ProjectExpensePostBindingModel schema is required.
- **Get single Virtuous project expense by ID** (Get). Get a single project expense in Virtuous by id. Returns the full project expense object including id, contactId, amount, giftType, giftDate, currencyCode, giftDesignations, customFields, and isPrivate. Required: id.
- **Update a Virtuous project expense by ID** (Update). Update a project expense in Virtuous by id. Returns the updated project expense object including id, contactId, amount, giftType, giftDate, currencyCode, giftDesignations, customFields, and isPrivate. Required: id.
- **Create a Virtuous project expense batch** (Create). Post Project Expense Batch.
- **Get single Virtuous project note by project by ID** (Get). Get Project Notes. Returns: list, total. Required: id.
- **Get single Virtuous project note by ID** (Get). Get a single project note by id in Virtuous. Returns the note object including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: id.
- **Update a Virtuous project note by ID** (Update). Update a project note by id in Virtuous. Excluding a property removes its value from the object. Returns the updated note including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: id, type, note.
- **Delete a Virtuous project note by ID** (Delete). Delete a project note in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **Create a Virtuous project note** (Create). Create a project note in Virtuous. Returns the created note including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: type, note, projectId.
- **List all Virtuous project note types** (List). List project note types available in Virtuous. Returns an array of project note type name strings. No required parameters.
- **Get single Virtuous project role by ID** (Get). Get a single project role in Virtuous by id. Returns: id. Required: id.
- **Update a Virtuous project role by ID** (Update). Update an existing project role in Virtuous by id. Returns: id. Required: id.
- **Delete a Virtuous project role by ID** (Delete). Delete a project role in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **Create a Virtuous project role** (Create). Create a new project role in Virtuous. Returns: id.
- **List all Virtuous project role types** (List). List project role types in Virtuous. Returns a paged collection with list and total, where each item includes parentType and type. Results can optionally be sorted by a specified field in ascending or descending order.
- **Get single Virtuous project role by contact by ID** (Get). Get Project Roles By Contact. Returns: list, total. Required: id.
- **Get single Virtuous project role by project by ID** (Get). List project roles for a specific project in Virtuous. Returns a paged collection with list and total. Required: id.
- **Get single Virtuous recurring gift by contact by ID** (Get). Get recurring gifts for a specific contact in Virtuous by contact id. Returns: list, total. Required: id.
- **Update a Virtuous recurring gift cancel by ID** (Update). Cancel a recurring gift in Virtuous by id. Returns the updated recurring gift object including id, contactId, giftType, amount, giftDate, giftDesignations, recurringGiftPayments, and customFields. Required: id.
- **List all Virtuous recurring gift custom fields** (List). List all enabled custom fields available for RecurringGift objects in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous recurring gift query options** (List). Get the available query options for filtering recurring gifts in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Get single Virtuous recurring gift payment by ID** (Get). Get a single recurring gift payment in Virtuous by id. Returns: id, gift. Required: id.
- **Get single Virtuous relationship by contact by ID** (Get). Get relationships for a specific contact in Virtuous by contact id. Returns a paged list of relationship records including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: id.
- **List all Virtuous relationship types** (List). List relationship types in Virtuous. Returns: group, relationship, inverseRelationship, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **Create a Virtuous relationship** (Create). Create a new relationship between two contacts in Virtuous. Returns the created relationship object including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: contactId, relationshipType.
- **Update a Virtuous relationship by ID** (Update). Update an existing relationship in Virtuous by id. Excluding a property from the body removes its value from the object. Returns the updated relationship including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: id, relationshipType.
- **Delete a Virtuous relationship by ID** (Delete). Delete a relationship in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **List all Virtuous reminder actives** (List). List active reminders in Virtuous with optional search, sort, and ordering filters. Returns each reminder with id, message, targetDate, contactId, contactDisplayName, reminderType, taskStatus, isPastDue, isUnresolved, canComplete, owner, and ownerAvatarUrl. No required parameters.
- **List all Virtuous reminder saveds** (List). List saved reminder sources in Virtuous. Returns a paged collection of reminder source records (recurring and milestone reminder templates), each with an id and reminder source binding model attributes. Defaults to 10 records per page.
- **Get single Virtuous active by ID** (Get). Get active reminders for a specific contact in Virtuous. Returns a paged list of reminders (list) with a total count (total). Required: id.
- **Get single Virtuous inactive by ID** (Get). Get inactive reminders for a contact in Virtuous by contact id. Returns a paged list (list) with a total count, where each reminder includes id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: id.
- **Get single Virtuous reminder by contact by ID** (Get). Get all reminders for a specific contact in Virtuous by contact id. Returns a paged list of reminder records including id, message, targetDate, reminderType, taskStatus, owner, and contact display details, plus a total count. Required: id.
- **Update a Virtuous reminder completed by ID** (Update). Mark a Virtuous reminder as completed by id. Returns the updated reminder object including id, message, targetDate, taskStatus, contactId, reminderType, and owner. Required: id.
- **Update a Virtuous reminder dismissed by ID** (Update). Dismiss a Virtuous reminder by id, marking it as dismissed. Returns the reminder object including id, message, targetDate, taskStatus, reminderType, contactDisplayName, and owner. Required: id.
- **Create a Virtuous reminder** (Create). Create a new reminder in Virtuous by submitting a request body conforming to the ReminderPostBindingModel. Returns the created reminder object including id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: message.
- **Create a Virtuous saved recurring** (Create). Create a saved recurring reminder source in Virtuous. Returns the created reminder source object including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: message.
- **Update a Virtuous saved recurring by ID** (Update). Update a saved recurring reminder source in Virtuous by id. Returns the updated reminder source object including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Excluding a property in the request body removes its value; the full model is required even for single-property updates. Required: id, message.
- **Create a Virtuous saved milestone** (Create). Create a saved milestone reminder in Virtuous. A milestone reminder automatically generates reminders when contacts reach the configured milestoneType and threshold (e.g. a giving total or gift count); isFollowedContactsOnly limits it to contacts the owner follows and ownerEmail assigns the owner. Returns the saved reminder including id, name, reminderSourceType, milestoneType, threshold, description, reminderFrequency, and any generated reminders (id, message, targetDate, contactId, contactDisplayName, taskStatus, isPastDue). Required: name.
- **Update a Virtuous saved milestone by ID** (Update). Update a saved milestone reminder in Virtuous by id. Send the full model (taskType, name, description, threshold, isFollowedContactsOnly): excluding a property clears its value. Returns the updated saved reminder including id, name, reminderSourceType, milestoneType, threshold, description, reminderFrequency, and its reminders. Required: id, name.
- **List all Virtuous type reminders** (List). List available reminder types in Virtuous. Returns a dictionary of reminder type enum values as key-value string pairs.
- **List all Virtuous type resolutions** (List). List reminder resolution types in Virtuous. Returns a dictionary mapping resolution type identifiers to their string display values. This endpoint is deprecated.
- **List all Virtuous type status** (List). List reminder status types in Virtuous. Returns a dynamic key-value map of status identifiers to their display labels. This endpoint is deprecated.
- **List all Virtuous type reminder sources** (List). List reminder source types in Virtuous. Returns a map of source type identifiers to source type names, where all values are strings.
- **List all Virtuous type milestones** (List). List milestone reminder types in Virtuous. Returns a map (object) whose keys are milestone type identifiers and whose values are their corresponding string display names.
- **List all Virtuous type reminder frequencies** (List). List reminder frequency types available in Virtuous. Returns a dynamic map of frequency type identifiers (keys) to their display-name strings (values). No required parameters.
- **Create a Virtuous search** (Create). Search across Virtuous CRM records using a quick search query. Returns: contacts, individuals, entities. Required: query, filterTypes.
- **Get single Virtuous segment code by ID** (Get). Get Segment By Code. Returns: id, name, description, code, projectId, projectName, communicationId, communicationName. Required: id.
- **Get single Virtuous segment by contact by ID** (Get). Get Segments By Contact. Returns: list, total. Required: id.
- **Create a Virtuous segment query** (Create). Query segments in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use segment_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns a list of segments with id, name, description, code, projectId, projectName, communicationId, communicationName, campaignId, campaignName, segmentOrganizerId, packageCode, packageDescription, totalContacts, costPerContact, totalGiftAmount, totalGifts, plus total.
- **List all Virtuous segment query options** (List). List available query options for Virtuous segments, including filterable parameters, supported operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous task types** (List). List task types available in Virtuous. Returns an array of task type name strings.
- **Create a Virtuous task query** (Create). Search tasks in Virtuous by submitting query conditions in the request body. Returns: list, total. Available filter parameters and operators can be discovered via the Task Query Options endpoint. Max take is 1000.
- **List all Virtuous task query options** (List). List available query filter options for Tasks in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **List all Virtuous tests** (List). Test connectivity to the Virtuous API by issuing a GET request to the Test endpoint. Returns an empty 200 response on success, confirming that authentication and API access are working correctly.
- **List all Virtuous test users** (List). List test users in Virtuous. Returns a 200 OK response; this is a test endpoint for verifying API connectivity and no response body fields are documented in the API specification.
- **List all Virtuous test application keys** (List). Test the validity of an application API key in Virtuous. Returns a 200 OK response with no documented response body, confirming the key is accepted.
- **List all Virtuous test hmac keys** (List). Test HMAC key authentication in Virtuous by calling the TestHMACKey endpoint. Verifies that HMAC authentication credentials are valid and the API is reachable. Returns a 200 OK response with no body on success.
- **List all Virtuous search tributes** (List). Search for tributes in Virtuous by first name, last name, city, state, or tribute type. Returns: id, tributeType, firstName, lastName, address1, address2, city, state, postalCode, defaultAcknowledgeeIndividualId, defaultAcknowledgeeIndividualUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. All filters are optional.
- **List all Virtuous volunteer query options** (List). List available query filter options for volunteers in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous attendances** (List). List volunteer attendance records for a specific volunteer within a volunteer opportunity in Virtuous. Returns: id, hours. Required: volunteer_id, volunteer_opportunity_id.
- **Create a Virtuous attendance** (Create). Create a new volunteer attendance record in Virtuous for a specific volunteer within a volunteer opportunity. Returns: id, hours. Required: volunteer_opportunity_id, volunteer_id, timeZone.
- **Update a Virtuous attendance by ID** (Update). Update an existing volunteer attendance record in Virtuous by id. Returns: id, hours. Required: id, volunteer_opportunity_id, timeZone.
- **Delete a Virtuous attendance by ID** (Delete). Delete a volunteer attendance record in Virtuous by id. Returns an empty 200 response on success. Required: id, volunteer_opportunity_id.
- **Get single Virtuous attendance by ID** (Get). Get a single volunteer attendance record in Virtuous by id. Returns: id, hours, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, volunteer_opportunity_id.
- **Update a Virtuous volunteer opportunity archive by ID** (Update). Archive a volunteer opportunity in Virtuous by id. An optional archiveReason may be supplied in the request body. Returns an empty 204 response on success. Required: id.
- **Update a Virtuous volunteer opportunity unarchive by ID** (Update). Unarchive a volunteer opportunity in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **List all Virtuous volunteer opportunity custom fields** (List). List all enabled custom fields available for the Volunteer Opportunity object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous volunteer opportunity query options** (List). List volunteer opportunity query options in Virtuous, describing the available filter parameters, their types, valid operators, and predefined value options. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **List all Virtuous organizers** (List). List organizers for a volunteer opportunity in Virtuous. Returns: id, parentType, type. Required: volunteer_opportunity_id.
- **Create a Virtuous organizer** (Create). Create a new organizer for a volunteer opportunity in Virtuous. Returns the created organizer object including id, parentType, and type. Required: volunteer_opportunity_id, contactIndividualId.
- **Delete a Virtuous organizer by ID** (Delete). Delete a volunteer organizer from a volunteer opportunity in Virtuous. Returns an empty 200 response on success. Required: id, volunteer_opportunity_id.
- **Get single Virtuous organizer by ID** (Get). Get a single volunteer organizer from a volunteer opportunity in Virtuous. Returns the volunteer organizer binding model including its id. Required: id, volunteer_opportunity_id.
- **List all Virtuous event contacts** (List). Get Event Contacts. Returns: id, eventContactUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactUrl. Required: event_id.
- **Create a Virtuous event contact** (Create). Create a new event contact in Virtuous by associating a contact with an event. Returns: id, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: event_id, contactIndividualId.
- **Get single Virtuous event contact by ID** (Get). Get Event Contact By Id. Returns: id, eventContactUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactUrl. Required: id, event_id.
- **Delete a Virtuous event contact by ID** (Delete). Delete a Virtuous event contact by id. Returns an empty 200 response on success. Required: id, event_id.
- **List all Virtuous organization group contacts** (List). List contacts belonging to a specific organization group in Virtuous. Returns: organizationGroupId, organizationGroupUrl, organizationId, organizationName, organizationGroupName, organizationGroupLocation, organizationGroupDescription, contactId, contactName, contactUrl. Required: organization_group_id.
- **Update a Virtuous organization group contact by ID** (Update). Assign a contact to an organization group in Virtuous. Returns the binding with organizationGroupId, organizationGroupName, contactId, contactName, organizationGroupUrl, and contactUrl. Required: id, organization_group_id.
- **List all Virtuous gift ask gifts** (List). List gifts applied to a specific Gift Ask in Virtuous. Returns an array of full gift objects including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: gift_ask_id.
- **List all Virtuous grant gifts** (List). List gifts applied to a specific grant in Virtuous. Returns each gift's id, giftType, amount, giftDate, contactName, grantId, giftDesignations, isPrivate, isTaxDeductible, and customFields. Required: grant_id.
- **List all Virtuous planned gift gifts** (List). List gifts applied to a planned gift in Virtuous. Returns an array of gift objects including id, transactionSource, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, isPrivate, isTaxDeductible, and customFields. Required: planned_gift_id.
- **Get single Virtuous pledge v 2 by ID** (Get). Get a single Virtuous pledge by id. Returns: id, frequency, segment, project, status, payments, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **Create a Virtuous pledge v 2** (Create). Create a new pledge in Virtuous. Returns the created pledge including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, status, payments, and customFields. Required: amountPledged, frequency, pledgeDate, expectedFulfillmentDate, contactId.
- **List all Virtuous pledge v 2** (List). Query pledges in Virtuous using filter groups with conditions, sorting, and descending order. Returns pledge records including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, status, payments, and customFields.
- **Get single Virtuous pledge by contacts v 2 by ID** (Get). Get a paged list of pledges for a specific contact in Virtuous by contact id. Returns each pledge with id, contactId, amountPledged, frequency, pledgeDate, status, payments, and customFields. Required: id.
- **List all Virtuous pledge query options v 2** (List). List the available query options for pledges in Virtuous, describing each filterable parameter, its type, the operators that apply to it, and any pre-defined value choices. Returns: options, operatorOptions, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Use this metadata to construct filter conditions for the…
- **Create a Virtuous contact individual collection** (Create). Create a custom collection instance for a contact individual in Virtuous. Returns: customCollectionId, customCollectionName, collectionInstanceId, fields, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: contact_individual_id, custom_collection_id.
- **Update a Virtuous contact individual collection by ID** (Update). Update a custom collection instance for a contact individual in Virtuous. Returns: customCollectionId, customCollectionName, collectionInstanceId, fields, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, contact_individual_id.
- **Delete a Virtuous contact individual collection by ID** (Delete). Delete a collection instance for a contact individual in Virtuous. Returns an empty 200 response on success. Required: id, contact_individual_id.
- **Virtuous webhook active bulk update** (Update). Toggle the active flag on a Virtuous webhook subscription in a single call. Pass the active query parameter as true to enable event delivery or false to pause it. Returns the updated webhook subscription object including id, payloadUrl, secret, active, and all event subscription flags. Required: id.
- **Create a Virtuous gift transactions v 2** (Create). Create a batch of gift transactions in Virtuous. Transactions are placed in a holding state and bundled into imports at midnight based on the transaction source, leveraging Virtuous contact and gift matching algorithms. Returns an empty 200 response on success.
