Overview
The Podium integration provides a set of ready-made functions you can call when building mappings. They handle common lookups and conversions for Podium, such as finding a customer's name, email, or identifier by ID or email, resolving location UIDs and names, formatting a phone number to Podium's expected format, and reading values from attribute and object lists, 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 Podium 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:
await GetCustomerNameByEmailAddress(emailAddress).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.
Some of these functions are asynchronous (their signature returns a
Task) and must be called withawait; the rest are synchronous and are called directly. Each function's How to call it example shows the correct form.Optional parameters are marked in the parameter table, along with the value used when you omit them.
Each function runs at sync time, against the data in your connected Podium account and your iPaaS.com subscription.
The functions are grouped below by the area of the integration they support.
Customers
Use these to resolve a Podium customer's name, email, or identifier.
GetCustomerNameByCustomerId
What it does: Returns a Podium customer's name for a given iPaaS.com customer ID, by resolving the customer's Podium identifier and reading the Podium record. Returns nothing if no match is found or the customer has no name.
Signature: Task<string> GetCustomerNameByCustomerId(string Id)
How to call it: await GetCustomerNameByCustomerId(Id)
Parameter | Type | Required | Default | Description |
Id |
| Yes | N/A | The iPaaS.com customer ID whose Podium customer name you need. |
Returns: string. The Podium customer's name, or nothing if no match is found.
Example: await GetCustomerNameByCustomerId("12345") returns the Podium customer's name, for example "John Doe".
When to use it: When mapping to Podium and you have the iPaaS.com customer ID but need the customer's Podium name.
GetCustomerNameByEmailAddress
What it does: Returns a Podium customer's name for a given email address. Returns nothing if no customer matches or the customer has no name.
Signature: Task<string> GetCustomerNameByEmailAddress(string emailAddress)
How to call it: await GetCustomerNameByEmailAddress(emailAddress)
Parameter | Type | Required | Default | Description |
emailAddress |
| Yes | N/A | The iPaaS.com customer email address to look up in Podium. |
Returns: string. The Podium customer's name, or nothing if no customer matches.
Example: await GetCustomerNameByEmailAddress("test@example.com") returns the Podium customer's name, for example "Jane Doe".
When to use it: When you have a customer's email and need their Podium name.
GetCustomerEmailByCustomerId
What it does: Returns a Podium customer's first email address for a given iPaaS.com customer ID, by resolving the customer's Podium identifier and reading the Podium record. Returns nothing if no match is found or the customer has no email.
Signature: Task<string> GetCustomerEmailByCustomerId(string Id)
How to call it: await GetCustomerEmailByCustomerId(Id)
Parameter | Type | Required | Default | Description |
Id |
| Yes | N/A | The iPaaS.com customer ID whose Podium email you need. |
Returns: string. The Podium customer's first email address, or nothing if no match is found.
Example: await GetCustomerEmailByCustomerId("12345") returns the customer's first Podium email, for example "test@example.com".
When to use it: When mapping to Podium and you have the iPaaS.com customer ID but need the customer's Podium email.
GetCustomerIdentifierByEmailAddress
What it does: Returns a Podium customer's external identifier for a given email address. Returns nothing if no customer matches.
Signature: Task<string> GetCustomerIdentifierByEmailAddress(string emailAddress)
How to call it: await GetCustomerIdentifierByEmailAddress(emailAddress)
Parameter | Type | Required | Default | Description |
emailAddress |
| Yes | N/A | The iPaaS.com customer email address to look up in Podium. |
Returns: string. The Podium customer external identifier, or nothing if no customer matches.
Example: await GetCustomerIdentifierByEmailAddress("test@example.com") returns the Podium customer identifier, for example "EXT-12345".
When to use it: When you have a customer's email and need their Podium external identifier.
Locations
Use these to resolve Podium location UIDs and names.
GetLocationsFromNameOrId
What it does: Looks up Podium locations by name or ID and returns their unique identifiers (UIDs). Returns nothing if no location matches.
Signature: Task<List<string>> GetLocationsFromNameOrId(List<string> locationsIdOrName)
How to call it: await GetLocationsFromNameOrId(locationsIdOrName)
Parameter | Type | Required | Default | Description |
locationsIdOrName |
| Yes | N/A | The list of Podium location names or IDs to look up. |
Returns: List<string>. The Podium location UIDs for the matching locations, or nothing if none match.
Example: await GetLocationsFromNameOrId(new List<string> { "Test A location" }) returns the UIDs of the matching Podium locations.
When to use it: When mapping to Podium and you need the location UIDs for a set of location names or IDs.
GetLocationNamesFromLocationObject
What it does: Takes a list of Podium location objects, reads their UIDs, looks up each location name, and joins the names into a single string. Returns nothing if the input is empty or no names are found.
Signature: Task<string> GetLocationNamesFromLocationObject(object listOfObject, string uidSeparator = "|")
How to call it: await GetLocationNamesFromLocationObject(listOfObject)
Parameter | Type | Required | Default | Description |
listOfObject |
| Yes | N/A | The list of Podium location objects to read UIDs from. |
uidSeparator |
| No |
| The separator used to join the location names. |
Returns: string. The location names joined by the separator, or nothing if none are found.
Example: await GetLocationNamesFromLocationObject(locations, ",") returns a value such as "New York,Los Angeles,Chicago".
When to use it: When mapping a set of Podium locations to a single string of their names.
Phone Numbers
Use this to prepare a phone number in Podium's expected format.
GetPodiumFormattedPhoneNumber
What it does: Formats a raw phone number into Podium's expected international format by removing non-digit characters and applying country-code rules (supports the US, UK, Canada, Australia, Ireland, and New Zealand). Returns nothing if the number cannot be formatted.
Signature: string GetPodiumFormattedPhoneNumber(object phone_number)
How to call it: GetPodiumFormattedPhoneNumber(phone_number)
Parameter | Type | Required | Default | Description |
phone_number |
| Yes | N/A | The raw iPaaS.com customer phone number (may include punctuation). |
Returns: string. The phone number in Podium's international format (prefixed with +), or nothing if it cannot be formatted.
Example: GetPodiumFormattedPhoneNumber("+13015377411") returns "+13015377411".
When to use it: When mapping a phone number to Podium and you need it in Podium's expected format.
Attributes and Lists
Use these to read values from attribute lists and to join UIDs from a list of objects.
GetAttributesByLabel
What it does: Finds an attribute in a list by its label and returns the requested field's value from it. Returns nothing if the label or field is not found.
Signature: object GetAttributesByLabel(object listOfAttributes, string requestedLabel, string requestedField = "Value")
How to call it: GetAttributesByLabel(listOfAttributes, requestedLabel)
Parameter | Type | Required | Default | Description |
listOfAttributes |
| Yes | N/A | The list of attributes to search. |
requestedLabel |
| Yes | N/A | The label to find in the list. The match is not case-sensitive. |
requestedField |
| No |
| The field to read from the matched attribute (for example |
Returns: object. The requested field's value from the matched attribute, or nothing if the label or field is not found.
Example: GetAttributesByLabel(listOfAttributes, "Birthday", "uid") returns the uid of the Birthday attribute, for example "12345".
When to use it: When mapping a value from a labeled attribute in a Podium contact's attribute list.
GetUidsFromListOfObject
What it does: Reads the UID from each object in a list and joins the UIDs into a single string. Returns nothing if the list is empty or has no UIDs.
Signature: string GetUidsFromListOfObject(object listOfObject, string uidSeparator = "|")
How to call it: GetUidsFromListOfObject(listOfObject)
Parameter | Type | Required | Default | Description |
listOfObject |
| Yes | N/A | The list of objects to read UIDs from. |
uidSeparator |
| No |
| The separator used to join the UIDs. |
Returns: string. The UIDs joined by the separator, or nothing if there are none.
Example: GetUidsFromListOfObject(listOfObject, ",") returns a value such as "123,456,789".
When to use it: When mapping a set of objects to a single string of their UIDs.
