Release Notes

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

JSONCopied!
ClientTeam
property in the request, which is an array containing a record for:

  • 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
    JSONCopied!
    Contact
    and an
    JSONCopied!
    Organization
    as
    JSONCopied!
    Members
    ,
  • a Client Team comprised of a
    JSONCopied!
    ClientOwner
    and one of the
    JSONCopied!
    UserDefinedRole
    properties

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
    JSONCopied!
    OrganizationKey
    for the Organization you want to add to the Client Group
  • The
    JSONCopied!
    ContactKey
    for the Contact you want to add to the Client Group
  • The
    JSONCopied!
    UserId
    for each of the roles you want to assign to the client team members.
  • You have requested access to the
    JSONCopied!
    Users
    endpoint to retrieve each
    JSONCopied!
    UserId
    you wish to assign to the Client Team

Make a POST request to the

JSONCopied!
ClientGroups
endpoint
JSONCopied!
https://api.karbonhq.com/v3/ClientGroups
with a request payload that includes the Client Group
JSONCopied!
Members
and
JSONCopied!
ClientTeam
properties. The
JSONCopied!
MemberKey
for each assigned Client Team role will be set to a
JSONCopied!
UserId
for a member of your firm. You can retrieve a list of these Ids from the
JSONCopied!
Users
endpoint.

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

JSONCopied!
201 Created
with a response that includes the
JSONCopied!
ClientGroupKey
of the newly created Client Group. You can then use the GET
JSONCopied!
ClientGroup
endpoint with the query parameter
JSONCopied!
$expand=ClientTeam
to verify the
JSONCopied!
ClientTeam
was correctly assigned, e.g.
JSONCopied!
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
    JSONCopied!
    RoleType
    property will be always be
    JSONCopied!
    null
  • Whilst the ClientTeam array can include a MemberType of
    JSONCopied!
    Team
    , it is not yet possible to request information about a Team and it's members via the API
  • The
    JSONCopied!
    ClientTeam
    property duplicates and overrides the existing ClientManager and ClientOwner properties on client records
  • 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

JSONCopied!
Contact
webhook notification with the
JSONCopied!
ActionType
property set to
JSONCopied!
Updated
.