Action Plans
Create and manage action plans — named containers that group improvement actions under a shared goal. Every action must belong to a plan.
Returns a paginated slice of action plans, sorted newest-first. Each plan includes its actions — filtered when any filter param is set. With filters: only plans with at least one matching action are returned; each plan's actions[] contains only matching actions; total counts matching plans. Without filters: all plans, all actions. from / to are zero-based offset / exclusive end index.
SessionId
Zero-based start index (default 0)
0Exclusive end index (default 10)
10Filter plans whose actions have this status
Filter plans whose actions target this focus type
Filter plans whose actions target this hierarchy
64f8a0e2d5b7c9a1e3f4a5b6Filter plans whose actions include this assignee
64f8a0e2d5b7c9a1e3f4a5b6Filter plans whose actions target this action type
Free-text search on action title and description (case-insensitive contains)
Paginated plan list, each with their (filtered) actions
GET /api/v1/company/action-plans HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Accept: */*
Paginated plan list, each with their (filtered) actions
{
"from": 1,
"to": 1,
"total": 1,
"result": [
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"actions": [
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"planId": "507f1f77bcf86cd799439013",
"plan": {
"id": "507f1f77bcf86cd799439013",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
}
},
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"focusItems": [
{
"focusType": "SCORE",
"focusId": "text",
"targetValue": 1,
"targetTimestamp": "2026-01-01T00:00:00.000Z"
}
],
"assigneeStatuses": [
{
"assigneeId": "507f1f77bcf86cd799439011",
"status": "IN_PROGRESS",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z"
}
],
"hierarchyIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"groupIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"characteristics": [
{
"characteristicId": "64f8a0e2d5b7c9a1e3f4a5b6",
"id": "64f8a0e2d5b7c9a1e3f4a5b6",
"questionType": "DATE",
"value": true
}
],
"actionType": "MANAGER",
"source": "MANUAL",
"visibility": "PRIVATE",
"status": "IN_PROGRESS",
"completionPercent": 50,
"dueDate": "2025-06-30T23:59:59.000Z",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"notes": [
{
"id": "507f1f77bcf86cd799439020",
"authorId": "507f1f77bcf86cd799439015",
"content": "Feedback de la retro mejoró tras introducir los reconocimientos entre pares.",
"visibility": "SHARED",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
],
"visibility": "PRIVATE",
"completionPercent": 33,
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}
]
}Creates an empty action plan. Once created, actions can be added by creating them with the plan's ID.
SessionId
Request payload for creating a new action plan
Visibility for the plan. Defaults to PRIVATE when omitted.
Plan created successfully
Action plan — a named container grouping one or more improvement actions under a shared goal
Unique plan identifier
507f1f77bcf86cd799439011Company that owns this plan
507f1f77bcf86cd799439010Visibility scope — PUBLIC means readable by any company manager; PRIVATE restricts to the plan creator.
PRIVATEPossible values: Percentage of actions in this plan that have reached COMPLETED status (0–100). Computed on-the-fly; never stored.
33User who created this plan
507f1f77bcf86cd799439012Creation timestamp
Last modification timestamp
Validation failed: missing title or description
POST /api/v1/company/action-plans HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Content-Type: */*
Accept: */*
Content-Length: 237
{
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"visibility": "PUBLIC"
}{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"actions": [
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"planId": "507f1f77bcf86cd799439013",
"plan": {
"id": "507f1f77bcf86cd799439013",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
}
},
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"focusItems": [
{
"focusType": "SCORE",
"focusId": "text",
"targetValue": 1,
"targetTimestamp": "2026-01-01T00:00:00.000Z"
}
],
"assigneeStatuses": [
{
"assigneeId": "507f1f77bcf86cd799439011",
"status": "IN_PROGRESS",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z"
}
],
"hierarchyIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"groupIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"characteristics": [
{
"characteristicId": "64f8a0e2d5b7c9a1e3f4a5b6",
"id": "64f8a0e2d5b7c9a1e3f4a5b6",
"questionType": "DATE",
"value": true
}
],
"actionType": "MANAGER",
"source": "MANUAL",
"visibility": "PRIVATE",
"status": "IN_PROGRESS",
"completionPercent": 50,
"dueDate": "2025-06-30T23:59:59.000Z",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"notes": [
{
"id": "507f1f77bcf86cd799439020",
"authorId": "507f1f77bcf86cd799439015",
"content": "Feedback de la retro mejoró tras introducir los reconocimientos entre pares.",
"visibility": "SHARED",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
],
"visibility": "PRIVATE",
"completionPercent": 33,
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Triggers an asynchronous Excel export of this action plan. The workbook contains a summary sheet followed by one sheet per action. The file will be delivered to your e-mail address as a time-limited download link. The response is empty — the file arrives via e-mail within seconds.
SessionId
Plan identifier
64f8a0e2d5b7c9a1e3f4a5b6Export triggered — file will be sent by e-mail
No content
POST /api/v1/company/action-plans/{planId}/excel HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Accept: */*
Export triggered — file will be sent by e-mail
No content
Returns the full action plan with its actions.
SessionId
Plan identifier
64f8a0e2d5b7c9a1e3f4a5b6Plan found
Action plan — a named container grouping one or more improvement actions under a shared goal
Unique plan identifier
507f1f77bcf86cd799439011Company that owns this plan
507f1f77bcf86cd799439010Visibility scope — PUBLIC means readable by any company manager; PRIVATE restricts to the plan creator.
PRIVATEPossible values: Percentage of actions in this plan that have reached COMPLETED status (0–100). Computed on-the-fly; never stored.
33User who created this plan
507f1f77bcf86cd799439012Creation timestamp
Last modification timestamp
Plan not found in this company
GET /api/v1/company/action-plans/{planId} HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Accept: */*
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"actions": [
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"planId": "507f1f77bcf86cd799439013",
"plan": {
"id": "507f1f77bcf86cd799439013",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
}
},
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"focusItems": [
{
"focusType": "SCORE",
"focusId": "text",
"targetValue": 1,
"targetTimestamp": "2026-01-01T00:00:00.000Z"
}
],
"assigneeStatuses": [
{
"assigneeId": "507f1f77bcf86cd799439011",
"status": "IN_PROGRESS",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z"
}
],
"hierarchyIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"groupIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"characteristics": [
{
"characteristicId": "64f8a0e2d5b7c9a1e3f4a5b6",
"id": "64f8a0e2d5b7c9a1e3f4a5b6",
"questionType": "DATE",
"value": true
}
],
"actionType": "MANAGER",
"source": "MANUAL",
"visibility": "PRIVATE",
"status": "IN_PROGRESS",
"completionPercent": 50,
"dueDate": "2025-06-30T23:59:59.000Z",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"notes": [
{
"id": "507f1f77bcf86cd799439020",
"authorId": "507f1f77bcf86cd799439015",
"content": "Feedback de la retro mejoró tras introducir los reconocimientos entre pares.",
"visibility": "SHARED",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
],
"visibility": "PRIVATE",
"completionPercent": 33,
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Permanently removes an action plan and all of its actions (cascade delete). Only the plan creator or an admin can delete; legacy plans without a recorded creator are deletable by any authorised caller. Returns 204 on success, 403 when the caller is not allowed, 404 when not found.
SessionId
Plan identifier
64f8a0e2d5b7c9a1e3f4a5b6Plan and all its actions deleted
No content
Caller is not the creator or an admin
Plan not found in this company
DELETE /api/v1/company/action-plans/{planId} HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Accept: */*
No content
Applies a partial update to an action plan. Only non-null fields are updated.
SessionId
Plan identifier
64f8a0e2d5b7c9a1e3f4a5b6Request payload for updating an action plan. Only non-null fields are applied.
New visibility. Null means no change.
Plan updated successfully
Action plan — a named container grouping one or more improvement actions under a shared goal
Unique plan identifier
507f1f77bcf86cd799439011Company that owns this plan
507f1f77bcf86cd799439010Visibility scope — PUBLIC means readable by any company manager; PRIVATE restricts to the plan creator.
PRIVATEPossible values: Percentage of actions in this plan that have reached COMPLETED status (0–100). Computed on-the-fly; never stored.
33User who created this plan
507f1f77bcf86cd799439012Creation timestamp
Last modification timestamp
No updatable fields provided, or plan not found
Plan not found in this company
PATCH /api/v1/company/action-plans/{planId} HTTP/1.1
Host: api.happyforce.com
SessionId: YOUR_API_KEY
Content-Type: */*
Accept: */*
Content-Length: 237
{
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"visibility": "PUBLIC"
}{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"actions": [
{
"id": "507f1f77bcf86cd799439011",
"companyId": "507f1f77bcf86cd799439010",
"planId": "507f1f77bcf86cd799439013",
"plan": {
"id": "507f1f77bcf86cd799439013",
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
}
},
"title": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"description": {
"defaultValue": "Happy birthday!",
"langValues": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"valid": true
},
"focusItems": [
{
"focusType": "SCORE",
"focusId": "text",
"targetValue": 1,
"targetTimestamp": "2026-01-01T00:00:00.000Z"
}
],
"assigneeStatuses": [
{
"assigneeId": "507f1f77bcf86cd799439011",
"status": "IN_PROGRESS",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z"
}
],
"hierarchyIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"groupIds": [
"64f8a0e2d5b7c9a1e3f4a5b6"
],
"characteristics": [
{
"characteristicId": "64f8a0e2d5b7c9a1e3f4a5b6",
"id": "64f8a0e2d5b7c9a1e3f4a5b6",
"questionType": "DATE",
"value": true
}
],
"actionType": "MANAGER",
"source": "MANUAL",
"visibility": "PRIVATE",
"status": "IN_PROGRESS",
"completionPercent": 50,
"dueDate": "2025-06-30T23:59:59.000Z",
"startedAt": "2026-01-01T00:00:00.000Z",
"completedAt": "2026-01-01T00:00:00.000Z",
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z",
"notes": [
{
"id": "507f1f77bcf86cd799439020",
"authorId": "507f1f77bcf86cd799439015",
"content": "Feedback de la retro mejoró tras introducir los reconocimientos entre pares.",
"visibility": "SHARED",
"createdAt": "2026-01-01T00:00:00.000Z"
}
]
}
],
"visibility": "PRIVATE",
"completionPercent": 33,
"createdBy": "507f1f77bcf86cd799439012",
"createdAt": "2026-01-01T00:00:00.000Z",
"updatedAt": "2026-01-01T00:00:00.000Z"
}Last updated