Skip to main content

Blackbaud Raiser's Edge NXT Mapping Functions

Reference for the Blackbaud Raiser's Edge NXT-specific functions you can use in Dynamic Formula mappings and mapping collection filters.

Overview

The Blackbaud Raiser's Edge NXT integration provides a set of ready-made functions you can call when building mappings. They handle common conversions and lookups against your Raiser's Edge NXT tenant and your iPaaS.com data, such as building a typed custom field, reading a value from an iPaaS.com custom field object, or resolving a Raiser's Edge NXT fund by its lookup ID, so you don't have to write that logic yourself.

Where you can use these functions

These functions are available anywhere you write a formula for the Blackbaud Raiser's Edge NXT integration:

  • Dynamic Formula mappings: where a destination field's value is produced by a formula rather than mapped directly from a source field.

  • Mapping collection filters: where a formula decides whether a record should be processed.

  • Error filters: a mapping collection's error filter, which sits alongside its collection filter. When the error filter's formula resolves to true, the transfer raises an error that is held in the Error Logs for review and is not retried automatically.

  • Translation collections: where a translation entry uses a formula as its source value.

How to use them

  • Call a function by name and pass the values it needs in parentheses, for example: BlackbaudCustomFieldAsText(category, value).

  • Each function's signature shows its name, the parameters it accepts (with their types), and the type of value it returns. Use it as the reference for exactly how to call the function.

  • Function names and formula syntax are case-sensitive, so type each name exactly as shown. Whether the values a function matches are treated as case-sensitive varies by function, and is called out in the relevant parameter's description.

  • These functions are synchronous, so you call them directly (no await is required).

  • Each function runs at sync time, against the data in your connected Raiser's Edge NXT tenant and your iPaaS.com subscription.

The functions are grouped below by the area of the integration they support.

Custom Fields

Use these when writing custom fields to a Raiser's Edge NXT record, or reading a custom field value from your iPaaS.com data. Each BlackbaudCustomFieldAs… function builds a typed custom field targeting a named Raiser's Edge NXT custom field category.

BlackbaudCustomFieldAsText

What it does: Builds a Raiser's Edge NXT custom field that holds a plain text value. Use it when your source is a free-form string such as a name, description, note, or label.

Signature: Field BlackbaudCustomFieldAsText(string category, string value)

How to call it: BlackbaudCustomFieldAsText(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

string

Yes

N/A

The text value to store in the custom field. It is written to the Raiser's Edge NXT record exactly as provided.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and text value.

Example: BlackbaudCustomFieldAsText("Preferred Greeting", "Dear Friend") produces a custom field targeting the "Preferred Greeting" category with the text value "Dear Friend".

When to use it: When mapping a free-form string from your source into a Raiser's Edge NXT text custom field.

BlackbaudCustomFieldAsNumber

What it does: Builds a Raiser's Edge NXT custom field that holds a whole-number value. Use it when your source is a count, rank, year, or other integer measurement.

Signature: Field BlackbaudCustomFieldAsNumber(string category, int value)

How to call it: BlackbaudCustomFieldAsNumber(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

int

Yes

N/A

The whole-number value to store in the custom field. Decimal portions are not supported for this field type.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and whole-number value.

Example: BlackbaudCustomFieldAsNumber("Years as Member", 12) produces a custom field targeting the "Years as Member" category with the numeric value 12.

When to use it: When mapping an integer measurement from your source into a Raiser's Edge NXT number custom field.

BlackbaudCustomFieldAsDate

What it does: Builds a Raiser's Edge NXT custom field that holds a complete calendar-date value (day, month, and year).

Signature: Field BlackbaudCustomFieldAsDate(string category, DateTime value)

How to call it: BlackbaudCustomFieldAsDate(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

DateTime

Yes

N/A

The calendar date to store in the custom field. If your source may be missing the day or month, use BlackbaudCustomFieldAsFuzzyDate instead.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and date value.

Example: BlackbaudCustomFieldAsDate("First Gift Date", new DateTime(2024, 5, 14)) produces a custom field targeting the "First Gift Date" category with the date value May 14, 2024.

When to use it: When mapping a complete date from your source into a Raiser's Edge NXT date custom field.

BlackbaudCustomFieldAsCurrency

What it does: Builds a Raiser's Edge NXT custom field that holds a monetary amount with decimal precision.

Signature: Field BlackbaudCustomFieldAsCurrency(string category, double value)

How to call it: BlackbaudCustomFieldAsCurrency(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

double

Yes

N/A

The monetary amount to store in the custom field. Decimal values are supported; the currency symbol and formatting are applied by Raiser's Edge NXT.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and currency value.

Example: BlackbaudCustomFieldAsCurrency("Lifetime Giving Estimate", 12500.75) produces a custom field targeting the "Lifetime Giving Estimate" category with the currency value 12,500.75.

When to use it: When mapping a monetary amount from your source into a Raiser's Edge NXT currency custom field.

BlackbaudCustomFieldAsBoolean

What it does: Builds a Raiser's Edge NXT custom field that holds a true-or-false value. Use it when your source is a yes/no indicator.

Signature: Field BlackbaudCustomFieldAsBoolean(string category, bool value)

How to call it: BlackbaudCustomFieldAsBoolean(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

bool

Yes

N/A

The true-or-false value to store in the custom field. Provide true for yes and false for no.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and boolean value.

Example: BlackbaudCustomFieldAsBoolean("Do Not Mail", true) produces a custom field targeting the "Do Not Mail" category with the boolean value true.

When to use it: When mapping a yes/no indicator from your source into a Raiser's Edge NXT boolean custom field.

BlackbaudCustomFieldAsCodeTableEntry

What it does: Builds a Raiser's Edge NXT custom field whose value must match one of a predefined list of allowed entries (a code table).

Signature: Field BlackbaudCustomFieldAsCodeTableEntry(string category, string value)

How to call it: BlackbaudCustomFieldAsCodeTableEntry(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

string

Yes

N/A

The code table entry value to store. It must exactly match an entry that already exists in the associated Raiser's Edge NXT code table.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and code table entry value.

Example: BlackbaudCustomFieldAsCodeTableEntry("Event Interest", "Annual Gala") produces a custom field targeting the "Event Interest" category with the code table entry "Annual Gala".

When to use it: When mapping a source value that must correspond to an existing Raiser's Edge NXT code table entry.

BlackbaudCustomFieldAsConstituentId

What it does: Builds a Raiser's Edge NXT custom field that references another constituent by their Raiser's Edge NXT constituent ID.

Signature: Field BlackbaudCustomFieldAsConstituentId(string category, string value)

How to call it: BlackbaudCustomFieldAsConstituentId(category, value)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

value

string

Yes

N/A

The Raiser's Edge NXT constituent ID to reference. It must be the existing system ID of a constituent already in Raiser's Edge NXT.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and a reference to another constituent.

Example: BlackbaudCustomFieldAsConstituentId("Primary Contact", "280") produces a custom field targeting the "Primary Contact" category with a reference to constituent ID 280.

When to use it: When mapping a relationship into a Raiser's Edge NXT custom field configured to link to another constituent.

BlackbaudCustomFieldAsFuzzyDate

What it does: Builds a Raiser's Edge NXT custom field that holds a partial or approximate date. Use it when your source date may be missing a day, month, or year.

Signature: Field BlackbaudCustomFieldAsFuzzyDate(string category, int? day, int? month, int? year)

How to call it: BlackbaudCustomFieldAsFuzzyDate(category, day, month, year)

Parameter

Type

Required

Default

Description

category

string

Yes

N/A

The exact name of the custom field category in Raiser's Edge NXT that the value should be written to.

day

int?

Yes

N/A

The day of the month, from 1 through 31. Pass null when the day is not known.

month

int?

Yes

N/A

The month number, from 1 through 12. Pass null when the month is not known.

year

int?

Yes

N/A

The full four-digit year. Pass null when the year is not known.

Returns: Field. A Raiser's Edge NXT custom field populated with the specified category and a partial date value.

Example: BlackbaudCustomFieldAsFuzzyDate("Approximate Joined", null, 6, 2005) produces a custom field targeting the "Approximate Joined" category representing June of 2005 with an unknown day.

When to use it: When mapping an approximate or incomplete date into a Raiser's Edge NXT date custom field.

GetValueFromCustomField

What it does: Reads the value of a named custom field from an iPaaS.com custom field object (for example a record's AdditionalProperties). Returns the value in its original type, or nothing if the field is not present.

Signature: object GetValueFromCustomField(object customFieldObj, object textFieldName)

How to call it: GetValueFromCustomField(customFieldObj, textFieldName)

Parameter

Type

Required

Default

Description

customFieldObj

object

Yes

N/A

The iPaaS.com custom field object (typically a record's AdditionalProperties), holding custom-field name/value pairs.

textFieldName

object

Yes

N/A

The name of the custom field to read from the iPaaS.com custom field object.

Returns: object. The value of the requested custom field in its original type (text, number, and so on), or nothing if the field is not present.

Example: GetValueFromCustomField(AdditionalProperties, "# of Family Members") returns 2 when the "# of Family Members" custom field holds 2.

When to use it: When you need to read a specific custom field value out of an iPaaS.com record's custom field object during mapping.

Addresses

Use this when mapping address-derived data to a Raiser's Edge NXT constituent.

iPaaSCustomerGetPrimaryPhone

What it does: Returns the phone number from an iPaaS.com customer's primary address. It uses the primary billing address if one is marked primary, otherwise the primary shipping address, otherwise the first address in the list.

Signature: string iPaaSCustomerGetPrimaryPhone(object addresses)

How to call it: iPaaSCustomerGetPrimaryPhone(addresses)

Parameter

Type

Required

Default

Description

addresses

object

Yes

N/A

The iPaaS.com customer's address list. Pass the iPaaS.com customer's addresses property as the source.

Returns: string. The phone number as a text value, or nothing when no phone is available on any address.

Example: For a customer whose primary billing address has phone "(512) 867-5309", iPaaSCustomerGetPrimaryPhone(addresses) returns "(512) 867-5309".

When to use it: In a From iPaaS mapping, to set a Raiser's Edge NXT constituent's phone from the iPaaS.com customer's primary address (iPaaS.com stores the phone on each address rather than on the customer).

Gifts

Use this when mapping gift data that references a Raiser's Edge NXT fund.

BlackbaudFundGetIdByLookupId

What it does: Resolves a Raiser's Edge NXT fund's human-readable lookup ID (the identifier an operator sees in the Raiser's Edge NXT interface, for example "GARDEN") into the numeric fund ID (for example "7") that the gift API expects. Returns nothing if the input is empty or no fund matches.

Signature: string BlackbaudFundGetIdByLookupId(string lookupId)

How to call it: BlackbaudFundGetIdByLookupId(lookupId)

Parameter

Type

Required

Default

Description

lookupId

string

Yes

N/A

The fund's lookup ID as configured in Raiser's Edge NXT (for example "GARDEN"). The match is not case-sensitive.

Returns: string. The corresponding numeric Raiser's Edge NXT fund ID as text, or nothing if the input is empty or no fund matches.

Example: BlackbaudFundGetIdByLookupId("GARDEN") returns "7" on a tenant where the fund with lookup ID "GARDEN" has the numeric ID 7.

When to use it: When mapping a gift's fund and your source provides the Raiser's Edge NXT fund lookup ID rather than the numeric fund ID.

Related Documents

Did this answer your question?