Skip to content

This guide walks you through connecting GoodCompany to MoveData. This integration processes CSV workplace giving remittance reports and imports donation data into Salesforce.

Field Detail
Product GoodCompany
Method CSV file processing
Frequency Manual upload

Supported extensions#

This integration requires the Fundraising and Donations extension.

Supported file types#

MoveData supports the remittance report from GoodCompany. This is the only file type supported for this integration.

Example remittance report#

The table below describes the columns you will find in each row. You can download an example file to use as a test upload.

Column Description Example
Pledged Date the donation was pledged. Available to extension flows, not written to a standard field. 31-12-2025
Date Date of the donation. Sets the donation date in Salesforce. 29-01-2026
Site Employer programme the donation was made through. GoodCompany means a direct donation made on the GoodCompany website rather than through an employer. Acme Corp, GoodCompany
Type Type of donation row. MatchedGiving is treated as an employer match; every other value is processed as a standard donation. PayrollGiving, CreditCard, MatchedGiving
Gift Name Project, charity, or appeal the donation supports. Community Support Programme
Amount Donation amount. All GoodCompany donations are recorded in AUD. 25.00
Recurrence Whether the donation is one-off or recurring. Only EveryPayCycle has special handling — see Recurring donations and pledges. OnceOff, EveryPayCycle
Month to Receive Payment Month the disbursement is expected. Available to extension flows, not written to a standard field. Feb 2026
Supporter Not used by MoveData. (blank)
First Name / Last Name Donor name. Anonymous / Member for anonymous donors. Sarah, Williams
Email Donor email. Blank for anonymous donors. sarah.williams@example.com
Postal Address Donor street address. 12 Elm Street
Suburb Donor suburb. Richmond
State Donor state. GoodCompany sends lowercase; MoveData uppercases it and sets the country to Australia. vicVIC
Post Code Donor postcode. 3121
Source Appeal Appeal source. Available to extension flows, not written to a standard field. (usually blank)
Source Fundraising Event Not used by MoveData. (blank)
Source Gift Registry Not used by MoveData. (blank)
Reference Free-text reference. Available to extension flows, not written to a standard field. (usually blank)
Payment Order Number Disbursement batch identifier. Available to extension flows, not written to a standard field. Fortnightly OtherW41AYTBQ5C
Transaction Reference Unique row identifier. Used as the receipt number and for deduplication. b8a02207-306c-08de-bf21-c8ab0bec7c3a

Handling your CSV file#

Always upload the original file exactly as downloaded from GoodCompany. Do not open or resave it in Microsoft Excel, Google Sheets, or Numbers. These applications silently reformat dates, strip leading zeros, and alter CSV encoding in ways that cause import failures.

If you need to inspect or edit specific values, use a plain text editor such as Sublime Text, Notepad++, or VS Code. Do not alter column headers, delimiters, or file encoding. Any modifications to the file are at your own risk.

Date formatting errors are the most common cause of failed imports. GoodCompany uses the Australian DD-MM-YYYY date format. If MoveData reports date errors after upload, the file has almost certainly been opened in a spreadsheet application. Re-export the original remittance report from GoodCompany and upload it again.

Salesforce records created#

MoveData creates different Salesforce records depending on your data model.

GoodCompany data Nonprofit Success Pack (NPSP) Nonprofit Cloud
Donor Contact Person Account
Employer (Site) Account Account
Campaign Campaign (with hierarchy) Campaign (with hierarchy)
Employee donation Opportunity Gift Transaction
Employer match Opportunity Gift Transaction
Recurring payroll donation (optional) Recurring Donation Gift Commitment

Note

Recurring Donations are off by default. Rows marked EveryPayCycle are written as standalone donations unless you turn on Create Recurring Donations on the integration — see Recurring donations and pledges.

Anonymous rows (First Name = Anonymous) carry no donor. The Fundraising and Donations extension assigns these donations to the Anonymous Contact (NPSP) or Anonymous Person Account (Nonprofit Cloud) configured in MoveData Settings. See How campaigns are organised for how the employer is still attributed.

Before you begin#

  • You need access to the MoveData app in Salesforce.
  • You need a GoodCompany remittance report in CSV format. GoodCompany provides these reports on a regular disbursement cycle.
  • If your reports include anonymous donors, make sure an Anonymous Contact is set in MoveData Settings. See the Fundraising and Donations settings (NPSP) or Nonprofit Cloud settings reference.

Setting up the integration#

Step 1: Obtain your GoodCompany remittance report#

Log in to GoodCompany and download your remittance report in CSV format.

Step 2: Open the Integrations tab#

In the MoveData app in Salesforce, click the Integrations tab in the navigation bar.

Step 3: Create a new integration#

Click New Integration and select GoodCompany from the list of available platforms.

Step 4: Name your integration#

Enter a descriptive name for this integration (for example, "GoodCompany - Workplace Giving") and click Save.

Step 5: Configure integration options#

GoodCompany has three configurable options. Review them before uploading your first file.

Option Default Description
Build account-level campaigns from Site (employer) On Creates a campaign for each employer (Site) under the top-level GoodCompany campaign, linked to the employer's Account.
Build charity-level campaigns from Gift Name On Creates a campaign for each project or appeal (Gift Name). When account-level campaigns are also on, these sit under the employer campaign.
Create Recurring Donations Off Creates a Recurring Donation (NPSP) or Gift Commitment (Nonprofit Cloud) for payroll donors whose Recurrence is EveryPayCycle. See Recurring donations and pledges before turning this on.

Success

With both campaign options on (the default), MoveData builds a three-tier hierarchy: GoodCompany > Site > Gift Name. This gives you the most detailed campaign reporting.

Step 6: Upload your CSV file#

Click the Upload File button and select the GoodCompany CSV remittance report. MoveData begins processing the file automatically.

Once the upload completes, you can monitor processing status from the Executions tab in MoveData. Each row becomes a notification named [GC] {Transaction Reference} - {date} - {D or M} - {donor}, where D is an employee donation and M is an employer match.

Note

Re-uploading the same file is safe. MoveData deduplicates each row on its Transaction Reference, so reprocessing a file updates the existing donations in place rather than creating duplicates.

There is no row limit specific to GoodCompany files. If you have a large backlog of historical reports, upload them one report at a time.

How campaigns are organised#

MoveData creates a campaign hierarchy from your GoodCompany data. The depth of the hierarchy depends on which campaign options you have enabled.

Tier 1: Platform campaign#

MoveData always creates a top-level campaign named GoodCompany. All donations from this integration sit under this campaign.

Tier 2: Site campaigns#

When Build account-level campaigns from Site (employer) is turned on, MoveData creates a child campaign for each employer. These campaigns are named after the Site (for example, "Acme Corp"), use the campaign type Team, and are linked to the employer's Account.

Rows where the Site is GoodCompany are direct donations made on the GoodCompany website, not employer donations. MoveData does not create a Site campaign for these rows — they skip this tier.

Tier 3: Gift Name campaigns#

When Build charity-level campaigns from Gift Name is also turned on, MoveData creates a third tier of campaigns for each project or appeal within an employer. These campaigns are named after the Gift Name (for example, "Community Support Programme"), use the campaign type Fundraiser, and are linked to the employer's Account. The donation is attributed to this deepest tier.

A campaign is created for every distinct Gift Name, including your organisation's general fund if donors select it.

Note

If a row has no employer (Site is GoodCompany), or account-level campaigns are turned off, the Gift Name campaign sits directly under the top-level GoodCompany campaign and is shared across all employers.

If both campaign options are turned off, all donations are attributed to the top-level GoodCompany campaign only.

Anonymous donations#

Anonymous payroll rows roll up to the same Site and Gift Name campaigns as any other donation. The donation itself has no donor, so the Fundraising and Donations extension assigns it to the Anonymous Contact configured in MoveData Settings. Employer attribution is preserved through the Site campaign, which is linked to the employer's Account.

How employer matching works#

A MatchedGiving row represents an employer match of an employee's donation. The match shares the same Transaction Reference as the employee's original PayrollGiving row.

MoveData creates two separate donations from this pair:

  • the employee donation (the PayrollGiving row), with the employee as the donor, and
  • the employer match (the MatchedGiving row), with the employer's Account as the donor and the employee recorded as the matched contact.

Both donations carry the same receipt number (the Transaction Reference). MoveData keeps them distinct by appending -D (donor) or -M (match) to the platform key.

In NPSP, MoveData links the two using the standard matching gift fields: the employer match's Matching Gift lookup points to the employee's Opportunity, and Matching Gift Account, Matching Gift Employer, and Matching Gift Status (Received) are set. See Fields and objects for the full list.

Warning

The link between an employee donation and its employer match is only set when both rows are in the same uploaded file. If GoodCompany reports the match in a later remittance, both donations are still created, but you will need to set the Matching Gift lookup manually.

Employer matches are always written as one-off donations, even when the original payroll donation is recurring.

Recurring donations and pledges#

By default, GoodCompany rows marked Recurrence = EveryPayCycle are not turned into a recurring schedule. Each row stands alone as its own Opportunity (NPSP) or Gift Transaction (Nonprofit Cloud).

If you turn on Create Recurring Donations on the integration, MoveData creates a Recurring Donation (NPSP) or Gift Commitment (Nonprofit Cloud) for each PayrollGiving row with Recurrence = EveryPayCycle from a named donor with an email address, and attaches the row's donation to it. Before enabling this, be aware of how it works:

  • One recurring record per donor. The recurring record is keyed on the donor's email, so a donor who gives to more than one Gift Name shares a single recurring record.
  • Installment period is Monthly. The remittance report does not state the donor's pay cycle, so MoveData sets the frequency to Monthly even when the donor is paid fortnightly.
  • The amount follows the latest upload. Each upload updates the recurring record's amount to the amount in that report.
  • CreditCard rows, MatchedGiving rows, and anonymous rows never create a recurring record.

Pledge-related columns are available to extension flows but are not written to a standard Salesforce field out of the box:

  • Pledged — the pledge date
  • Month to Receive Payment — the expected disbursement month

If you want these on the donation record, that requires an extension flow and custom fields.

Refunds#

The GoodCompany remittance report does not include refund or reversal rows. MoveData processes every row as a successful donation. If GoodCompany refunds a donation, adjust the Salesforce record manually.

Additional data available to extension flows#

GoodCompany exposes its platform-specific columns as Custom_ variables that are available to extension flows. These are flow variables, not packaged Salesforce fields — to persist any of them, map them onto custom fields in an extension flow.

Variable Source column Example
Custom_PledgedDate Pledged 2025-12-31
Custom_PaymentMonth Month to Receive Payment Feb 2026
Custom_PaymentOrderNumber Payment Order Number Fortnightly OtherW41AYTBQ5C
Custom_Recurrence Recurrence OnceOff / EveryPayCycle
Custom_Reference Reference (usually blank)
Custom_SourceAppeal Source Appeal (usually blank)

Common upload errors#

MoveData validates each row before processing. These are the errors you may see in the execution log, and what to do about them.

Error Cause Fix
Invalid date format. Expected DD-MM-YYYY. The Date column has been reformatted, usually by opening the file in a spreadsheet application. Re-download the original report from GoodCompany and upload it unmodified.
Missing donation date in data. The Date column is blank for the row. Check the row in a plain text editor.
Missing amount for the donation. / Invalid (non-numeric) amount for the donation. The Amount column is blank or contains text or currency symbols. Check the row in a plain text editor. Amounts must be plain numbers (for example, 25.00).
Missing gift name in the data. The Gift Name column is blank for the row. Check the row in a plain text editor.
Missing transaction reference in the data. The Transaction Reference column is blank for the row. Check the row in a plain text editor. Every row needs a reference for deduplication.

Migrating historical data#

You can import historical donation data through the same file upload process. Export your past remittance reports from GoodCompany and upload each file using the Upload File button, one report at a time.

Other resources#

Ask MoveData AI
Ask about setup, configuration, or troubleshooting
How can I help you with MoveData today?