Add or Update Person
action_network.upsert_person
ActionCRM & salesconnection required
Calls the Action Network API with the connection's credentials.
Add a person through the Person Signup Helper, updating the existing record when the email address or phone number already matches one.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- API key
- Providers
- Action Network
- Secret shape
- the API key, or {"api_key": "…"}
- Config it needs
- base_url
- Resolved by
- config.connection_id, else node.connection_id
Configuration
8 fields, none required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
email_address The person's email address; Action Network deduplicates people on it. | string | No | — | email format | ada@example.com |
phone_number The person's phone number, digits only, as Action Network stores it. | string | No | — | — | 2021234444 |
given_name The person's first name. | string | No | — | — | Ada |
family_name The person's last name. | string | No | — | — | Lovelace |
postal_code The person's postal code, which Action Network uses for geographic targeting. | string | No | — | — | 20009 |
custom_fields Custom field values for the person, keyed by the custom field's name. | object | No | — | — | {"employer":"Acme"} |
add_tags Names of existing tags to add to the person; unmatched names are ignored. | array | No | — | array of string | ["volunteer"] |
remove_tags Names of existing tags to remove from the person. | array | No | — | array of string | ["inactive"] |
- At least one of email_address, phone_number must be set.
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"add_tags": [
"volunteer"
],
"custom_fields": {
"employer": "Acme"
},
"email_address": "ada@example.com",
"family_name": "Lovelace",
"given_name": "Ada",
"phone_number": "2021234444",
"postal_code": "20009",
"remove_tags": [
"inactive"
]
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
identifiers Namespaced ids, the first being action_network:<uuid>. | array | — |
given_name The person's first name, empty when unknown. | string | — |
family_name The person's last name, empty when unknown. | string | — |
email_addresses Each address with its status and primary flag. | array | — |
phone_numbers Each phone number with its status and primary flag. | array | — |
postal_addresses Each postal address, including its postal code. | array | — |
custom_fields The custom field values held on the person. | object | — |
created_date ISO-8601 timestamp of when the person was created. | string | — |
modified_date ISO-8601 timestamp of the last change to the person. | string | — |
{
"created_date": "",
"custom_fields": {},
"email_addresses": [],
"family_name": "",
"given_name": "",
"identifiers": [],
"modified_date": "",
"phone_numbers": [],
"postal_addresses": []
}Related Action Network nodes
See Add or Update Person run in a workflow.
In a technical demo we add the Action Network connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.