> ## Documentation Index
> Fetch the complete documentation index at: https://docs.port.church/llms.txt
> Use this file to discover all available pages before exploring further.

# Elvanto

> How to prepare and enrich an Elvanto giving export for Port

Use this guide when your giving export source is Elvanto.

## Preparing Your File

Elvanto's native transaction export does not include a member ID, email address, phone number, or separate first and last names. Its only donor identifier is `Person`, a display name in `Last, First` format. Before uploading the file to Port, export people separately and add their identifiers to each transaction with XLOOKUP.

### 1. Export People

In Elvanto, go to **People → Advanced Search** and use these settings:

* **Match:** All of the following fields
* **Criteria:** `First Name` — `Is Not Empty` (this filters out organization and placeholder rows)
* **Display Fields, in order:** Member ID, First Name, Last Name, Email Address, Mobile Number, Full Name
* **Sort by:** Member ID

Run the search, then select **Export → Comma Delimited .csv**.

`Full Name` is the lookup key. Elvanto exports it in `Last, First` format, matching the `Person` column in the transaction export.

You can also create a standard custom report with **Reports → Add Custom Report → Standard Report**, choose **Use as Report Only** and **Display as Individuals**, and include the same fields. Advanced Search is usually faster.

### 2. Export Transactions

Go to **Reports → All Built-in Reports → Financial → Transactions report** and export the results. The native export contains these columns:

```text theme={null}
Person, Receipt Name, Date Added, Transaction Date, Amount, Tax Ded., Memo,
Method, Check Number, Transaction ID, External Notes, Account / Sub Account
```

The `Person` column is only a display name. The export does not contain a stable person ID or other contact information that Port can use for reliable matching.

### 3. Enrich Transactions with XLOOKUP

Open both CSVs in Excel, copy the People worksheet into the transaction workbook, and name that worksheet `People`. Confirm its columns are in the order listed above:

| Column | People field  |
| ------ | ------------- |
| A      | Member ID     |
| B      | First Name    |
| C      | Last Name     |
| D      | Email Address |
| E      | Mobile Number |
| F      | Full Name     |

Format the transaction data as a table, then append these five columns:

```text theme={null}
Member ID, First Name, Last Name, Email Address, Phone Number
```

Enter the corresponding formula in the first transaction row and fill it down:

| Added transaction column | Formula                                               |
| ------------------------ | ----------------------------------------------------- |
| Member ID                | `=XLOOKUP([@Person], People!$F:$F, People!$A:$A, "")` |
| First Name               | `=XLOOKUP([@Person], People!$F:$F, People!$B:$B, "")` |
| Last Name                | `=XLOOKUP([@Person], People!$F:$F, People!$C:$C, "")` |
| Email Address            | `=XLOOKUP([@Person], People!$F:$F, People!$D:$D, "")` |
| Phone Number             | `=XLOOKUP([@Person], People!$F:$F, People!$E:$E, "")` |

Review blank results before importing. A blank means the transaction's `Person` value did not match a `Full Name` value in the People export. When the results are correct, replace the five formula columns with their values, save the enriched transaction worksheet as a CSV, and upload that file to Port.

### Duplicate-Name Warning

`Full Name` is a display name, not a unique identifier. If two people have the same `Last, First` name, XLOOKUP returns the first match and can attach the wrong Member ID and contact details to a transaction. Find duplicate `Full Name` values in the People export, spot-check their transactions, and correct ambiguous rows before importing.

### Remote ID Matching

Enable **Use Remote ID** only when the corresponding people in Planning Center already have the same numeric Remote ID that Port will import from Elvanto. Port preserves a numeric `Member ID` as-is. When Elvanto exports the `Member ID` as a UUID, calculate the numeric value exactly as Port does:

1. Remove the hyphens from the UUID.
2. Interpret the remaining 32 characters as a hexadecimal (base-16) integer and convert it to decimal with a calculator that supports 128-bit integers.
3. Keep the first 10 digits of the decimal result.

For example, `0e55c1d9-0fca-11e7-a046-02f5c23e1fee` becomes `1905446887`. Add the numeric Member ID or converted UUID value—not the raw UUID—to the matching Planning Center person before importing.

If those IDs are not already in Planning Center, leave **Use Remote ID** off so Port matches with the enriched email, phone, and name details. A missing or unrelated Planning Center Remote ID could produce an incorrect match.

A blank `Member ID` is fine — it is the expected XLOOKUP result for a transaction whose `Person` did not match the People export, and Port falls back to email, phone, and name matching for that row. A `Member ID` that is neither a number nor a UUID (`#N/A`, `M-1042`, a truncated UUID) fails the upload with the offending row so the column can be corrected, rather than importing as an unmatched row.

## Required Columns

The final, enriched transaction file must contain these columns. `Member ID`, `Email Address`, and `Phone Number` come from the People export; they are not present in Elvanto's native transaction export.

| Column                | Source                                     |
| --------------------- | ------------------------------------------ |
| Tax Ded.              | Native transaction export                  |
| Member ID             | Added from People export                   |
| Person                | Native transaction export                  |
| Email Address         | Added from People export                   |
| Phone Number          | Added from People export's `Mobile Number` |
| Account / Sub Account | Native transaction export                  |
| Amount                | Native transaction export                  |
| Method                | Native transaction export                  |
| Transaction Date      | Native transaction export                  |
| Check Number          | Native transaction export                  |

## Optional Columns

| Column                 |
| ---------------------- |
| Campus                 |
| First Name             |
| Labels                 |
| Last Name              |
| Mailing Address        |
| Mailing Address Line 2 |
| Mailing City           |
| Mailing State          |
| Mailing Zip Code       |
| payment source         |

## Import Behavior

* Header matching is case-insensitive.
* Unrecognized columns are ignored by the parser.
* Setup includes a Remote ID toggle for this provider using the column "Member ID".
* This provider does not use the Setup template-download option.
* Matching-relevant columns present in this parser: Member ID, Email Address, First Name, Last Name, and Phone Number.

## Related

* [Choosing a Provider](../choosing-a-provider)
* [Uploading Your File](../uploading-your-file)
* [Handling Refunds](../handling-refunds)
