Lifecycle Manager API: Client Groups and Template Support

Summary

Adds new client group, goal template, initiative template, asset lookup, and assessment question comment endpoints across Lifecycle Manager. This release also updates initiative endpoints to support rich-text executive summaries, changes meeting attendee endpoints to use wrapped request bodies and 201 Created on add operations, and extends deliverable endpoints with support for a new Custom component type plus optional section naming where applicable.


Changes

Lifecycle Manager

  • Endpoint: PUT /lifecycle-manager/v1/assessments/{assessment_id}/questions/{question_id}/comment/public

    • Type: addition
    • Notes: Adds a public assessment-question comment upsert endpoint.
  • Endpoint: PUT /lifecycle-manager/v1/assessments/{assessment_id}/questions/{question_id}/comment/internal

    • Type: addition
    • Notes: Adds an internal assessment-question comment upsert endpoint.
  • Endpoint: GET /lifecycle-manager/v1/assessments

    • Type: change
    • Notes: Assessment list responses now include record_created_at on assessment items.
  • Endpoint: GET /lifecycle-manager/v1/assessments/{id}

    • Type: change
    • Notes: Assessment detail responses now include record_created_at on the assessment and comment_json plus record_created_at on assessment question comments.
  • Endpoint: POST /lifecycle-manager/v1/assets/hardware/attached-initiatives/lookup

    • Type: addition
    • Notes: Adds a hardware-to-initiative lookup endpoint for retrieving initiatives attached to a hardware asset.
  • Endpoint: GET /lifecycle-manager/v1/client-groups

    • Type: addition
    • Notes: Adds a client group list endpoint.
  • Endpoint: GET /lifecycle-manager/v1/client-groups/{client_group_id}

    • Type: addition
    • Notes: Adds a client group detail endpoint.
  • Endpoint: POST /lifecycle-manager/v1/client-groups/{client_group_id}/assignments

    • Type: addition
    • Notes: Adds an assignment endpoint for attaching clients and users to a client group.
  • Endpoint: DELETE /lifecycle-manager/v1/client-groups/{client_group_id}/assignments

    • Type: addition
    • Notes: Adds an unassignment endpoint for removing clients and users from a client group.
  • Endpoint: POST /lifecycle-manager/v1/clients/client-groups/lookup

    • Type: addition
    • Notes: Adds a client-to-client-group lookup endpoint.
  • Endpoint: GET /lifecycle-manager/v1/goal-templates

    • Type: addition
    • Notes: Adds a goal template list endpoint.
  • Endpoint: POST /lifecycle-manager/v1/goal-templates

    • Type: addition
    • Notes: Adds a goal template create endpoint.
  • Endpoint: GET /lifecycle-manager/v1/goal-templates/{goal_template_id}

    • Type: addition
    • Notes: Adds a goal template detail endpoint.
  • Endpoint: PUT /lifecycle-manager/v1/goal-templates/{goal_template_id}

    • Type: addition
    • Notes: Adds a goal template update endpoint.
  • Endpoint: DELETE /lifecycle-manager/v1/goal-templates/{goal_template_id}

    • Type: addition
    • Notes: Adds a goal template delete endpoint.
  • Endpoint: POST /lifecycle-manager/v1/goals/create-from/template/{goal_template_id}

    • Type: addition
    • Notes: Adds a goal creation endpoint that instantiates a goal from a saved template.
  • Endpoint: GET /lifecycle-manager/v1/initiative-templates

    • Type: addition
    • Notes: Adds an initiative template list endpoint.
  • Endpoint: POST /lifecycle-manager/v1/initiative-templates

    • Type: addition
    • Notes: Adds an initiative template create endpoint.
  • Endpoint: GET /lifecycle-manager/v1/initiative-templates/{initiative_template_id}

    • Type: addition
    • Notes: Adds an initiative template detail endpoint.
  • Endpoint: PUT /lifecycle-manager/v1/initiative-templates/{initiative_template_id}

    • Type: addition
    • Notes: Adds an initiative template update endpoint.
  • Endpoint: DELETE /lifecycle-manager/v1/initiative-templates/{initiative_template_id}

    • Type: addition
    • Notes: Adds an initiative template delete endpoint.
  • Endpoint: PUT /lifecycle-manager/v1/initiatives/{initiative_id}/assets

    • Type: addition
    • Notes: Adds an endpoint for attaching hardware assets to an initiative.
  • Endpoint: DELETE /lifecycle-manager/v1/initiatives/{initiative_id}/assets

    • Type: addition
    • Notes: Adds an endpoint for detaching hardware assets from an initiative.
  • Endpoint: PUT /lifecycle-manager/v1/initiatives/{initiative_id}/template/{initiative_template_id}/apply

    • Type: addition
    • Notes: Adds an endpoint for applying an initiative template to an existing initiative.
  • Endpoint: POST /lifecycle-manager/v1/initiatives

    • Type: addition
    • Notes: Initiative create requests now support executive_summary_json. The legacy executive_summary field remains available but is deprecated.
  • Endpoint: PUT /lifecycle-manager/v1/initiatives/{id}

    • Type: addition
    • Notes: Initiative update requests now support executive_summary_json. The legacy executive_summary field remains available but is deprecated.
  • Endpoint: GET /lifecycle-manager/v1/initiatives

    • Type: change
    • Notes: Initiative list responses now include executive_summary_json.
  • Endpoint: GET /lifecycle-manager/v1/initiatives/{id}

    • Type: change
    • Notes: Initiative detail responses now include executive_summary_json.
  • Endpoint: POST /lifecycle-manager/v1/meetings/{id}/attendees/contacts

    • Type: change
    • Notes: The request body now uses an object wrapper with contact_keys instead of a raw array, and the success response changed from 200 OK to 201 Created.
  • Endpoint: DELETE /lifecycle-manager/v1/meetings/{id}/attendees/contacts

    • Type: change
    • Notes: The request body now uses an object wrapper with contact_keys instead of a raw array.
  • Endpoint: POST /lifecycle-manager/v1/meetings/{id}/attendees/users

    • Type: change
    • Notes: The request body now uses an object wrapper with user_keys instead of a raw array, and the success response changed from 200 OK to 201 Created.
  • Endpoint: DELETE /lifecycle-manager/v1/meetings/{id}/attendees/users

    • Type: change
    • Notes: The request body now uses an object wrapper with user_keys instead of a raw array.
  • Endpoint: GET /lifecycle-manager/v1/clients/{client-id}/deliverables/catalog/components

    • Type: addition
    • Notes: Deliverable catalog responses now support the Custom component type.
  • Endpoint: GET /lifecycle-manager/v1/deliverables/templates/catalog/components

    • Type: addition
    • Notes: Deliverable template catalog responses now support the Custom component type.
  • Endpoint: POST /lifecycle-manager/v1/clients/{client-id}/deliverables

    • Type: addition
    • Notes: Deliverable create requests now support the Custom component type in section components and optional section name values.
  • Endpoint: GET /lifecycle-manager/v1/deliverables/{deliverable-id}

    • Type: change
    • Notes: Deliverable detail responses now support the Custom component type in section components.
  • Endpoint: PATCH /lifecycle-manager/v1/deliverables/{deliverable-id}

    • Type: change
    • Notes: Deliverable patch requests now support the Custom component type in section components and optional section name values.
  • Endpoint: POST /lifecycle-manager/v1/clients/{client-id}/deliverables/create-from/template/{template-id}

    • Type: change
    • Notes: Deliverables created from templates now support the Custom component type in returned section components.
  • Endpoint: POST /lifecycle-manager/v1/deliverables/templates

    • Type: addition
    • Notes: Deliverable template create requests now support the Custom component type in section components and optional section name values.
  • Endpoint: GET /lifecycle-manager/v1/deliverables/templates/{template-id}

    • Type: change
    • Notes: Deliverable template detail responses now support the Custom component type in section components.
  • Endpoint: PATCH /lifecycle-manager/v1/deliverables/templates/{template-id}

    • Type: change
    • Notes: Deliverable template patch requests now support the Custom component type in section components and optional section name values.
  • Endpoint: POST /lifecycle-manager/v1/deliverables/templates/create-from/template/{template-id}

    • Type: change
    • Notes: Templates created from templates now support the Custom component type in returned section components.
  • Endpoint: POST /lifecycle-manager/v1/deliverables/templates/create-from/deliverable/{deliverable-id}

    • Type: change
    • Notes: Templates created from deliverables now support the Custom component type in returned section components.

Dates

  • Effective: [2026-04-17]