September 23, 2024
The September 23, 2024 Karbon API release adds the ability set or update the complete Client Team record for Client Groups, Contacts and Organizations. It also triggers a Contact webhook notification when the Client Team is updated.
Create or Update Client Team roles
POST/PUT Client Groups, POST/PUT Contacts and POST/PUT Organizations
Endpoints:
- JSONCopied!
https://api.karbonhq.com/v3/ClientGroups
- JSONCopied!
https://api.karbonhq.com/v3/Contacts
- JSONCopied!
https://api.karbonhq.com/v3/Organizations
When creating or updating a Client Group, Contact or Organization, it is now possible to optionally set or update the Client Team assigned.
This is done by providing
ClientTeam
- each User assigned to the ClientOwner, ClientManager, UserDefinedRoles, and/or
- Users and Teams assigned to the Client Team without a specific role
Refer to the ClientGroups API documentation, Contacts API documentation or Organizations API documentation for a full request and response payloads from these endpoints.
Example use case
You want to create a new Client Group, it will have:
- a and anJSONCopied!
Contact
asJSONCopied!Organization
,JSONCopied!Members
- a Client Team comprised of a and one of theJSONCopied!
ClientOwner
propertiesJSONCopied!UserDefinedRole
You'll need:
- To enable at least one of the User Defined Roles by assigning it a name under Karbon Settings > Contact Settings > Client Team
- The for the Organization you want to add to the Client GroupJSONCopied!
OrganizationKey
- The for the Contact you want to add to the Client GroupJSONCopied!
ContactKey
- The for each of the roles you want to assign to the client team members.JSONCopied!
UserId
- You have requested access to the endpoint to retrieve eachJSONCopied!
Users
you wish to assign to the Client TeamJSONCopied!UserId
Make a POST request to the
ClientGroups
https://api.karbonhq.com/v3/ClientGroups
Members
ClientTeam
MemberKey
UserId
Users
For example:
JSONCopied!{
"FullName": "Silvers Family",
"ContactType": "Client",
"UserDefinedIdentifier": "SILVERS",
"RestrictionLevel": "Public",
"EntityDescription": {
"Text": "Silvers Family tax and accounting clients"
},
"Members": [
{
"ContactKey": "34yxkY51knn7"
}, {
"OrganizationKey": "4ncPZ7q96SGc"
}
],
"ClientTeam": [
{
"MemberKey": "JTphCpQqQYg",
"MemberType": "User",
"RoleType": "ClientOwner"
},
{
"MemberKey": "nRML2ngs7WJ",
"MemberType": "User",
"RoleType": "UserDefinedRole1"
}
]
}
If successful, this will return an HTTP status code of
201 Created
ClientGroupKey
ClientGroup
=ClientTeam
ClientTeam
https://api.karbonhq.com/v3/ClientGroups/NwFFZqd3jM3?$expand=ClientTeam
Notes
- Teams can never be assigned to a specific role (e.g. ClientManager), but can be assigned to the ClientTeam - i.e. the property will be always beJSONCopied!
RoleType
JSONCopied!null
- Whilst the ClientTeam array can include a MemberType of , it is not yet possible to request information about a Team and it's members via the APIJSONCopied!
Team
- The property duplicates and overrides the existing ClientManager and ClientOwner properties on client recordsJSONCopied!
ClientTeam
- It is possible to assign Users with a pending registration status to a Client Team role.
- It is not possible to assign an archived Users to a Client Team role.
Contact Webhook notifcations and Client Teams
Any change to the Client Team will trigger a
Contact
ActionType
Updated