AddPersonToOrganization
Adds a person to an organization by adding the organization ID to the person’s organization list.
Syntax
AddPersonToOrganization(personId, organizationId)
Parameters
- personId (string): The GUID string of the person to update
- organizationId (string): The GUID string of the organization to add
Returns
- boolean:
trueif successful (or already a member),falseon error
Description
Adds an organization to a person’s organizationIds array, allowing the person to be associated with multiple organizations. This function is idempotent - if the person is already a member of the specified organization, it returns true without making any changes.
The function performs the following validations:
- Verifies the organization exists before adding
- Verifies the person exists
- Checks if the person is already a member (returns
trueif so) - Ensures the person doesn’t exceed the maximum of 50 organizations
Behavior
| Scenario | Result |
|---|---|
| Person and organization exist, not yet a member | Adds org, returns true |
| Person already belongs to organization | Returns true (idempotent) |
| Person does not exist | Returns false |
| Organization does not exist | Returns false |
| Person already has 50 organizations | Returns false |
Examples
# Add person to organization
var success = AddPersonToOrganization(personId, orgId)
if success then
Log("Information", "Person added to organization successfully")
else
Log("Error", "Failed to add person to organization")
end
# Idempotent - safe to call multiple times
AddPersonToOrganization(personId, orgId) # First call adds
AddPersonToOrganization(personId, orgId) # Second call returns true (already member)
# Add person to multiple organizations
var orgs = ["org-id-1", "org-id-2", "org-id-3"]
foreach orgId in orgs do
var success = AddPersonToOrganization(personId, orgId)
if success then
Log("Information", "Added to org: " + orgId)
else
Log("Warning", "Failed to add to org: " + orgId)
end
end
# In AfterPersonCreated hook - add to additional organizations
AfterPersonCreated:
var additionalOrgs = GetOrganizationsBySet("Premium Partners")
foreach org in additionalOrgs do
AddPersonToOrganization(Data.Person.Id, org.id)
end
Log("Information", "Added person to " + Length(additionalOrgs) + " partner organizations")
# Dynamic endpoint - assign person to organization
var personId = Data.Request.body.personId
var orgId = Data.Request.body.organizationId
if personId is null or orgId is null then
Data._payload = {"error": "personId and organizationId are required"}
Data._statusCode = 400
return
end
var success = AddPersonToOrganization(personId, orgId)
if success then
Data._payload = {"success": true, "message": "Person added to organization"}
Data._statusCode = 200
else
Data._payload = {"error": "Failed to add person to organization"}
Data._statusCode = 400
end
Related Functions
- RemovePersonFromOrganization - Remove a person from an organization
- GetPersonById - Get person details including organization membership
- GetPersonByEmail - Find a person by email address
- GetAllPersonsByEmail - Find all persons with matching email
- UpdatePerson - Update person properties