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

# Neon Address Mapping

> Detailed mapping between Neon CRM address objects and WeGive donor address records

# Address Object Mapping

<Warning>
  **Address sync to Neon is dead code — it has never actually run.** `NeonIntegration::syncAddress(Address $address)` is fully implemented (push logic, field mapping, Redis lock), but it is never called anywhere in the codebase. `Neon.php` (the integration's real entry point, extending `CrmIntegration`) has no `pushAddress()` method — and `CrmIntegration::listPushMethods()` only discovers push methods via `method_exists($this, 'push' . ucfirst($model))`, so without that method, `syncAddress()` is simply unreachable. There is no model observer or event hook calling it either. This is a known issue — low priority, since WeGive currently has no active customer on this integration, but a real gap if that ever changes.
</Warning>

This page describes what `generateAddressParams()`/`syncAddress()` **would** send, for reference, in case the integration is ever revived and this code path gets wired up — not something currently happening for any organization.

## What the (currently unreachable) mapping would send

| WeGive Field | Neon Field |
| - | - |
| `address.address_1` | `addressLine1` |
| `address.address_2` | `addressLine2` |
| `address.city` | `city` |
| `address.zip` | `zipCode` |
| `address.primary` | `isPrimaryAddress` |

<Warning>
  Even setting aside that this code never runs, there is no `state`/`country` mapping in `generateAddressParams()` at all — no `stateProvince.code`, no `country.code`. Don't expect either field to sync via this path even if `pushAddress()` were added.
</Warning>

### Contact Information (phone/fax)

| WeGive Field | Neon Field | Neon Type Field |
| - | - | - |
| `donor.mobile_phone` | `phone1` | `phone1Type` = `"Mobile"` |
| `donor.office_phone` | `phone2` | `phone2Type` = `"Work"` |
| `donor.home_phone` | `phone3` | `phone3Type` = `"Home"` |
| `donor.fax` | `fax` | `faxType` = `"Home"` |

<Note>
  No phone formatting/normalization is applied — whatever's stored in WeGive would be sent as-is, if this code path were ever reachable.
</Note>

## Where phone/address data actually does sync today

Since `syncAddress()` never runs, the only place address/phone data reaches Neon at all is the **donor account push** (`generateAccountParams()`, a completely separate code path):

* Mailing address (and, for individuals, billing address) is included inline in `primaryContact.addresses` on the account push — but that inline copy has **no phone/fax fields** and no `country` field
* See [Account Mapping](/external/onboarding/neon/data-mapping/account) for the actual, reachable address data that syncs

<Warning>
  This means phone numbers never reach Neon via this integration at all today — not via the dead `syncAddress()` path, and not via the account push (which doesn't include phone fields in its inline address copy). Fax also never reaches Neon.
</Warning>

## No Pull

There is also no pull for addresses — `SyncNeon.php` has no `pullAddress()`/`importAddresses()` method. Even if `syncAddress()` were wired up for push, address data would remain one-way.

## Integration Fields

| WeGive Field (stored) | Neon Field |
| - | - |
| `address.neon_id` | `id` (address id, would-be correlation key) |
| — | `accountId` — the donor's `neon_account_id` |

## If This Is Ever Revived

The fix is straightforward: add a `pushAddress(Address $address)` method to `app/Integrations/Neon.php` calling `$this->integration->syncAddress($address)`, mirroring `pushDonor()`/`pushCampaign()`/`pushTransaction()`/`pushScheduledDonation()` in the same class. Until that ships, don't rely on this page describing live behavior.

## Related Documentation

* [Account Mapping](/external/onboarding/neon/data-mapping/account) — the only address data that actually reaches Neon today
* [Data Mapping Overview](/external/onboarding/neon/data-mapping/overview)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.