GoodFunds Help Center
Microsoft Dynamics 365 (Developer)

Configuration in GoodFunds

Enter your Dynamics credentials, test the connection, and map GoodFunds fields to Dynamics contact attributes.

Configuration happens in the GoodFunds integration wizard for the Microsoft Dynamics provider. The form is split into two steps: the credentials and — after a successful connection test — the field mapping & update strategy.

Step 1 — Credentials

FieldTypeDescription
Tenant IDTextThe Entra ID (Azure AD) tenant id of the organization.
Client IDTextThe app registration's application/client id.
Client SecretPasswordThe app registration client secret. Stored encrypted.
Environment URLTextThe Dataverse environment base URL, e.g. https://org123.crm4.dynamics.com.

All four fields are required. The client secret field is masked and the value is persisted encrypted in the credential's configJson. Leading/trailing whitespace is stripped on save to avoid the AADSTS70011 invalid_scope pitfall (see Azure setup).

Test connection

The wizard's Test connection action runs the provider's validateCredentialsgetProviderStatus, which calls the Dataverse /WhoAmI endpoint.

  • Success — the second step (field mapping + update strategy) is unlocked and the available Dynamics attributes are loaded.
  • Failure — the status is reported as DOWN with the error message; the mapping controls stay disabled.

Step 2 — Field mapping

The mapping control has two columns:

  • Left: GoodFunds contact fields.
  • Right: Microsoft Dynamics contact attributes, discovered live from your environment's metadata.

This produces a mapping of {Dynamics attribute → GoodFunds field}, which the CRM sync consumes when building each contact payload.

The standard Dynamics contact attributes used by the provider are:

Dynamics attributeMeaningGoodFunds field
firstnameFirst namefirstName
lastnameLast namelastName
emailaddress1Primary emailemail
telephone1Phonephone
address1_line1Streetaddress.street
address1_line2Address line 2
address1_postalcodePostal codeaddress.postcode
address1_cityCityaddress.city
address1_stateorprovinceState / province
address1_countryCountryaddress.country
birthdateDate of birthbirthDate
salutationSalutationsalutation
contactidDynamics ID (GUID)externalId

Field discovery reads the full contact attribute set from the Dataverse metadata API, so any custom attributes in your environment are selectable too. Lookup, owner, unique-identifier and virtual attributes are filtered out because they are not directly mappable target fields.

Contact Update Strategy

Controls how an existing Dynamics contact is treated when a GoodFunds contact with the same email already exists. (New contacts are always created.)

StrategyBehaviour
SKIPExisting contacts are not updated. New form data is ignored.
UPDATE_IF_EMPTYOnly empty fields on the Dynamics side are filled. Existing values are kept.
UPDATE_IF_CHANGED (default)Fields are updated when the value differs. Existing values are overwritten.

The merge logic is shared with the rest of the CRM integration via ContactAttributeMerger, so the behaviour matches the other providers. If the strategy yields no fields to change, the update is skipped and reported as a success (no-op).

Continue with the Architecture & developer reference.

On this page