Skip to main content
Virtuous is a fundraising and donor management CRM for non-profits. It records the contacts and individuals who give, every gift received and the pledges, recurring commitments and planned gifts behind them, the campaigns and appeals that raise the money, and the projects, events, grants and volunteer programmes the money supports.

Configuring Virtuous as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Virtuous option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

Virtuous authenticates with an API key that you create yourself inside Virtuous. To generate one:
1

Open the API Keys section

Log in to Virtuous and navigate to the API Keys section of your organization’s settings.
2

Create a key

Click Create a Key, give it a name (for example, “Nekt”) and choose a permission group.
3

Copy the key

Save, then use the option to view and copy the key. Paste it into Nekt.
The key only reads what its permission group allows. Give it read access to every area you plan to sync — a table the key cannot read is skipped, and the run log will tell you which one.
The following configurations are available:
  • API Key: the key you just created. It does not expire unless you revoke it in Virtuous.
  • Initial sync date: the earliest date of change to read on the first sync. Later runs continue from where the previous one stopped. Leave it empty to read your full Virtuous history.
  • Include archived contacts: (Default: false) reads archived contacts as well as active ones. Off by default, so the contacts table matches what Virtuous shows in its own contact lists.
  • Lookback window (days): (Default: 1) how many days before the last sync the tables re-read on every run. Virtuous filters by whole dates rather than exact times, so this overlap is what stops a record changed later on the same day from being missed.
  • Page size: (Default: 1000) number of records requested per page.
  • Requests per minute: (Default: 20) the maximum number of API calls per minute this source makes. See the rate limit note below.
  • API URL: only needed if Virtuous told you to use a different host for your organization.
Once you’re done, click Next.
Virtuous limits API usage to 1,500 calls per hour for your whole organization, and that allowance is shared with every other tool connected to your Virtuous account. The default pace of 20 calls per minute leaves room for them. If your other integrations start being rate limited, lower this value or sync fewer tables.

2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.
Tip: The stream can be found more easily by typing its name.
Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
  • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: every time the extraction happens, we’ll get only the new data - which is good if, for example, you want to keep every record ever fetched.
    • Full table: every time the extraction happens, we’ll get the current state of the data - which is good if, for example, you don’t want to have deleted data in your catalog.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
  • Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Available streams

The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description.
Some tables are always read in full. Virtuous records a “last modified” timestamp on most of its data, and those tables sync incrementally. Gift designations, segments, tasks, tags, organization groups and recurring gift payments carry no such timestamp, so they are read in full on every sync. The connector also checks, once per run, whether each table can actually be filtered by when its records changed — if Virtuous does not offer that filter for a table, it reads the table in full rather than failing, and says so in the run log.
Nested data arrives as JSON text. Fields that hold a nested object or a list of objects — a contact’s address, the individuals inside it, a gift’s designations — are stored as JSON strings so that your tables keep a stable shape as Virtuous evolves its payloads. Use your warehouse’s JSON functions to read inside them, or use the dedicated table where one exists (contact_individuals, gift_designations).

Fields by stream

Below you’ll find all available data streams from Virtuous and their corresponding fields:
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the contact in Virtuous.
  • contactType - Kind of contact this record represents, such as Household, Organization or Foundation.
  • isPrivate - Whether the contact is marked private and hidden from users without access to private records.
  • name - Display name of the contact, as shown throughout Virtuous.
  • informalName - Informal form of the contact’s name, used in casual correspondence.
  • formalContactName - Formal form of the contact’s name, used on letters and receipts.
  • alternateContactName - Alternate name recorded for the contact.
  • preferredSalutationName - Name to greet the contact by in a salutation.
  • preferredAddresseeName - Name to address mail to the contact by.
  • nameFieldsLocked - Whether the name fields are locked against being recalculated when the contact’s individuals change.
  • description - Free-text description of the contact.
  • website - Website of the contact, typically set on organisations.
  • maritalStatus - Marital status recorded for the contact.
  • anniversaryMonth - Month of the contact’s anniversary, 1-12.
  • anniversaryDay - Day of the month of the contact’s anniversary.
  • anniversaryYear - Year of the contact’s anniversary, when it is known.
  • mergedIntoContactId - Identifier of the contact this one was merged into. When it is set, this record is a duplicate that no longer receives new activity.
  • address - Primary address of the contact, as a JSON object with the street, city, state, postal code, country and the period of the year it is valid for.
  • giftAskAmount - Amount the contact is currently being asked for, formatted for display.
  • giftAskType - Type of the gift ask currently open for the contact.
  • lifeToDateGiving - Total the contact has given since the organisation started recording gifts, formatted for display.
  • yearToDateGiving - Total the contact has given in the current year, formatted for display.
  • lastGiftAmount - Amount of the contact’s most recent gift, formatted for display.
  • lastGiftDate - Date of the contact’s most recent gift, formatted for display.
  • contactIndividuals - People who make up this contact, as a JSON array of objects carrying each person’s name, gender, birth date, contact methods and custom fields. Also available as its own table, contact_individuals.
  • contactReferences - Identifiers this contact carries in other systems, as a JSON array of objects with a source and an id.
  • originSegmentId - Identifier of the campaign segment the contact first came in through.
  • originSegment - Name of the campaign segment the contact first came in through.
  • tags - Names of the tags applied to the contact.
  • organizationGroups - Names of the organisation groups the contact belongs to.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • customCollections - Custom collections configured by the organisation, as a JSON array of objects, each carrying the collection’s name and its rows of name/value fields.
  • primaryAvatarUrl - URL of the contact’s avatar image.
  • contactGiftsUrl - API address that lists this contact’s gifts.
  • contactPassthroughGiftsUrl - API address that lists gifts this contact passed through from another giver, such as a donor-advised fund.
  • contactPlannedGiftsUrl - API address that lists this contact’s planned gifts.
  • contactRecurringGiftsUrl - API address that lists this contact’s recurring gifts.
  • contactImportantNotesUrl - API address that lists the notes flagged important on this contact.
  • contactNotesUrl - API address that lists this contact’s notes.
  • contactTagsUrl - API address that lists this contact’s tags.
  • contactRelationshipsUrl - API address that lists this contact’s relationships to other contacts.
  • createDateTimeUtc - When the contact was created, in UTC.
  • createdByUser - Virtuous user who created the contact.
  • modifiedDateTimeUtc - When the contact was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the contact.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the individual in Virtuous.
  • contactId - Identifier of the contact this individual belongs to.
  • prefix - Title before the individual’s name, such as Mr or Dr.
  • firstName - Given name of the individual.
  • middleName - Middle name of the individual.
  • lastName - Family name of the individual.
  • suffix - Suffix after the individual’s name, such as Jr or PhD.
  • gender - Gender recorded for the individual.
  • isPrimary - Whether this individual is the contact’s primary person, the one correspondence is addressed to by default.
  • canBePrimary - Whether this individual is eligible to be made the contact’s primary person.
  • isSecondary - Whether this individual is the contact’s secondary person, typically a spouse or partner.
  • canBeSecondary - Whether this individual is eligible to be made the contact’s secondary person.
  • birthMonth - Month of birth, 1-12.
  • birthDay - Day of the month of birth.
  • birthYear - Year of birth, when it is known.
  • birthDate - Date of birth as Virtuous formats it for display. Empty when only part of the date is known.
  • approximateAge - Age derived from the birth date on record.
  • isDeceased - Whether the individual is recorded as deceased.
  • passion - Cause or programme the individual cares most about, as recorded by the organisation.
  • avatarUrl - URL of the individual’s avatar image.
  • contactMethods - Ways to reach this individual, as a JSON array of objects carrying each method’s type (Home Email, Mobile Phone and so on), its value, whether it is the primary one of its kind, and whether the person opted in to it.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value.
  • customCollections - Custom collections configured by the organisation, as a JSON array of objects, each carrying the collection’s name and its rows.
  • createDateTimeUtc - When the individual was created, in UTC.
  • createdByUser - Virtuous user who created the individual.
  • modifiedDateTimeUtc - When the individual was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the individual.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the note in Virtuous.
  • contactId - Identifier of the contact the note was written about.
  • noteDate - Date the note refers to, as Virtuous formats it for display. This is the date of the interaction, which can be earlier than when the note was written.
  • type - Kind of interaction the note records, such as Phone Call, Visit or Email.
  • note - Body of the note.
  • important - Whether the note is flagged important and pinned on the contact’s record.
  • isPrivate - Whether the note is private and hidden from users without access to private records.
  • createdByAvatarUrl - URL of the avatar of the user who wrote the note.
  • reminder - Follow-up reminder attached to the note, as a JSON object with its message, target date, owner and current task status. Null when the note has no reminder.
  • createDateTimeUtc - When the note was created, in UTC.
  • createdByUser - Virtuous user who wrote the note.
  • modifiedDateTimeUtc - When the note was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the note.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the tag in Virtuous.
  • tagName - Name of the tag as it appears on a contact.
  • tagGroupName - Name of the group the tag is filed under.
  • contactsByTagUrl - API address that lists the contacts carrying this tag.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the organisation group in Virtuous.
  • name - Name of the group.
  • organizationId - Identifier of the organisation contact the group belongs to.
  • organizationName - Name of the organisation contact the group belongs to.
  • location - Location recorded for the group.
  • description - Free-text description of the group.
  • organizationGroupUrl - API address of this group’s own record.
  • organizationGroupContactsUrl - API address that lists the contacts in this group.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the gift in Virtuous.
  • transactionSource - System the gift came from, such as the name of the online giving platform or the import source.
  • transactionId - Identifier the gift carries in the system it came from. Together with the transaction source it is how Virtuous avoids importing the same gift twice.
  • contactId - Identifier of the contact who gave.
  • contactName - Display name of the contact who gave.
  • contactUrl - API address of the giving contact’s record.
  • giftType - How the gift was given, such as Cash, Check, Credit or Stock.
  • giftTypeFormatted - Gift type as Virtuous displays it.
  • giftDate - Date the gift was given. This is the date financial reporting uses, and it can be well before the gift was entered.
  • giftDateFormatted - Gift date as Virtuous displays it.
  • amount - Amount of the gift, in the currency it was given in.
  • amountFormatted - Gift amount as Virtuous displays it, including the currency symbol.
  • currencyCode - Currency the gift was given in, as a three-letter code.
  • exchangeRate - Rate used to convert the gift into the organisation’s base currency.
  • baseCurrencyCode - Organisation’s own currency, as a three-letter code.
  • batch - Name of the batch the gift was entered in.
  • segmentId - Identifier of the campaign segment the gift is attributed to.
  • segment - Name of the campaign segment the gift is attributed to.
  • segmentCode - Code of the campaign segment the gift is attributed to.
  • segmentUrl - API address of the attributed segment’s record.
  • mediaOutletId - Identifier of the media outlet the gift is attributed to.
  • mediaOutlet - Name of the media outlet the gift is attributed to.
  • grantId - Identifier of the grant this gift was awarded under.
  • grant - Title of the grant this gift was awarded under.
  • grantUrl - API address of the grant’s record.
  • notes - Free-text notes recorded on the gift.
  • tribute - Person the gift honours or memorialises.
  • tributeId - Identifier of the tribute the gift is attached to.
  • tributeType - Whether the tribute is in honour of or in memory of someone.
  • acknowledgeeIndividualId - Identifier of the individual to be notified about a tribute gift.
  • receiptDate - When the receipt for this gift was issued. Empty while the gift is still unreceipted.
  • receiptDateFormatted - Receipt date as Virtuous displays it.
  • contactPassthroughId - Identifier of the contact the gift passed through, such as a donor-advised fund giving on a donor’s behalf.
  • contactPassthroughUrl - API address of the passthrough contact’s record.
  • contactIndividualId - Identifier of the individual inside the contact who gave.
  • cashAccountingCode - Accounting code the gift’s cash is booked to.
  • giftAskId - Identifier of the gift ask this gift answers.
  • contactMembershipId - Identifier of the membership this gift pays for.
  • giftDesignations - How the gift is split across projects, as a JSON array of objects carrying the project, its code and the amount designated to it. Also available as its own table, gift_designations.
  • giftPremiums - Thank-you items sent for this gift, as a JSON array of objects carrying the premium and the quantity.
  • pledgePayments - Pledge instalments this gift pays off, as a JSON array of objects carrying the expected date, the expected amount and the amount actually paid.
  • recurringGiftPayments - Recurring-gift instalments this gift fulfils, as a JSON array of objects carrying the expected date and amount and when the payment was fulfilled or dismissed.
  • giftUrl - API address of this gift’s own record.
  • isPrivate - Whether the gift is marked private and hidden from users without access to private records.
  • isTaxDeductible - Whether the gift is tax deductible for the giver.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the gift was entered into Virtuous, in UTC.
  • createdByUser - Virtuous user who entered the gift.
  • modifiedDateTimeUtc - When the gift was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the gift.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the gift designation in Virtuous.
  • createDate - When the designation was created, as Virtuous formats it for display.
  • amountDesignated - Portion of the gift assigned to this project.
  • giftId - Identifier of the gift this designation belongs to.
  • giftDate - Date of the gift, as Virtuous formats it for display.
  • giftType - How the gift was given, such as Cash, Check or Credit.
  • giftIsPrivate - Whether the gift behind this designation is marked private.
  • giftCustomFields - Custom fields recorded on the gift, as a JSON object.
  • giftUrl - API address of the gift’s record.
  • contactId - Identifier of the contact who gave.
  • contactName - Display name of the contact who gave.
  • contactType - Kind of contact who gave, such as Household or Organization.
  • contactUrl - API address of the giving contact’s record.
  • projectId - Identifier of the project the amount was designated to.
  • project - Name of the project the amount was designated to.
  • projectCode - Code of the project the amount was designated to.
  • projectExternalAccountingCode - Code that identifies the project in the organisation’s accounting system.
  • projectType - Type of the project the amount was designated to.
  • projectLocation - Location of the project the amount was designated to.
  • projectCustomFields - Custom fields recorded on the project, as a JSON object.
  • projectUrl - API address of the project’s record.
  • parentProjectId - Identifier of the parent project, when this project is a sub-project.
  • parentProject - Name of the parent project.
  • parentProjectCode - Code of the parent project.
  • parentProjectExternalAccountingCode - Code that identifies the parent project in the organisation’s accounting system.
  • parentProjectType - Type of the parent project.
  • parentProjectLocation - Location of the parent project.
  • parentProjectCustomFields - Custom fields recorded on the parent project, as a JSON object.
  • parentProjectUrl - API address of the parent project’s record.
  • batch - Name of the batch the gift was entered in.
  • segmentName - Name of the campaign segment the gift is attributed to.
  • segmentCode - Code of the campaign segment the gift is attributed to.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the gift ask in Virtuous.
  • contactId - Identifier of the contact who was asked.
  • contactUrl - API address of the asked contact’s record.
  • askAmount - Amount the contact was asked for.
  • askAmountFormatted - Ask amount as Virtuous displays it.
  • askDate - When the ask was made.
  • askDateFormatted - Ask date as Virtuous displays it.
  • expectedFulfillmentDate - When the resulting gift is expected.
  • expectedFulfillmentDateFormatted - Expected fulfilment date as Virtuous displays it.
  • notes - Free-text notes recorded on the ask.
  • askType - Kind of ask, such as a one-off request or a proposal.
  • frequency - How often the asked-for gift would repeat, when the ask is for a recurring commitment.
  • declined - Whether the contact declined the ask.
  • status - Where the ask stands, such as open, fulfilled or declined.
  • projectId - Identifier of the project the ask is for.
  • project - Name of the project the ask is for.
  • projectUrl - API address of the project’s record.
  • segmentId - Identifier of the campaign segment the ask belongs to.
  • segment - Name of the campaign segment the ask belongs to.
  • segmentCode - Code of the campaign segment the ask belongs to.
  • segmentUrl - API address of the segment’s record.
  • assignedUserId - Identifier of the Virtuous user responsible for the ask.
  • assignedUser - Virtuous user responsible for the ask.
  • secondaryAssignedUserId - Identifier of the second Virtuous user working the ask.
  • secondaryAssignedUser - Second Virtuous user working the ask.
  • giftAskUrl - API address of this ask’s own record.
  • giftsAppliedUrl - API address that lists the gifts applied to this ask.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the ask was created, in UTC.
  • createdByUser - Virtuous user who created the ask.
  • modifiedDateTimeUtc - When the ask was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the ask.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the planned gift in Virtuous.
  • contactId - Identifier of the contact who made the commitment.
  • contactUrl - API address of the committing contact’s record.
  • plannedGiftDate - Date the commitment was made, as Virtuous formats it for display.
  • pkannedGiftType - Kind of planned gift, such as a bequest, trust or insurance policy. The field name carries a typo in the Virtuous API and is kept as the API spells it.
  • frequency - How often the planned gift is expected to be received.
  • anticipatedAmount - Amount the organisation expects to receive, formatted for display.
  • anticipatedStartDate - When the organisation expects the planned gift to start, as Virtuous formats it for display.
  • numberOfOccurrences - How many times the planned gift is expected to be received.
  • currentValue - Current estimated value of the commitment, formatted for display.
  • fulfilled - How much of the commitment has been received so far, formatted for display.
  • projectId - Identifier of the project the planned gift is intended for.
  • project - Name of the project the planned gift is intended for.
  • projectUrl - API address of the project’s record.
  • segmentId - Identifier of the campaign segment the planned gift belongs to.
  • segment - Name of the campaign segment the planned gift belongs to.
  • segmentUrl - API address of the segment’s record.
  • plannedGiftUrl - API address of this planned gift’s own record.
  • giftsAppliedUrl - API address that lists the gifts applied to this commitment.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the planned gift was created, in UTC.
  • createdByUser - Virtuous user who created the planned gift.
  • modifiedDateTimeUtc - When the planned gift was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the planned gift.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the pledge in Virtuous.
  • contactId - Identifier of the contact who pledged.
  • amountPledged - Total amount promised.
  • frequency - How often the instalments fall due, such as monthly or annually.
  • pledgeDate - When the pledge was made.
  • expectedFulfillmentDate - When the pledge is expected to be fully paid.
  • status - Where the pledge stands, such as open, fulfilled or written off.
  • isPrivate - Whether the pledge is marked private and hidden from users without access to private records.
  • segmentId - Identifier of the campaign segment the pledge belongs to.
  • segment - Name of the campaign segment the pledge belongs to.
  • projectId - Identifier of the project the pledge is intended for.
  • project - Name of the project the pledge is intended for.
  • payments - Instalments expected against the pledge, as a JSON array of objects carrying the expected date and amount, the gift that paid it and the amount actually paid.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the pledge was created, in UTC.
  • createdByUser - Virtuous user who created the pledge.
  • modifiedDateTimeUtc - When the pledge was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the pledge.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the premium in Virtuous.
  • name - Name of the premium.
  • code - Code that identifies the premium.
  • description - Free-text description of the premium.
  • price - Price the premium is offered at.
  • fairMarketValue - Fair market value of the premium, which is the part of a gift that stops being tax deductible when the premium is sent.
  • cost - What the premium costs the organisation.
  • inventoryCount - Units currently in stock.
  • isActive - Whether the premium is still offered.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the premium was created, in UTC.
  • createdByUser - Virtuous user who created the premium.
  • modifiedDateTimeUtc - When the premium was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the premium.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the recurring gift in Virtuous.
  • contactId - Identifier of the contact who committed.
  • transactionSource - System the commitment came from, such as the online giving platform that set it up.
  • transactionId - Identifier the commitment carries in the system it came from.
  • startDate - When the commitment started.
  • amount - Amount given on each occurrence.
  • frequency - How often the gift repeats, such as monthly or quarterly.
  • anticipatedEndDate - When the commitment is expected to end, if it is not open ended.
  • cancelDateTimeUtc - When the commitment was cancelled, in UTC. Empty while it is still active.
  • nextExpectedPaymentDate - When the next payment is expected.
  • status - Where the commitment stands, such as active, cancelled or completed.
  • automatedPayments - Whether payments are charged automatically rather than recorded by hand.
  • trackPayments - Whether Virtuous tracks each expected payment against this commitment.
  • isPrivate - Whether the commitment is marked private and hidden from users without access to private records.
  • segmentId - Identifier of the campaign segment the commitment belongs to.
  • segment - Name of the campaign segment the commitment belongs to.
  • segmentUrl - API address of the segment’s record.
  • designations - How each payment is split across projects, as a JSON array of objects carrying the project, its code and the amount designated.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the commitment was created, in UTC.
  • createdByUser - Virtuous user who created the commitment.
  • modifiedDateTimeUtc - When the commitment was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the commitment.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the recurring gift payment in Virtuous.
  • recurringGiftId - Identifier of the recurring gift this payment belongs to.
  • gift - Gift that fulfilled this payment, as a JSON object carrying its identifier, the giving contact, the gift date and the amount. Null while the payment is still outstanding.
  • expectedAmount - Amount this instalment was expected to be.
  • expectedPaymentDate - When this instalment was expected.
  • dismissPaymentDate - When the instalment was dismissed, meaning the organisation decided not to chase it. Empty unless it was dismissed.
  • fulfillPaymentDate - When the instalment was fulfilled by a gift. Empty while it is still outstanding.
Primary key: campaignId. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • campaignId - Unique identifier of the campaign in Virtuous.
  • name - Name of the campaign.
  • startDateTimeUtc - When the campaign starts, in UTC.
  • endDateTimeUtc - When the campaign ends, in UTC.
  • givingGoal - Amount the campaign aims to raise.
  • newGiverGoal - Number of first-time givers the campaign aims to bring in.
  • totalGiftGoal - Number of gifts the campaign aims to receive.
  • isArchived - Whether the campaign has been archived and no longer appears in the active list.
  • createDateTimeUtc - When the campaign was created, in UTC.
  • createdByUser - Virtuous user who created the campaign.
  • modifiedDateTimeUtc - When the campaign was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the campaign.
Primary key: communicationId. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • communicationId - Unique identifier of the communication in Virtuous.
  • name - Name of the communication.
  • campaignId - Identifier of the campaign this communication belongs to.
  • campaignName - Name of the campaign this communication belongs to.
  • channelType - Channel the communication went out on, such as Mail, Email or Phone.
  • communicationType - Kind of communication, such as an appeal, a newsletter or an acknowledgement.
  • startDateTimeUtc - When the communication goes out, in UTC.
  • givingGoal - Amount this communication aims to raise.
  • projectId - Identifier of the project the communication raises for.
  • projectCode - Code of the project the communication raises for.
  • projectName - Name of the project the communication raises for.
  • createDateTimeUtc - When the communication was created, in UTC.
  • createdByUser - Virtuous user who created the communication.
  • modifiedDateTimeUtc - When the communication was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the communication.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the segment in Virtuous.
  • name - Name of the segment.
  • description - Free-text description of the segment.
  • code - Code that identifies the segment. This is the code gifts carry as segmentCode, which is how income is attributed back to an appeal.
  • communicationId - Identifier of the communication this segment was sent as part of.
  • communicationName - Name of the communication this segment was sent as part of.
  • campaignId - Identifier of the campaign this segment belongs to.
  • campaignName - Name of the campaign this segment belongs to.
  • segmentOrganizerId - Identifier of the segment organiser the segment is filed under.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the project in Virtuous.
  • name - Name of the project.
  • projectCode - Code that identifies the project. This is the code gift designations carry.
  • externalAccountingCode - Code that identifies the project in the organisation’s accounting system.
  • onlineDisplayName - Name shown for the project on public giving pages.
  • description - Free-text description of the project.
  • photoUrl - URL of the project’s photo.
  • parentId - Identifier of the parent project, when this is a sub-project.
  • parentName - Name of the parent project.
  • isSubProject - Whether this project sits under another one.
  • inventoryStatus - Whether the project still needs funding, is fully funded, or is closed.
  • type - Type of the project, as configured by the organisation.
  • location - Where the project takes place.
  • isRestrictedToGiftSpecifications - Whether gifts to this project must match one of its predefined amounts.
  • isLimitedToFinancialNeed - Whether the project stops accepting gifts once its financial need is met.
  • isPublic - Whether the project is visible outside the organisation.
  • isActive - Whether the project is still active.
  • isAvailableOnline - Whether the project can be given to through online giving pages.
  • isTaxDeductible - Whether gifts to this project are tax deductible.
  • treatAsAccountsPayable - Whether money raised for this project is booked as accounts payable, which is how pass-through funds are handled.
  • beginningBalance - Balance the project started with.
  • currentBalance - Balance the project holds now.
  • financialNeedType - How the project’s need is expressed, such as a one-off target or a recurring requirement.
  • financialNeedFrequency - How often the financial need recurs.
  • financialNeedAmount - Amount the project needs.
  • startDate - When the project starts.
  • endDate - When the project ends.
  • durationType - Whether the project runs for a fixed period or is ongoing.
  • lifeToDateGiving - Total given to the project since it started.
  • lifeToDateGiftCount - Number of gifts the project has received since it started.
  • lifeToDateGiversCount - Number of distinct contacts that have given to the project since it started.
  • lifeToDateExpenseTotal - Total expenses booked against the project since it started.
  • calendarYearToDateGiving - Total given to the project in the current calendar year.
  • calendarYearToDateGiftCount - Number of gifts the project has received in the current calendar year.
  • calendarYearToDateGiversCount - Number of distinct contacts that have given to the project in the current calendar year.
  • calendarYearToDateExpenseTotal - Total expenses booked against the project in the current calendar year.
  • giftSpecifications - Preset giving amounts offered for this project, as a JSON array of objects carrying the amount and how often it repeats.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the project was created, in UTC.
  • createdByUser - Virtuous user who created the project.
  • modifiedDateTimeUtc - When the project was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the project.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the event in Virtuous.
  • name - Name of the event.
  • eventType - Type of the event, as configured by the organisation.
  • locationName - Name of the venue.
  • displayAddress - Address of the venue as shown to invitees.
  • geocodeAddress - Address of the venue in the form used to place it on a map.
  • startDateTime - When the event starts, in the venue’s own time zone. Virtuous returns this as local text rather than as a UTC timestamp, so it is kept as text; the time zone is in the timeZone column.
  • endDateTime - When the event ends, in the venue’s own time zone, as local text.
  • timeZone - Time zone the start and end times are expressed in.
  • description - Free-text description of the event.
  • specialInstructions - Instructions given to invitees, such as dress code or parking.
  • inviteOnly - Whether attendance is restricted to invited contacts.
  • rsvpRequired - Whether invitees must RSVP to attend.
  • totalInvites - Number of contacts invited.
  • totalRsvps - Number of invitees that replied they would attend.
  • totalAttended - Number of invitees recorded as having attended.
  • totalGifts - Number of gifts attributed to the event.
  • totalGiving - Total raised by the event, formatted for display.
  • communicationId - Identifier of the communication the invitations went out as.
  • generosityEventContacts - Contacts linked to the event as hosts or organisers, as a JSON array of objects carrying each person’s name, phone and email.
  • tables - Names of the tables invitees can be seated at.
  • meals - Meal options offered at the event.
  • eventViewUrl - Address of the event’s page in Virtuous.
  • eventContactsUrl - API address that lists the contacts linked to the event.
  • eventInvitationsUrl - API address that lists the event’s invitations.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the event was created, in UTC.
  • createdByUser - Virtuous user who created the event.
  • modifiedDateTimeUtc - When the event was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the event.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the event invitation in Virtuous.
  • eventId - Identifier of the event the person was invited to.
  • event - Name of the event the person was invited to.
  • contactId - Identifier of the contact that was invited.
  • contactIndividualId - Identifier of the individual inside the contact that was invited.
  • invitee - Display name of the person invited.
  • emailAddress - Email address the invitation was sent to.
  • invited - Whether and when the person was invited, as Virtuous formats it for display.
  • rsvp - The person’s reply to the invitation.
  • attended - Whether the person attended, as Virtuous records it.
  • emailStatus - Delivery status of the invitation email.
  • emailSent - When the invitation email was sent, as Virtuous formats it for display.
  • location - Venue of the event.
  • startDateTime - When the event starts, in the venue’s own time zone, as local text.
  • endDateTime - When the event ends, in the venue’s own time zone, as local text.
  • timeZone - Time zone the start and end times are expressed in.
  • contactUrl - API address of the invited contact’s record.
  • eventViewUrl - Address of the event’s page in Virtuous.
  • eventInvitationUrl - API address of this invitation’s own record.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the invitation was created, in UTC.
  • createdByUser - Virtuous user who created the invitation.
  • modifiedDateTimeUtc - When the invitation was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the invitation.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the grant in Virtuous.
  • title - Title of the grant.
  • description - Free-text description of the grant.
  • referenceId - Reference the funder uses to identify this grant.
  • grantType - Type of the grant, as configured by the organisation.
  • status - Where the grant stands, such as in preparation, submitted, awarded or declined.
  • ownerId - Identifier of the Virtuous user responsible for the grant.
  • grantingOrganizationId - Identifier of the contact that awards the grant.
  • grantingOrganizationUrl - API address of the awarding organisation’s record.
  • receivingOrganizationId - Identifier of the contact that receives the grant.
  • receivingOrganizationUrl - API address of the receiving organisation’s record.
  • projectId - Identifier of the project the grant funds.
  • project - Name of the project the grant funds.
  • projectUrl - API address of the project’s record.
  • dueDateUtc - When the application is due, in UTC.
  • submissionDateUtc - When the application was submitted, in UTC.
  • anticipatedAwardDateUtc - When a decision is expected, in UTC.
  • totalAnticipatedAmount - Amount the organisation expects to be awarded.
  • awardedGrant - Whether the grant was awarded.
  • awardedAmount - Amount actually awarded.
  • awardedDateUtc - When the grant was awarded, in UTC.
  • awardTerms - Terms attached to the award, such as reporting requirements.
  • pointOfContactName - Name of the funder’s point of contact.
  • pointOfContactEmail - Email address of the funder’s point of contact.
  • pointOfContactPhone - Phone number of the funder’s point of contact.
  • website - Website of the funder or of the grant programme.
  • grantUrl - API address of this grant’s own record.
  • giftsAppliedUrl - API address that lists the gifts received under this grant.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the grant was created, in UTC.
  • createdByUser - Virtuous user who created the grant.
  • modifiedDateTimeUtc - When the grant was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the grant.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the volunteer opportunity in Virtuous.
  • name - Name of the opportunity.
  • description - Free-text description of the opportunity.
  • url - Public sign-up address for the opportunity.
  • anytime - Whether volunteers can serve at any time rather than on a fixed date.
  • startDateTime - When the opportunity starts, in its own time zone. Virtuous returns this as local text such as ‘3/27/2022 12:00 PM’ rather than as a UTC timestamp, so it is kept as text; the time zone is in the timeZone column.
  • endDateTime - When the opportunity ends, in its own time zone, as local text.
  • timeZone - Time zone the start and end times are expressed in.
  • isActive - Whether the opportunity is still open for sign-ups.
  • isLocalOnly - Whether only volunteers near the location may sign up.
  • anywhere - Whether the opportunity can be served from anywhere.
  • currentPriority - How urgently volunteers are needed, such as Low, Medium or High.
  • currentNeed - Number of volunteers still needed.
  • preferredNumberOfHours - Hours the organisation would like each volunteer to serve.
  • locationName - Name of the place the opportunity takes place at.
  • address1 - First line of the location’s street address.
  • address2 - Second line of the location’s street address.
  • city - City of the location.
  • state - State or province of the location.
  • postal - Postal code of the location.
  • country - Country of the location.
  • totalVolunteers - Number of volunteers signed up so far.
  • totalVolunteerHours - Total hours volunteers have served on this opportunity.
  • currentNeedFilledPercentage - How much of the volunteer need has been filled, as a percentage.
  • hoursFilledPercentage - How much of the required hours have been served, as a percentage.
  • volunteerOrganizers - People organising the opportunity, as a JSON array of objects carrying each organiser’s name, phone and email.
  • volunteerOpportunityUrl - API address of this opportunity’s own record.
  • volunteerOrganizersUrl - API address that lists the opportunity’s organisers.
  • volunteersUrl - API address that lists the opportunity’s volunteers.
  • customFields - Custom fields configured by the organisation, as a JSON array of objects with the field’s name, display name and value. Which fields exist differs per organisation.
  • createDateTimeUtc - When the opportunity was created, in UTC.
  • createdByUser - Virtuous user who created the opportunity.
  • modifiedDateTimeUtc - When the opportunity was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the opportunity.
Primary key: id. Incremental, bookmarked on modifiedDateTimeUtc.Fields:
  • id - Unique identifier of the volunteer sign-up in Virtuous.
  • volunteerOpportunityId - Identifier of the opportunity the person signed up to.
  • contactId - Identifier of the contact the volunteer belongs to.
  • contactIndividualId - Identifier of the individual who volunteers.
  • displayName - Display name of the volunteer.
  • firstName - Given name of the volunteer.
  • primaryEmail - Volunteer’s primary email address.
  • primaryPhone - Volunteer’s primary phone number.
  • avatarUrl - URL of the volunteer’s avatar image.
  • totalHours - Total hours this volunteer has served.
  • timesVolunteered - Number of times this volunteer has served.
  • contactUrl - API address of the volunteer’s contact record.
  • volunteerUrl - API address of this sign-up’s own record.
  • volunteerOpportunityUrl - API address of the opportunity’s record.
  • volunteerAttendanceUrl - API address that lists this volunteer’s attendance records.
  • createDateTimeUtc - When the sign-up was created, in UTC.
  • createdByUser - Virtuous user who created the sign-up.
  • modifiedDateTimeUtc - When the sign-up was last changed, in UTC. Used as the incremental replication key.
  • modifiedByUser - Virtuous user who last changed the sign-up.
Primary key: id. Read in full on every sync — these records carry no change timestamp.Fields:
  • id - Unique identifier of the task in Virtuous.
  • taskType - Kind of task, such as a call to make or a letter to send.
  • task - Short title of the task.
  • description - Free-text description of what the task involves.
  • dueDateTime - When the task is due.
  • contactId - Identifier of the contact the task concerns.
  • contact - Display name of the contact the task concerns.
  • contactUrl - API address of the contact’s record.