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!ContactasJSONCopied!Organization,JSONCopied!Members
- a Client Team comprised of a and one of theJSONCopied!ClientOwnerpropertiesJSONCopied!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!Usersyou wish to assign to the Client TeamJSONCopied!UserId
Make a POST request to the
ClientGroupshttps://api.karbonhq.com/v3/ClientGroupsMembersClientTeamMemberKeyUserIdUsersFor 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 CreatedClientGroupKeyClientGroup=ClientTeamClientTeamhttps://api.karbonhq.com/v3/ClientGroups/NwFFZqd3jM3?$expand=ClientTeamNotes
- 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!RoleTypeJSONCopied!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
ContactActionTypeUpdated