Developer Platform

API Map

Every first-class and Build This route, with complete lifecycle and usability coverage.

First-class
23 capabilities
Build This
18 products
Surfaces
Tenant runtime + Developer API

Status: generated from current repository contracts on 2026-09-12.

This document inventories the two application-facing HTTP surfaces without treating client-supplied identity as authorization:

  • Tenant runtime routes begin with /api/ and are used by rendered, authenticated SaaS pages.
  • Developer API routes begin with /v1/apps/{saasAppId}/ and are used by live-app or delegated-user integrations according to each OpenAPI operation's scopes.

The first section includes every route under the exact API base paths of all 23 documented first-class capabilities. The Build This section includes every route in the canonical generated recipe and every additional OpenAPI operation explicitly named by the runnable solution manifest. When a Build This product composes a first-class capability, the complete capability route set remains in section 1 and is linked from the product entry instead of being copied repeatedly.

Excluded from section 1 are control-plane, authentication, health, payment-support, and product-specific renderer routes that are not one of the 23 documented first-class capabilities. The portable runtime renderer routes are documented explicitly below; other excluded routes appear in section 2 only when a canonical Build This recipe or solution manifest references them.

Embed a page body or the whole published page

An external frontend can render either the portable page body inside its own navigation and theme or the complete BuildWithHQ page shell. Both choices use the published page definition and the same server-side entitlement fallback as the hosted tenant runtime; a page response grants no additional data authority.

Method Route Result / purpose Required credential Required scope OpenAPI operationId
POST /v1/apps/{saasAppId}/runtime/bindings Resolve 1..24 unique page binding keys with current-user record security DelegatedUserCredential runtime.bindings.read developerRuntimePagesResolveBindings
GET /v1/apps/{saasAppId}/runtime/pages/{pageKey} Page body only (components + page); host supplies its own shell and navigation DelegatedUserCredential runtime.pages.read developerRuntimePagesGetBody
GET /v1/apps/{saasAppId}/runtime/pages/{pageKey}/bootstrap Whole published page bootstrap (shell + components + page) DelegatedUserCredential runtime.pages.read developerRuntimePagesGetBootstrap

Use the body route for components + page. Its includeDesignTokens query parameter defaults to false, so the host's CSS wins; set it to true when page-level design tokens should travel with the body. Use the bootstrap route for shell + components + page, including BuildWithHQ menus, top bar, entitled-page navigation, and tenant presentation.

After loading either representation, send the page's unique binding keys to the batch binding route. Each item returns its own safe ok, notFound, forbidden, or invalid status. Resolution runs through the registered runtime binding contract and current secured stored procedures, so tenant, user, DataRole, location, and record visibility still come from the delegated identity rather than request data.

These routes accept only a delegated user token (bwu_live_); a live-app credential (bwk_live_) is rejected even if it names the scope. The Developer Kit SDK exposes the flow through BuildWithHQRuntimeClient.getPageBody, getPageBootstrap, and resolveBindings.

Associate eligible records into a recursive graph

Every first-class or Build This entity backed by a canonical, authorized Records.RecordId can participate in the shared Record Graph. Derived projections that do not own a Record must link back to their native owner instead.

1. Open the seed record graph. The response returns the currently visible nodes and edges plus the registered relationTypes that may be selected; do not invent a relation key.

2. Add an edge from the seed to another authorized record using that target's recordId and one returned relationKey.

3. Repeat the same operation from any related record to build a multi-level graph. Traversal follows both incoming and outgoing edges, deduplicates previously visited nodes, and safely supports cyclic graphs.

4. Read the recursive result with maxDepth from 1 through 5 and maxNodes from 2 through 200. Smaller bounds are recommended for ordinary screens; the response reports depthReached, nodeCount, and truncated.

5. Remove an edge by its returned recordRelationId; removing a relationship does not delete either record.

Surface Purpose Method and route Body / bounds
Tenant runtime Read recursive graph GET /api/modules/record-graph/{recordId}?maxDepth=2&maxNodes=100 maxDepth=1..5; maxNodes=2..200
Tenant runtime Add association PUT /api/modules/record-graph/{fromRecordId}/relations {"toRecordId":"<target-guid>","relationKey":"<registered-key>"}
Tenant runtime Remove association DELETE /api/modules/record-graph/relations/{recordRelationId} No body
Developer API Read recursive graph GET /v1/apps/{saasAppId}/modules/record-graph/{recordId}?maxDepth=2&maxNodes=100 Same bounds
Developer API Add association PUT /v1/apps/{saasAppId}/modules/record-graph/{fromRecordId}/relations {"toRecordId":"<target-guid>","relationKey":"<registered-key>"}
Developer API Remove association DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} No body

Association security is symmetric: both endpoint records must be active, belong to the same routed tenant/SaaS, and be readable and editable inside the current user's DataRole, location, and direct-conversation participation envelope. Self-links, empty or unregistered relation keys, foreign/concealed records, and unauthorized edge removal are rejected safely. Repeating the same directed edge and relation type returns the existing relationship instead of creating a duplicate.

Record Graph is intentionally REST/SDK-only in this release. The curated 42-tool MCP surface does not expose these nine operations; an MCP client must call them through an approved REST/SDK integration rather than assuming a graph tool exists.

Vendor generation provenance

The following are vendor-repository inputs, not regeneration instructions for a Developer Kit recipient. The ZIP intentionally omits internal catalogs, solution manifests, and the generator. Recipients can independently verify the two shipped contract inputs against their hashes below.

  • Vendor catalog-generator/catalog.json — schema 2, 199 tenant module operations plus 63 additional server-surface operations, 0 unresolved module gaps, SHA-256 6ef6bf6e20a4dff0fb6d2fef7634c43235045b996bb642ae60ed7d3ef2d0c20e.
  • Shipped openapi/buildwithhq-generated.json — 265 published operations, SHA-256 b28f2b614ecdb296f1765168f1fb2e797bc8853fc5f6eb3979b23ff6577d32e3.
  • Shipped products/build-this-api-recipes.json — 18 recipes and 73 referenced recipe operations, SHA-256 fe8d4e157437ac81ec78786adc89c7411903a92b07e8e3d38ed8eae42f672028.
  • Vendor solutions/build-this/*/solution.json — explicit production-solution operation and composition contracts.
  • Vendor regeneration command: python tools/generate_api_route_inventory.py; vendor verification command: python tools/generate_api_route_inventory.py --check.

1. First-class modules

Universal Inbox (universal-inbox)

API bases: /api/inbox, /api/inbox/items.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 6; Developer 6
Add / create / execute Tenant 3; Developer 2
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (11):

Method Route Action Controller action
GET /api/inbox/badge Get Badge GetBadgeAsync
GET /api/inbox/delivery/debug Get Delivery Debug GetDeliveryDebugAsync
POST /api/inbox/delivery/{outboundMessageId:guid}/retry Retry operation RetryDeliveryAsync
GET /api/inbox/email-channels/ticketing Mailbox ticketing configuration GetEmailTicketingAsync
PUT /api/inbox/email-channels/{channelConnectionId:guid}/ticketing Mailbox ticketing configuration SetEmailTicketingAsync
GET /api/inbox/items Get Items GetItemsAsync
GET /api/inbox/items/{inboxItemId:guid} Get Item GetItemAsync
PUT /api/inbox/items/{inboxItemId:guid}/human-state Human state / resolution UpdateHumanStateAsync
POST /api/inbox/items/{inboxItemId:guid}/reply Message / reply ReplyAsync
POST /api/inbox/items/{inboxItemId:guid}/workflow-approval Workflow approval DecideAsync
GET /api/inbox/notifications Get Notifications GetNotificationsAsync

Developer API routes (10):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/inbox/badge List / view developerGetV1AppsInboxBadge
GET /v1/apps/{saasAppId}/inbox/delivery/debug List / view developerGetV1AppsInboxDeliveryDebug
POST /v1/apps/{saasAppId}/inbox/delivery/{outboundMessageId}/retry Retry operation developerPostV1AppsInboxDeliveryOutboundMessageIdGuidRetry
GET /v1/apps/{saasAppId}/inbox/email-channels/ticketing Mailbox ticketing configuration developerGetV1AppsInboxEmailChannelsTicketing
PUT /v1/apps/{saasAppId}/inbox/email-channels/{channelConnectionId}/ticketing Mailbox ticketing configuration developerPutV1AppsInboxEmailChannelsChannelConnectionIdGuidTicketing
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems
GET /v1/apps/{saasAppId}/inbox/items/{inboxItemId} List / view developerGetV1AppsInboxItemsInboxItemIdGuid
PUT /v1/apps/{saasAppId}/inbox/items/{inboxItemId}/human-state Human state / resolution developerPutV1AppsInboxItemsInboxItemIdGuidHumanState
POST /v1/apps/{saasAppId}/inbox/items/{inboxItemId}/reply Message / reply developerPostV1AppsInboxItemsInboxItemIdGuidReply
GET /v1/apps/{saasAppId}/inbox/notifications List / view developerGetV1AppsInboxNotifications
Checklists & Signoffs (checklists-signoffs)

API bases: /api/modules/checklists-signoffs.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 4; Developer 4
Add / create / execute Tenant 4; Developer 4
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 2; Developer 2
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence Tenant 2; Developer 2
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (12):

Method Route Action Controller action
PUT /api/modules/checklists-signoffs/items/{checklistRunItemId:guid} Update Item UpdateItemAsync
POST /api/modules/checklists-signoffs/items/{checklistRunItemId:guid}/proof File proof / evidence AttachProofAsync
DELETE /api/modules/checklists-signoffs/proof/{checklistItemEvidenceId:guid} File proof / evidence RemoveProofAsync
GET /api/modules/checklists-signoffs/runs List Runs ListRunsAsync
POST /api/modules/checklists-signoffs/runs Start Run StartRunAsync
GET /api/modules/checklists-signoffs/runs/{checklistRunId:guid} Get Run GetRunAsync
POST /api/modules/checklists-signoffs/runs/{checklistRunId:guid}/submit Submit workflow SubmitAsync
GET /api/modules/checklists-signoffs/templates List Templates ListTemplatesAsync
POST /api/modules/checklists-signoffs/templates Create Template CreateTemplateAsync
DELETE /api/modules/checklists-signoffs/templates/{checklistTemplateId:guid} Remove Template RemoveTemplateAsync
GET /api/modules/checklists-signoffs/templates/{checklistTemplateId:guid} Get Template GetTemplateAsync
PUT /api/modules/checklists-signoffs/templates/{checklistTemplateId:guid} Update Template UpdateTemplateAsync

Developer API routes (12):

Method Route Action OpenAPI operationId
PUT /v1/apps/{saasAppId}/modules/checklists-signoffs/items/{checklistRunItemId} Edit / update / modify developerPutV1AppsModulesChecklistsSignoffsItemsChecklistRunItemIdGuid
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/items/{checklistRunItemId}/proof File proof / evidence developerPostV1AppsModulesChecklistsSignoffsItemsChecklistRunItemIdGuidProof
DELETE /v1/apps/{saasAppId}/modules/checklists-signoffs/proof/{checklistItemEvidenceId} File proof / evidence developerDeleteV1AppsModulesChecklistsSignoffsProofChecklistItemEvidenceIdGuid
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/runs List / view developerGetV1AppsModulesChecklistsSignoffsRuns
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs Add / create / execute developerPostV1AppsModulesChecklistsSignoffsRuns
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/runs/{checklistRunId} List / view developerGetV1AppsModulesChecklistsSignoffsRunsChecklistRunIdGuid
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs/{checklistRunId}/submit Submit workflow developerPostV1AppsModulesChecklistsSignoffsRunsChecklistRunIdGuidSubmit
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/templates List / view developerGetV1AppsModulesChecklistsSignoffsTemplates
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/templates Add / create / execute developerPostV1AppsModulesChecklistsSignoffsTemplates
DELETE /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} Delete / remove / deactivate developerDeleteV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} List / view developerGetV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid
PUT /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} Edit / update / modify developerPutV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid
GoClaw virtual assistant (goclaw)

API bases: /api/goclaw/agents, /api/goclaw/approvals.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 1; Developer 1
Add / create / execute Tenant 4; Developer 4
Edit / update / modify Tenant 1; Developer 0
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (6):

Method Route Action Controller action
PUT /api/goclaw/agents/{goClawAgentId:guid}/authority Configure ConfigureAsync
GET /api/goclaw/approvals Get GetAsync
POST /api/goclaw/approvals/{suggestionBatchId:guid}/approve Approve ApproveAsync
POST /api/goclaw/approvals/{suggestionBatchId:guid}/reject Reject RejectAsync
POST /api/goclaw/approvals/{suggestionBatchId:guid}/retry Retry operation RetryAsync
POST /api/goclaw/approvals/{suggestionBatchId:guid}/take-over Take Over TakeOverAsync

Developer API routes (5):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/goclaw/approvals List / view developerGetV1AppsGoclawApprovals
POST /v1/apps/{saasAppId}/goclaw/approvals/{suggestionBatchId}/approve Approve developerPostV1AppsGoclawApprovalsSuggestionBatchIdGuidApprove
POST /v1/apps/{saasAppId}/goclaw/approvals/{suggestionBatchId}/reject Reject developerPostV1AppsGoclawApprovalsSuggestionBatchIdGuidReject
POST /v1/apps/{saasAppId}/goclaw/approvals/{suggestionBatchId}/retry Retry operation developerPostV1AppsGoclawApprovalsSuggestionBatchIdGuidRetry
POST /v1/apps/{saasAppId}/goclaw/approvals/{suggestionBatchId}/take-over Add / create / execute developerPostV1AppsGoclawApprovalsSuggestionBatchIdGuidTakeOver
AI Insights (ai-insights)

API bases: /api/modules/ai-insights.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 1; Developer 1
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (3):

Method Route Action Controller action
GET /api/modules/ai-insights List ListAsync
GET /api/modules/ai-insights/{insightId:guid} Get GetAsync
PUT /api/modules/ai-insights/{insightId:guid}/state State transition SetStateAsync

Developer API routes (3):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/ai-insights List / view developerGetV1AppsModulesAiInsights
GET /v1/apps/{saasAppId}/modules/ai-insights/{insightId} List / view developerGetV1AppsModulesAiInsightsInsightIdGuid
PUT /v1/apps/{saasAppId}/modules/ai-insights/{insightId}/state State transition developerPutV1AppsModulesAiInsightsInsightIdGuidState
Contacts (contacts)

API bases: /api/modules/contacts.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 1; Developer 1
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (6):

Method Route Action Controller action
GET /api/modules/contacts List ListAsync
POST /api/modules/contacts Create CreateAsync
DELETE /api/modules/contacts/{recordId:guid} Remove RemoveAsync
GET /api/modules/contacts/{recordId:guid} Get GetAsync
PUT /api/modules/contacts/{recordId:guid} Update UpdateAsync
PUT /api/modules/contacts/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (6):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/contacts List / view developerGetV1AppsModulesContacts
POST /v1/apps/{saasAppId}/modules/contacts Add / create / execute developerPostV1AppsModulesContacts
DELETE /v1/apps/{saasAppId}/modules/contacts/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesContactsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/contacts/{recordId} List / view developerGetV1AppsModulesContactsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/contacts/{recordId} Edit / update / modify developerPutV1AppsModulesContactsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/contacts/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesContactsRecordIdGuidFavorite
Work Orders (work-orders)

API bases: /api/modules/work-orders.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 3
Add / create / execute Tenant 1; Developer 1
Edit / update / modify Tenant 3; Developer 3
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (7):

Method Route Action Controller action
GET /api/modules/work-orders List ListAsync
POST /api/modules/work-orders Create CreateAsync
DELETE /api/modules/work-orders/{recordId:guid} Remove RemoveAsync
GET /api/modules/work-orders/{recordId:guid} Get GetAsync
PUT /api/modules/work-orders/{recordId:guid} Update UpdateAsync
PUT /api/modules/work-orders/{recordId:guid}/assignment Assignment update AssignAsync
PUT /api/modules/work-orders/{recordId:guid}/status Status transition StatusAsync

Developer API routes (8):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/work-orders List / view developerGetV1AppsModulesWorkOrders
POST /v1/apps/{saasAppId}/modules/work-orders Add / create / execute developerPostV1AppsModulesWorkOrders
GET /v1/apps/{saasAppId}/modules/work-orders/presentation Presentation metadata developerPresentationsGet
DELETE /v1/apps/{saasAppId}/modules/work-orders/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesWorkOrdersRecordIdGuid
GET /v1/apps/{saasAppId}/modules/work-orders/{recordId} List / view developerGetV1AppsModulesWorkOrdersRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/work-orders/{recordId} Edit / update / modify developerPutV1AppsModulesWorkOrdersRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/work-orders/{recordId}/assignment Assignment update developerPutV1AppsModulesWorkOrdersRecordIdGuidAssignment
PUT /v1/apps/{saasAppId}/modules/work-orders/{recordId}/status Status transition developerPutV1AppsModulesWorkOrdersRecordIdGuidStatus
Reservations (reservations)

API bases: /api/modules/reservations.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 3; Developer 3
Add / create / execute Tenant 2; Developer 2
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (7):

Method Route Action Controller action
GET /api/modules/reservations List ListAsync
GET /api/modules/reservations/products List Products ListProductsAsync
POST /api/modules/reservations/products Upsert Product UpsertProductAsync
POST /api/modules/reservations/purchase Purchase PurchaseAsync
GET /api/modules/reservations/{recordId:guid} Get GetAsync
PUT /api/modules/reservations/{recordId:guid}/followups Update Followup UpdateFollowupAsync
PUT /api/modules/reservations/{recordId:guid}/status Status transition SetStatusAsync

Developer API routes (7):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/reservations List / view developerGetV1AppsModulesReservations
GET /v1/apps/{saasAppId}/modules/reservations/products List / view developerGetV1AppsModulesReservationsProducts
POST /v1/apps/{saasAppId}/modules/reservations/products Add / create / execute developerPostV1AppsModulesReservationsProducts
POST /v1/apps/{saasAppId}/modules/reservations/purchase Add / create / execute developerPostV1AppsModulesReservationsPurchase
GET /v1/apps/{saasAppId}/modules/reservations/{recordId} List / view developerGetV1AppsModulesReservationsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/reservations/{recordId}/followups Edit / update / modify developerPutV1AppsModulesReservationsRecordIdGuidFollowups
PUT /v1/apps/{saasAppId}/modules/reservations/{recordId}/status Status transition developerPutV1AppsModulesReservationsRecordIdGuidStatus
Calendar (calendar)

API bases: /api/modules/calendar.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 1; Developer 1
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (6):

Method Route Action Controller action
GET /api/modules/calendar List ListAsync
POST /api/modules/calendar Create CreateAsync
DELETE /api/modules/calendar/{recordId:guid} Remove RemoveAsync
GET /api/modules/calendar/{recordId:guid} Get GetAsync
PUT /api/modules/calendar/{recordId:guid} Update UpdateAsync
PUT /api/modules/calendar/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (6):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/calendar List / view developerGetV1AppsModulesCalendar
POST /v1/apps/{saasAppId}/modules/calendar Add / create / execute developerPostV1AppsModulesCalendar
DELETE /v1/apps/{saasAppId}/modules/calendar/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesCalendarRecordIdGuid
GET /v1/apps/{saasAppId}/modules/calendar/{recordId} List / view developerGetV1AppsModulesCalendarRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/calendar/{recordId} Edit / update / modify developerPutV1AppsModulesCalendarRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/calendar/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesCalendarRecordIdGuidFavorite
Files & attachments (files)

API bases: /api/modules/files.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 3; Developer 3
Add / create / execute Tenant 2; Developer 2
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 2; Developer 2
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence Tenant 9; Developer 9
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (9):

Method Route Action Controller action
GET /api/modules/files File / attachment ListAsync
POST /api/modules/files/upload File / attachment UploadAsync
DELETE /api/modules/files/{recordId:guid} File / attachment RemoveAsync
GET /api/modules/files/{recordId:guid} File / attachment GetAsync
PUT /api/modules/files/{recordId:guid} File / attachment UpdateAsync
POST /api/modules/files/{recordId:guid}/attachments File / attachment AttachAsync
DELETE /api/modules/files/{recordId:guid}/attachments/{attachmentId:guid} File / attachment DetachAsync
GET /api/modules/files/{recordId:guid}/content File / attachment DownloadAsync
PUT /api/modules/files/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (9):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/files File / attachment developerGetV1AppsModulesFiles
POST /v1/apps/{saasAppId}/modules/files/upload File / attachment developerPostV1AppsModulesFilesUpload
DELETE /v1/apps/{saasAppId}/modules/files/{recordId} File / attachment developerDeleteV1AppsModulesFilesRecordIdGuid
GET /v1/apps/{saasAppId}/modules/files/{recordId} File / attachment developerGetV1AppsModulesFilesRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/files/{recordId} File / attachment developerPutV1AppsModulesFilesRecordIdGuid
POST /v1/apps/{saasAppId}/modules/files/{recordId}/attachments File / attachment developerPostV1AppsModulesFilesRecordIdGuidAttachments
DELETE /v1/apps/{saasAppId}/modules/files/{recordId}/attachments/{attachmentId} File / attachment developerDeleteV1AppsModulesFilesRecordIdGuidAttachmentsAttachmentIdGuid
GET /v1/apps/{saasAppId}/modules/files/{recordId}/content File / attachment developerGetV1AppsModulesFilesRecordIdGuidContent
PUT /v1/apps/{saasAppId}/modules/files/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesFilesRecordIdGuidFavorite
Conversations & messages (conversations)

API bases: /api/modules/conversations.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 3; Developer 3
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (8):

Method Route Action Controller action
GET /api/modules/conversations List ListAsync
POST /api/modules/conversations Create CreateAsync
POST /api/modules/conversations/direct Send Direct SendDirectAsync
DELETE /api/modules/conversations/{recordId:guid} Remove RemoveAsync
GET /api/modules/conversations/{recordId:guid} Get GetAsync
PUT /api/modules/conversations/{recordId:guid} Update UpdateAsync
PUT /api/modules/conversations/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync
POST /api/modules/conversations/{recordId:guid}/messages Message / reply ReplyAsync

Developer API routes (8):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/conversations List / view developerGetV1AppsModulesConversations
POST /v1/apps/{saasAppId}/modules/conversations Add / create / execute developerPostV1AppsModulesConversations
POST /v1/apps/{saasAppId}/modules/conversations/direct Add / create / execute developerPostV1AppsModulesConversationsDirect
DELETE /v1/apps/{saasAppId}/modules/conversations/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesConversationsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/conversations/{recordId} List / view developerGetV1AppsModulesConversationsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/conversations/{recordId} Edit / update / modify developerPutV1AppsModulesConversationsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/conversations/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesConversationsRecordIdGuidFavorite
POST /v1/apps/{saasAppId}/modules/conversations/{recordId}/messages Message / reply developerPostV1AppsModulesConversationsRecordIdGuidMessages
Company news (company-news)

API bases: /api/modules/company-news.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 1; Developer 1
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (6):

Method Route Action Controller action
GET /api/modules/company-news List ListAsync
POST /api/modules/company-news Create CreateAsync
DELETE /api/modules/company-news/{recordId:guid} Remove RemoveAsync
GET /api/modules/company-news/{recordId:guid} Get GetAsync
PUT /api/modules/company-news/{recordId:guid} Update UpdateAsync
PUT /api/modules/company-news/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (6):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/company-news List / view developerGetV1AppsModulesCompanyNews
POST /v1/apps/{saasAppId}/modules/company-news Add / create / execute developerPostV1AppsModulesCompanyNews
DELETE /v1/apps/{saasAppId}/modules/company-news/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesCompanyNewsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/company-news/{recordId} List / view developerGetV1AppsModulesCompanyNewsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/company-news/{recordId} Edit / update / modify developerPutV1AppsModulesCompanyNewsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/company-news/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesCompanyNewsRecordIdGuidFavorite
Knowledge Core (knowledge-core)

API bases: /api/modules/knowledge-articles, /api/modules/knowledge-core.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 14; Developer 14
Add / create / execute Tenant 17; Developer 17
Edit / update / modify Tenant 4; Developer 4
Delete / remove / deactivate Tenant 2; Developer 2
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (37):

Method Route Action Controller action
GET /api/modules/knowledge-articles List ListAsync
POST /api/modules/knowledge-articles Create CreateAsync
GET /api/modules/knowledge-articles/{recordId:guid} Get GetAsync
PUT /api/modules/knowledge-articles/{recordId:guid} Update UpdateAsync
PUT /api/modules/knowledge-articles/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync
GET /api/modules/knowledge-core List ListAsync
POST /api/modules/knowledge-core Create CreateAsync
GET /api/modules/knowledge-core/collections Collections CollectionsAsync
POST /api/modules/knowledge-core/collections Create Collection CreateCollectionAsync
PUT /api/modules/knowledge-core/collections/{collectionId:guid} Update Collection UpdateCollectionAsync
DELETE /api/modules/knowledge-core/collections/{collectionId:guid}/items/{recordId:guid} Remove Collection Item RemoveCollectionItemAsync
POST /api/modules/knowledge-core/collections/{collectionId:guid}/items/{recordId:guid} Add Collection Item AddCollectionItemAsync
GET /api/modules/knowledge-core/gaps Gaps GapsAsync
GET /api/modules/knowledge-core/health Health HealthAsync
DELETE /api/modules/knowledge-core/owners/{knowledgeOwnerId:guid} Remove Owner RemoveOwnerAsync
GET /api/modules/knowledge-core/questions Questions QuestionsAsync
POST /api/modules/knowledge-core/questions Create Question CreateQuestionAsync
POST /api/modules/knowledge-core/questions/{knowledgeQuestionId:guid}/answer Answer Question AnswerQuestionAsync
POST /api/modules/knowledge-core/questions/{knowledgeQuestionId:guid}/assign Assign Question AssignQuestionAsync
POST /api/modules/knowledge-core/questions/{knowledgeQuestionId:guid}/convert Convert Question ConvertQuestionAsync
GET /api/modules/knowledge-core/reviews Reviews ReviewsAsync
POST /api/modules/knowledge-core/reviews/{reviewCycleId:guid}/begin Begin Review BeginReviewAsync
POST /api/modules/knowledge-core/reviews/{reviewCycleId:guid}/complete Complete Review CompleteReviewAsync
POST /api/modules/knowledge-core/reviews/{reviewCycleId:guid}/reassign Reassign Review ReassignReviewAsync
GET /api/modules/knowledge-core/support-learning/candidates Support Learning Candidates SupportLearningCandidatesAsync
POST /api/modules/knowledge-core/support-learning/candidates Create Support Learning Candidate CreateSupportLearningCandidateAsync
GET /api/modules/knowledge-core/unowned Unowned UnownedAsync
GET /api/modules/knowledge-core/{recordId:guid} Get GetAsync
PUT /api/modules/knowledge-core/{recordId:guid} Update UpdateAsync
POST /api/modules/knowledge-core/{recordId:guid}/archive Archive ArchiveAsync
GET /api/modules/knowledge-core/{recordId:guid}/feedback Feedback Summary FeedbackSummaryAsync
POST /api/modules/knowledge-core/{recordId:guid}/feedback Record Feedback RecordFeedbackAsync
GET /api/modules/knowledge-core/{recordId:guid}/owners Owners OwnersAsync
POST /api/modules/knowledge-core/{recordId:guid}/owners Set Owner SetOwnerAsync
POST /api/modules/knowledge-core/{recordId:guid}/publish Publish PublishAsync
POST /api/modules/knowledge-core/{recordId:guid}/restore Restore RestoreAsync
GET /api/modules/knowledge-core/{recordId:guid}/revisions Revisions RevisionsAsync

Developer API routes (37):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/knowledge-articles List / view developerGetV1AppsModulesKnowledgeArticles
POST /v1/apps/{saasAppId}/modules/knowledge-articles Add / create / execute developerPostV1AppsModulesKnowledgeArticles
GET /v1/apps/{saasAppId}/modules/knowledge-articles/{recordId} List / view developerGetV1AppsModulesKnowledgeArticlesRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/knowledge-articles/{recordId} Edit / update / modify developerPutV1AppsModulesKnowledgeArticlesRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/knowledge-articles/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesKnowledgeArticlesRecordIdGuidFavorite
GET /v1/apps/{saasAppId}/modules/knowledge-core List / view developerGetV1AppsModulesKnowledgeCore
POST /v1/apps/{saasAppId}/modules/knowledge-core Add / create / execute developerPostV1AppsModulesKnowledgeCore
GET /v1/apps/{saasAppId}/modules/knowledge-core/collections List / view developerGetV1AppsModulesKnowledgeCoreCollections
POST /v1/apps/{saasAppId}/modules/knowledge-core/collections Add / create / execute developerPostV1AppsModulesKnowledgeCoreCollections
PUT /v1/apps/{saasAppId}/modules/knowledge-core/collections/{collectionId} Edit / update / modify developerPutV1AppsModulesKnowledgeCoreCollectionsCollectionIdGuid
DELETE /v1/apps/{saasAppId}/modules/knowledge-core/collections/{collectionId}/items/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesKnowledgeCoreCollectionsCollectionIdGuidItemsRecordIdGuid
POST /v1/apps/{saasAppId}/modules/knowledge-core/collections/{collectionId}/items/{recordId} Add / create / execute developerPostV1AppsModulesKnowledgeCoreCollectionsCollectionIdGuidItemsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/knowledge-core/gaps List / view developerGetV1AppsModulesKnowledgeCoreGaps
GET /v1/apps/{saasAppId}/modules/knowledge-core/health List / view developerGetV1AppsModulesKnowledgeCoreHealth
DELETE /v1/apps/{saasAppId}/modules/knowledge-core/owners/{knowledgeOwnerId} Delete / remove / deactivate developerDeleteV1AppsModulesKnowledgeCoreOwnersKnowledgeOwnerIdGuid
GET /v1/apps/{saasAppId}/modules/knowledge-core/questions List / view developerGetV1AppsModulesKnowledgeCoreQuestions
POST /v1/apps/{saasAppId}/modules/knowledge-core/questions Add / create / execute developerPostV1AppsModulesKnowledgeCoreQuestions
POST /v1/apps/{saasAppId}/modules/knowledge-core/questions/{knowledgeQuestionId}/answer Add / create / execute developerPostV1AppsModulesKnowledgeCoreQuestionsKnowledgeQuestionIdGuidAnswer
POST /v1/apps/{saasAppId}/modules/knowledge-core/questions/{knowledgeQuestionId}/assign Add / create / execute developerPostV1AppsModulesKnowledgeCoreQuestionsKnowledgeQuestionIdGuidAssign
POST /v1/apps/{saasAppId}/modules/knowledge-core/questions/{knowledgeQuestionId}/convert Add / create / execute developerPostV1AppsModulesKnowledgeCoreQuestionsKnowledgeQuestionIdGuidConvert
GET /v1/apps/{saasAppId}/modules/knowledge-core/reviews List / view developerGetV1AppsModulesKnowledgeCoreReviews
POST /v1/apps/{saasAppId}/modules/knowledge-core/reviews/{reviewCycleId}/begin Add / create / execute developerPostV1AppsModulesKnowledgeCoreReviewsReviewCycleIdGuidBegin
POST /v1/apps/{saasAppId}/modules/knowledge-core/reviews/{reviewCycleId}/complete Add / create / execute developerPostV1AppsModulesKnowledgeCoreReviewsReviewCycleIdGuidComplete
POST /v1/apps/{saasAppId}/modules/knowledge-core/reviews/{reviewCycleId}/reassign Add / create / execute developerPostV1AppsModulesKnowledgeCoreReviewsReviewCycleIdGuidReassign
GET /v1/apps/{saasAppId}/modules/knowledge-core/support-learning/candidates List / view developerGetV1AppsModulesKnowledgeCoreSupportLearningCandidates
POST /v1/apps/{saasAppId}/modules/knowledge-core/support-learning/candidates Add / create / execute developerPostV1AppsModulesKnowledgeCoreSupportLearningCandidates
GET /v1/apps/{saasAppId}/modules/knowledge-core/unowned List / view developerGetV1AppsModulesKnowledgeCoreUnowned
GET /v1/apps/{saasAppId}/modules/knowledge-core/{recordId} List / view developerGetV1AppsModulesKnowledgeCoreRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/knowledge-core/{recordId} Edit / update / modify developerPutV1AppsModulesKnowledgeCoreRecordIdGuid
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/archive Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidArchive
GET /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/feedback List / view developerGetV1AppsModulesKnowledgeCoreRecordIdGuidFeedback
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/feedback Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidFeedback
GET /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/owners List / view developerGetV1AppsModulesKnowledgeCoreRecordIdGuidOwners
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/owners Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidOwners
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/publish Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidPublish
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/restore Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidRestore
GET /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/revisions List / view developerGetV1AppsModulesKnowledgeCoreRecordIdGuidRevisions
Web links (web-links)

API bases: /api/modules/web-links.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 1; Developer 1
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (6):

Method Route Action Controller action
GET /api/modules/web-links List ListAsync
POST /api/modules/web-links Create CreateAsync
DELETE /api/modules/web-links/{recordId:guid} Remove RemoveAsync
GET /api/modules/web-links/{recordId:guid} Get GetAsync
PUT /api/modules/web-links/{recordId:guid} Update UpdateAsync
PUT /api/modules/web-links/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (6):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/web-links List / view developerGetV1AppsModulesWebLinks
POST /v1/apps/{saasAppId}/modules/web-links Add / create / execute developerPostV1AppsModulesWebLinks
DELETE /v1/apps/{saasAppId}/modules/web-links/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesWebLinksRecordIdGuid
GET /v1/apps/{saasAppId}/modules/web-links/{recordId} List / view developerGetV1AppsModulesWebLinksRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/web-links/{recordId} Edit / update / modify developerPutV1AppsModulesWebLinksRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/web-links/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesWebLinksRecordIdGuidFavorite
Chat rooms (chat-rooms)

API bases: /api/modules/chat-rooms.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Tenant 2; Developer 2
Edit / update / modify Tenant 5; Developer 5
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (10):

Method Route Action Controller action
GET /api/modules/chat-rooms List ListAsync
POST /api/modules/chat-rooms Create CreateAsync
DELETE /api/modules/chat-rooms/{recordId:guid} Remove RemoveAsync
GET /api/modules/chat-rooms/{recordId:guid} Get GetAsync
PUT /api/modules/chat-rooms/{recordId:guid} Update UpdateAsync
PUT /api/modules/chat-rooms/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync
PUT /api/modules/chat-rooms/{recordId:guid}/members/{memberUserId:guid} Member management MemberAsync
POST /api/modules/chat-rooms/{recordId:guid}/messages Message / reply PostMessageAsync
PUT /api/modules/chat-rooms/{recordId:guid}/messages/{chatMessageId:guid}/reaction Message / reply ReactionAsync
PUT /api/modules/chat-rooms/{recordId:guid}/read Mark Read MarkReadAsync

Developer API routes (10):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/chat-rooms List / view developerGetV1AppsModulesChatRooms
POST /v1/apps/{saasAppId}/modules/chat-rooms Add / create / execute developerPostV1AppsModulesChatRooms
DELETE /v1/apps/{saasAppId}/modules/chat-rooms/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesChatRoomsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/chat-rooms/{recordId} List / view developerGetV1AppsModulesChatRoomsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/chat-rooms/{recordId} Edit / update / modify developerPutV1AppsModulesChatRoomsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/chat-rooms/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesChatRoomsRecordIdGuidFavorite
PUT /v1/apps/{saasAppId}/modules/chat-rooms/{recordId}/members/{memberUserId} Member management developerPutV1AppsModulesChatRoomsRecordIdGuidMembersMemberUserIdGuid
POST /v1/apps/{saasAppId}/modules/chat-rooms/{recordId}/messages Message / reply developerPostV1AppsModulesChatRoomsRecordIdGuidMessages
PUT /v1/apps/{saasAppId}/modules/chat-rooms/{recordId}/messages/{chatMessageId}/reaction Message / reply developerPutV1AppsModulesChatRoomsRecordIdGuidMessagesChatMessageIdGuidReaction
PUT /v1/apps/{saasAppId}/modules/chat-rooms/{recordId}/read Edit / update / modify developerPutV1AppsModulesChatRoomsRecordIdGuidRead
Message Forums (discussion-boards)

API bases: /api/modules/discussion-boards.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 3; Developer 3
Add / create / execute Tenant 3; Developer 3
Edit / update / modify Tenant 4; Developer 4
Delete / remove / deactivate Tenant 3; Developer 3
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (13):

Method Route Action Controller action
GET /api/modules/discussion-boards List ListAsync
POST /api/modules/discussion-boards Create Board CreateBoardAsync
DELETE /api/modules/discussion-boards/posts/{recordId:guid} Remove Post RemovePostAsync
PUT /api/modules/discussion-boards/posts/{recordId:guid} Update Post UpdatePostAsync
PUT /api/modules/discussion-boards/records/{recordId:guid}/favorite Favorite / unfavorite SetFavoriteAsync
DELETE /api/modules/discussion-boards/topics/{recordId:guid} Remove Topic RemoveTopicAsync
GET /api/modules/discussion-boards/topics/{recordId:guid} Get Topic GetTopicAsync
PUT /api/modules/discussion-boards/topics/{recordId:guid} Update Topic UpdateTopicAsync
POST /api/modules/discussion-boards/topics/{topicRecordId:guid}/posts Post Reply PostReplyAsync
POST /api/modules/discussion-boards/{boardRecordId:guid}/topics Create Topic CreateTopicAsync
DELETE /api/modules/discussion-boards/{recordId:guid} Remove Board RemoveBoardAsync
GET /api/modules/discussion-boards/{recordId:guid} Get Board GetBoardAsync
PUT /api/modules/discussion-boards/{recordId:guid} Update Board UpdateBoardAsync

Developer API routes (13):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/discussion-boards List / view developerGetV1AppsModulesDiscussionBoards
POST /v1/apps/{saasAppId}/modules/discussion-boards Add / create / execute developerPostV1AppsModulesDiscussionBoards
DELETE /v1/apps/{saasAppId}/modules/discussion-boards/posts/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDiscussionBoardsPostsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/discussion-boards/posts/{recordId} Edit / update / modify developerPutV1AppsModulesDiscussionBoardsPostsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/discussion-boards/records/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDiscussionBoardsRecordsRecordIdGuidFavorite
DELETE /v1/apps/{saasAppId}/modules/discussion-boards/topics/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDiscussionBoardsTopicsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/discussion-boards/topics/{recordId} List / view developerGetV1AppsModulesDiscussionBoardsTopicsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/discussion-boards/topics/{recordId} Edit / update / modify developerPutV1AppsModulesDiscussionBoardsTopicsRecordIdGuid
POST /v1/apps/{saasAppId}/modules/discussion-boards/topics/{topicRecordId}/posts Add / create / execute developerPostV1AppsModulesDiscussionBoardsTopicsTopicRecordIdGuidPosts
POST /v1/apps/{saasAppId}/modules/discussion-boards/{boardRecordId}/topics Add / create / execute developerPostV1AppsModulesDiscussionBoardsBoardRecordIdGuidTopics
DELETE /v1/apps/{saasAppId}/modules/discussion-boards/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDiscussionBoardsRecordIdGuid
GET /v1/apps/{saasAppId}/modules/discussion-boards/{recordId} List / view developerGetV1AppsModulesDiscussionBoardsRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/discussion-boards/{recordId} Edit / update / modify developerPutV1AppsModulesDiscussionBoardsRecordIdGuid
Mail reader (mail-reader)

API bases: /api/modules/mail-reader.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (4):

Method Route Action Controller action
GET /api/modules/mail-reader List ListAsync
GET /api/modules/mail-reader/{recordId:guid} Get GetAsync
PUT /api/modules/mail-reader/{recordId:guid}/favorite Favorite / unfavorite SetFavoriteAsync
PUT /api/modules/mail-reader/{recordId:guid}/read Set Read SetReadAsync

Developer API routes (4):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/mail-reader List / view developerGetV1AppsModulesMailReader
GET /v1/apps/{saasAppId}/modules/mail-reader/{recordId} List / view developerGetV1AppsModulesMailReaderRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/mail-reader/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesMailReaderRecordIdGuidFavorite
PUT /v1/apps/{saasAppId}/modules/mail-reader/{recordId}/read Edit / update / modify developerPutV1AppsModulesMailReaderRecordIdGuidRead
Favorites (favorites)

API bases: /api/modules/favorites.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 3; Developer 3
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite Tenant 5; Developer 5
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (5):

Method Route Action Controller action
GET /api/modules/favorites Favorite / unfavorite ListAsync
GET /api/modules/favorites/{recordId:guid} Favorite / unfavorite GetAsync
PUT /api/modules/favorites/{recordId:guid}/favorite Favorite / unfavorite SetAsync
PUT /api/modules/favorites/{recordId:guid}/preferences Favorite / unfavorite UpdateAsync
GET /api/modules/favorites/{recordId:guid}/state Favorite / unfavorite GetStateAsync

Developer API routes (5):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/favorites Favorite / unfavorite developerGetV1AppsModulesFavorites
GET /v1/apps/{saasAppId}/modules/favorites/{recordId} Favorite / unfavorite developerGetV1AppsModulesFavoritesRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/favorites/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesFavoritesRecordIdGuidFavorite
PUT /v1/apps/{saasAppId}/modules/favorites/{recordId}/preferences Favorite / unfavorite developerPutV1AppsModulesFavoritesRecordIdGuidPreferences
GET /v1/apps/{saasAppId}/modules/favorites/{recordId}/state Favorite / unfavorite developerGetV1AppsModulesFavoritesRecordIdGuidState
Notifications (notifications)

API bases: /api/modules/notifications.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (4):

Method Route Action Controller action
GET /api/modules/notifications List ListAsync
GET /api/modules/notifications/{notificationId:guid} Get GetAsync
PUT /api/modules/notifications/{notificationId:guid}/source-favorite Favorite / unfavorite SetFavoriteAsync
PUT /api/modules/notifications/{notificationId:guid}/state State transition SetStateAsync

Developer API routes (4):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/notifications List / view developerGetV1AppsModulesNotifications
GET /v1/apps/{saasAppId}/modules/notifications/{notificationId} List / view developerGetV1AppsModulesNotificationsNotificationIdGuid
PUT /v1/apps/{saasAppId}/modules/notifications/{notificationId}/source-favorite Favorite / unfavorite developerPutV1AppsModulesNotificationsNotificationIdGuidSourceFavorite
PUT /v1/apps/{saasAppId}/modules/notifications/{notificationId}/state State transition developerPutV1AppsModulesNotificationsNotificationIdGuidState
Dynamic/custom records (dynamic-records)

API bases: /api/modules/dynamic.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 4; Developer 4
Add / create / execute Tenant 2; Developer 2
Edit / update / modify Tenant 2; Developer 2
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (9):

Method Route Action Controller action
GET /api/modules/dynamic Catalog CatalogAsync
POST /api/modules/dynamic/caseflow-cases/{recordId:guid}/transition Transition Case Flow TransitionCaseFlowAsync
GET /api/modules/dynamic/{moduleKey} List ListAsync
POST /api/modules/dynamic/{moduleKey} Create CreateAsync
GET /api/modules/dynamic/{moduleKey}/schema Schema / field metadata SchemaAsync
DELETE /api/modules/dynamic/{moduleKey}/{recordId:guid} Delete DeleteAsync
GET /api/modules/dynamic/{moduleKey}/{recordId:guid} Get GetAsync
PUT /api/modules/dynamic/{moduleKey}/{recordId:guid} Update UpdateAsync
PUT /api/modules/dynamic/{moduleKey}/{recordId:guid}/favorite Favorite / unfavorite FavoriteAsync

Developer API routes (9):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/dynamic List / view developerGetV1AppsModulesDynamic
POST /v1/apps/{saasAppId}/modules/dynamic/caseflow-cases/{recordId}/transition Add / create / execute developerPostV1AppsModulesDynamicCaseflowCasesRecordIdGuidTransition
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/schema Schema / field metadata developerGetV1AppsModulesDynamicModuleKeySchema
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite
ActiveWorkplace (active-workplace)

API bases: /api/modules/active-workplace.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 4; Developer 4
Add / create / execute Tenant 5; Developer 5
Edit / update / modify Tenant 1; Developer 1
Delete / remove / deactivate Tenant 1; Developer 1
Favorite / unfavorite No direct route; use Favorites only for supported authorized Records
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit Tenant 1; Developer 1

Tenant runtime routes (11):

Method Route Action Controller action
GET /api/modules/active-workplace List ListAsync
POST /api/modules/active-workplace Create CreateAsync
GET /api/modules/active-workplace/{activeWorkplaceId:guid} Get GetAsync
PATCH /api/modules/active-workplace/{activeWorkplaceId:guid} Update UpdateAsync
POST /api/modules/active-workplace/{activeWorkplaceId:guid}/activity Add / view activity RecordActivityAsync
POST /api/modules/active-workplace/{activeWorkplaceId:guid}/graph/refresh Refresh Graph RefreshGraphAsync
POST /api/modules/active-workplace/{activeWorkplaceId:guid}/participants Participant management AddParticipantAsync
GET /api/modules/active-workplace/{activeWorkplaceId:guid}/participants/catalog Participant management ParticipantCatalogAsync
DELETE /api/modules/active-workplace/{activeWorkplaceId:guid}/participants/{activeWorkplaceParticipantId:guid} Participant management RemoveParticipantAsync
GET /api/modules/active-workplace/{activeWorkplaceId:guid}/playback Playback / history PlaybackAsync
POST /api/modules/active-workplace/{activeWorkplaceId:guid}/status Status transition SetStatusAsync

Developer API routes (11):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/active-workplace List / view developerGetV1AppsModulesActiveWorkplace
POST /v1/apps/{saasAppId}/modules/active-workplace Add / create / execute developerPostV1AppsModulesActiveWorkplace
GET /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId} List / view developerGetV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuid
PATCH /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId} Edit / update / modify developerPatchV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuid
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/activity Add / view activity developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidActivity
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/graph/refresh Add / create / execute developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidGraphRefresh
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/participants Participant management developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidParticipants
GET /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/participants/catalog Participant management developerGetV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidParticipantsCatalog
DELETE /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/participants/{activeWorkplaceParticipantId} Participant management developerDeleteV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidParticipantsActiveWorkplaceParticipantIdGuid
GET /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/playback Playback / history developerGetV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidPlayback
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/status Status transition developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidStatus
Record relations (record-relations)

API bases: /api/modules/record-graph.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 4; Developer 4
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 3; Developer 3
Delete / remove / deactivate Tenant 2; Developer 2
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships Tenant 9; Developer 9
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (9):

Method Route Action Controller action
DELETE /api/modules/record-graph/knowledge-relations/{recordRelationId:guid} Relationship graph UnlinkKnowledgeAsync
GET /api/modules/record-graph/records Relationship graph SearchAsync
DELETE /api/modules/record-graph/relations/{recordRelationId:guid} Associate / remove relationship RemoveRelationAsync
GET /api/modules/record-graph/{recordId:guid} Relationship graph GetAsync
PUT /api/modules/record-graph/{recordId:guid}/favorite Favorite / unfavorite SetFavoriteAsync
GET /api/modules/record-graph/{recordId:guid}/knowledge Relationship graph RelatedKnowledgeAsync
PUT /api/modules/record-graph/{recordId:guid}/knowledge Relationship graph LinkKnowledgeAsync
GET /api/modules/record-graph/{recordId:guid}/knowledge/candidates Relationship graph ContextualKnowledgeAsync
PUT /api/modules/record-graph/{recordId:guid}/relations Associate / remove relationship AddRelationAsync

Developer API routes (9):

Method Route Action OpenAPI operationId
DELETE /v1/apps/{saasAppId}/modules/record-graph/knowledge-relations/{recordRelationId} Relationship graph developerDeleteV1AppsModulesRecordGraphKnowledgeRelationsRecordRelationIdGuid
GET /v1/apps/{saasAppId}/modules/record-graph/records Relationship graph developerGetV1AppsModulesRecordGraphRecords
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesRecordGraphRecordIdGuidFavorite
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId}/knowledge Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuidKnowledge
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/knowledge Relationship graph developerPutV1AppsModulesRecordGraphRecordIdGuidKnowledge
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId}/knowledge/candidates Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuidKnowledgeCandidates
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations
Record activity (record-activity)

API bases: /api/modules/record-activity.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 2; Developer 2
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 1; Developer 1
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit Tenant 3; Developer 3

Tenant runtime routes (3):

Method Route Action Controller action
GET /api/modules/record-activity/records Activity / audit history SearchAsync
GET /api/modules/record-activity/{recordId:guid} Activity / audit history GetAsync
PUT /api/modules/record-activity/{recordId:guid}/favorite Favorite / unfavorite SetFavoriteAsync

Developer API routes (3):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/record-activity/records Activity / audit history developerGetV1AppsModulesRecordActivityRecords
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid
PUT /v1/apps/{saasAppId}/modules/record-activity/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesRecordActivityRecordIdGuidFavorite
Global secured search (global-search)

API bases: /api/modules/global-search.

Day-to-day action coverage:

Usability action Direct route coverage
List / search / view Tenant 1; Developer 1
Add / create / execute Not published as a direct action; this capability may be derived/read-only or action-specific
Edit / update / modify Tenant 1; Developer 1
Delete / remove / deactivate Not published as a direct action; this capability may be derived/read-only or action-specific
Favorite / unfavorite Tenant 1; Developer 1
Associate / relationships No direct route; use Record relations only for supported authorized Records
Files / attachments / evidence No direct route; use Files only for supported authorized Records
Activity / audit No direct route; use Record activity only for supported authorized Records

Tenant runtime routes (2):

Method Route Action Controller action
GET /api/modules/global-search Search SearchAsync
PUT /api/modules/global-search/records/{recordId:guid}/favorite Favorite / unfavorite SetFavoriteAsync

Developer API routes (2):

Method Route Action OpenAPI operationId
GET /v1/apps/{saasAppId}/modules/global-search List / view developerGetV1AppsModulesGlobalSearch
PUT /v1/apps/{saasAppId}/modules/global-search/records/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesGlobalSearchRecordsRecordIdGuidFavorite

First-class totals: 194 tenant-runtime routes and 193 Developer API routes across 23 capabilities. Counts are per capability and contain no cross-capability duplicates.

2. Build This product routes

Origins are recipe:<step-key> for canonical Developer API recipe steps and solution-manifest for additional operation IDs explicitly present in the runnable production solution. An operation can have both origins.

CrewOS (crew-os)

Identity mode: delegated-user. Required recipe scopes: modules.goclaw.read, modules.goclaw.write, modules.record-graph.read, modules.universal-inbox.read.

Composed first-class capability route sets: dynamic-records, files, goclaw, record-activity

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
crewos-agent-profiles Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
crewos-work-requests Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
crewos-ratings Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
crewos-approval-inbox crewos-work-requests Planning is read-only; this surface applies only canonical approve, reject, retry, or take-over controls and never edits source records directly.
crewos-execution-timeline crewos-work-requests Execution evidence is an immutable derived trail; lifecycle changes occur on the source work request or governed approval.

Direct recipe/solution operations (13):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/goclaw/approvals List / view developerGetV1AppsGoclawApprovals recipe:list-approvals
POST /v1/apps/{saasAppId}/goclaw/approvals/{suggestionBatchId}/approve Approve developerPostV1AppsGoclawApprovalsSuggestionBatchIdGuidApprove recipe:approve-batch
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems recipe:verify-inbox
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:open-context, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
SignalIQ (signal-iq)

Identity mode: delegated-user. Required recipe scopes: modules.ai-insights.read, modules.ai-insights.write, modules.contacts.read, modules.record-graph.read.

Composed first-class capability route sets: ai-insights, dynamic-records, files, goclaw

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
signaliq-accounts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
signaliq-contacts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
signaliq-opportunities Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
signaliq-signals Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
signaliq-score-snapshots Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
signaliq-recommendations Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
signaliq-revenue-command-center signaliq-accounts The command center ranks and explains permitted records; lifecycle changes occur on the native account, opportunity, signal, score, or recommendation record.
signaliq-secured-insights signaliq-recommendations AI Insights are secured findings with personal feed state, not authorization to mutate CRM records.
signaliq-action-approvals signaliq-recommendations Planning is read-only; material next-best actions use the canonical permission and ActivityVersion-fenced approval chain.

Direct recipe/solution operations (14):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/modules/ai-insights List / view developerGetV1AppsModulesAiInsights recipe:list-insights
GET /v1/apps/{saasAppId}/modules/ai-insights/{insightId} List / view developerGetV1AppsModulesAiInsightsInsightIdGuid recipe:open-insight
PUT /v1/apps/{saasAppId}/modules/ai-insights/{insightId}/state State transition developerPutV1AppsModulesAiInsightsInsightIdGuidState recipe:set-state
GET /v1/apps/{saasAppId}/modules/contacts List / view developerGetV1AppsModulesContacts recipe:find-account
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:load-graph, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
Resolve (resolve)

Identity mode: delegated-user. Required recipe scopes: modules.conversations.write, modules.knowledge-articles.read, modules.universal-inbox.read, modules.universal-inbox.write.

Composed first-class capability route sets: ai-insights, conversations, dynamic-records, goclaw, knowledge-core, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
resolve-customer-contexts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
resolve-issues Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
resolve-resolution-suggestions Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
resolve-escalations Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
resolve-universal-inbox resolve-issues Universal Inbox is the attention layer; communication lifecycle remains on the native Conversation and issue lifecycle remains on Resolve Issues.
resolve-policy-findings resolve-resolution-suggestions Cited AI findings do not authorize customer-facing mutations; actions require policy or human approval.
resolve-action-approvals resolve-resolution-suggestions Planning is read-only and approval retains the current Inbox ActivityVersion fence.

Direct recipe/solution operations (15):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems recipe:list-work
GET /v1/apps/{saasAppId}/inbox/items/{inboxItemId} List / view developerGetV1AppsInboxItemsInboxItemIdGuid recipe:open-ticket
PUT /v1/apps/{saasAppId}/inbox/items/{inboxItemId}/human-state Human state / resolution developerPutV1AppsInboxItemsInboxItemIdGuidHumanState recipe:resolve
POST /v1/apps/{saasAppId}/modules/conversations/{recordId}/messages Message / reply developerPostV1AppsModulesConversationsRecordIdGuidMessages recipe:reply
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/knowledge-core List / view developerGetV1AppsModulesKnowledgeCore recipe:find-policy
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
LaunchPilot (launch-pilot)

Identity mode: delegated-user. Required recipe scopes: modules.dynamic-records.read, modules.dynamic-records.write, modules.files.write, modules.goclaw.read.

Composed first-class capability route sets: ai-insights, dynamic-records, files, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
launchpilot-campaigns Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
launchpilot-audiences Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
launchpilot-assets Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
launchpilot-channel-runs Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (cancel) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
launchpilot-experiments Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
launchpilot-performance-snapshots Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
launchpilot-campaign-readiness launchpilot-campaigns Readiness and AI findings explain permitted campaign evidence but never authorize audience disclosure, claims, spend, or activation.
launchpilot-approval-attention launchpilot-channel-runs Universal Inbox points to approval work; the managed channel run retains launch state and frozen inputs.
launchpilot-optimization-findings launchpilot-performance-snapshots Performance findings may propose a bounded experiment or budget adjustment but cannot silently activate channels or move spend.

Direct recipe/solution operations (13):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/goclaw/approvals List / view developerGetV1AppsGoclawApprovals recipe:inspect-approvals
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey recipe:create-campaign, solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/schema Schema / field metadata developerGetV1AppsModulesDynamicModuleKeySchema recipe:read-schema
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid recipe:verify-campaign, solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/files/upload File / attachment developerPostV1AppsModulesFilesUpload recipe:upload-asset
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
Northstar (northstar)

Identity mode: delegated-user. Required recipe scopes: modules.ai-insights.read, modules.ai-insights.write, modules.global-search.read, modules.record-activity.read, modules.record-graph.read.

Composed first-class capability route sets: ai-insights, dynamic-records, files, goclaw

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
northstar-metric-definitions Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
northstar-metric-observations Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
northstar-forecasts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
northstar-signals Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
northstar-scenarios Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
northstar-briefings Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
northstar-executive-scorecard northstar-metric-definitions The scorecard summarizes currently permitted managed metric and observation records and links back to their native lifecycle.
northstar-synthesis northstar-signals AI synthesis explains authorized evidence and uncertainty but cannot invent or overwrite metrics, forecasts, or decisions.
northstar-decision-approvals northstar-briefings Planning and approval attention do not mutate operating systems; approved follow-up uses the canonical governed action chain.

Direct recipe/solution operations (13):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/modules/ai-insights List / view developerGetV1AppsModulesAiInsights recipe:list-insights
PUT /v1/apps/{saasAppId}/modules/ai-insights/{insightId}/state State transition developerPutV1AppsModulesAiInsightsInsightIdGuidState recipe:record-disposition
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/global-search List / view developerGetV1AppsModulesGlobalSearch recipe:search
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid recipe:load-history, solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:load-evidence, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
TeamBox (team-box)

Identity mode: delegated-user. Required recipe scopes: modules.conversations.read, modules.conversations.write, modules.universal-inbox.read, modules.universal-inbox.write.

Composed first-class capability route sets: ai-insights, conversations, dynamic-records, files, goclaw, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
teambox-channel-intake-policies Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
teambox-queues Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
teambox-routing-rules Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
teambox-classification-reviews Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
teambox-sla-policies Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
teambox-handoff-playbooks Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
teambox-attention-queue teambox-queues Universal Inbox is the attention and ownership projection; native conversations and their source business records keep their lifecycle and history.
teambox-triage-insights teambox-classification-reviews AI classification and summaries expose permitted evidence and uncertainty; reviewers change managed disposition without overwriting the native conversation.
teambox-action-approvals teambox-handoff-playbooks Prepared customer replies and material operations stay fenced to the Inbox ActivityVersion and require configured policy or human approval.

Direct recipe/solution operations (15):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems recipe:list-attention
GET /v1/apps/{saasAppId}/inbox/items/{inboxItemId} List / view developerGetV1AppsInboxItemsInboxItemIdGuid recipe:open-item
PUT /v1/apps/{saasAppId}/inbox/items/{inboxItemId}/human-state Human state / resolution developerPutV1AppsInboxItemsInboxItemIdGuidHumanState recipe:claim-or-complete
GET /v1/apps/{saasAppId}/modules/conversations/{recordId} List / view developerGetV1AppsModulesConversationsRecordIdGuid recipe:open-conversation
POST /v1/apps/{saasAppId}/modules/conversations/{recordId}/messages Message / reply developerPostV1AppsModulesConversationsRecordIdGuidMessages recipe:reply
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
RelateEverything (relate-everything)

Identity mode: delegated-user. Required recipe scopes: modules.contacts.write, modules.global-search.read, modules.record-graph.read, modules.record-graph.write.

Composed first-class capability route sets: ai-insights, contacts, dynamic-records, files, global-search, record-relations

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
relateeverything-companies Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
relateeverything-workstreams Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
relateeverything-opportunities Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
relateeverything-relationship-contexts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
relateeverything-duplicate-reviews Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
relateeverything-connected-automations Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
relateeverything-connected-search relateeverything-companies Search discovers only currently authorized canonical records and links to the owning module lifecycle.
relateeverything-permissioned-graph relateeverything-relationship-contexts Graph traversal omits inaccessible nodes and incident edges; relation creation and removal remain explicit secured operations.
relateeverything-context-insights relateeverything-duplicate-reviews AI summarizes currently authorized connected context and marks inferred links separately from confirmed facts.

Direct recipe/solution operations (12):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/modules/contacts Add / create / execute developerPostV1AppsModulesContacts recipe:create-contact
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/global-search List / view developerGetV1AppsModulesGlobalSearch recipe:search
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:read-graph, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations recipe:relate-record, solution-manifest
CustomerPortal (customer-portal)

Identity mode: app-credential-then-delegated-user. Required recipe scopes: modules.conversations.read, modules.files.read, tenant-accounts.write, tenant-users.read, tenant-users.tokens.issue, tenant-users.write.

Composed first-class capability route sets: dynamic-records, files

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
customerportal-requests Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
customerportal-milestones Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
customerportal-approvals Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (revoke) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
customerportal-shared-updates Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
customerportal-internal-operations Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
customerportal-visibility-reviews Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
customerportal-global-search customerportal-requests Search is derived and opens the native secured record lifecycle.
customerportal-relationship-graph customerportal-requests Graph traversal returns only independently authorized nodes and edges.
customerportal-internal-ai customerportal-internal-operations AI Insights are internal read-only synthesis and never authorize customer-facing action.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/accounts Add / create / execute developerHeadlessIdentityCreateAccount recipe:create-account
GET /v1/apps/{saasAppId}/accounts/{appAccountId}/security-catalog List / view developerHeadlessIdentityGetSecurityCatalog recipe:read-security-catalog
POST /v1/apps/{saasAppId}/accounts/{appAccountId}/users Add / create / execute developerHeadlessIdentityCreateUser recipe:create-user
GET /v1/apps/{saasAppId}/modules/conversations List / view developerGetV1AppsModulesConversations recipe:list-shared-conversations
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/files File / attachment developerGetV1AppsModulesFiles recipe:list-shared-files
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
POST /v1/apps/{saasAppId}/user-token-exchanges Add / create / execute developerHeadlessIdentityExchangeUserToken recipe:issue-user-token
CompanyIQ (company-iq)

Identity mode: delegated-user. Required recipe scopes: ai.read, ai.write, modules.knowledge-articles.write, modules.record-graph.write.

Composed first-class capability route sets: dynamic-records, files

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
companyiq-source-catalog Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
companyiq-business-context Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
companyiq-intelligence-runs Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (cancel) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
companyiq-opportunity-insights Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
companyiq-evidence-reviews Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
companyiq-semantic-search companyiq-source-catalog Search returns only independently authorized source evidence and links back to the native owner.
companyiq-native-ai-insights companyiq-opportunity-insights The feed is a secured projection; lifecycle remains on the underlying insight and governed action records.

Direct recipe/solution operations (15):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/ai/search Search developerAiSearch recipe:search
POST /v1/apps/{saasAppId}/ai/sources/records/{recordId}/ingest Add / create / execute developerAiIngest recipe:ingest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/knowledge-core Add / create / execute developerPostV1AppsModulesKnowledgeCore recipe:create-knowledge
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/publish Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidPublish recipe:publish
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/knowledge Relationship graph developerPutV1AppsModulesRecordGraphRecordIdGuidKnowledge recipe:connect-record
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
OpsAtlas (ops-atlas)

Identity mode: delegated-user. Required recipe scopes: modules.knowledge-articles.read, modules.knowledge-articles.write.

Composed first-class capability route sets: dynamic-records, files, knowledge-core

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
opsatlas-operating-domains Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
opsatlas-source-registers Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
opsatlas-review-programs Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
opsatlas-gap-triage Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
opsatlas-governed-actions Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (cancel) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
opsatlas-secured-answers opsatlas-source-registers Answer synthesis is read-only and opens exact published source revisions; unsupported answers create questions instead of fabricating.
opsatlas-knowledge-health opsatlas-gap-triage Health is a secured projection; lifecycle remains on Knowledge items, questions, reviews, and triage records.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/knowledge-core Add / create / execute developerPostV1AppsModulesKnowledgeCore recipe:create-article
GET /v1/apps/{saasAppId}/modules/knowledge-core/gaps List / view developerGetV1AppsModulesKnowledgeCoreGaps recipe:review-gaps
GET /v1/apps/{saasAppId}/modules/knowledge-core/health List / view developerGetV1AppsModulesKnowledgeCoreHealth recipe:review-health
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/owners Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidOwners recipe:assign-owner
POST /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/publish Add / create / execute developerPostV1AppsModulesKnowledgeCoreRecordIdGuidPublish recipe:publish
GET /v1/apps/{saasAppId}/modules/knowledge-core/{recordId}/revisions List / view developerGetV1AppsModulesKnowledgeCoreRecordIdGuidRevisions recipe:verify-revisions
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
Headless SaaS DB (headless-saas-db)

Identity mode: app-credential-then-delegated-user. Required recipe scopes: modules.dynamic-records.write, modules.record-graph.read, modules.record-graph.write, records.read, records.write, tenant-accounts.write, tenant-users.tokens.issue, tenant-users.write, webhooks.write.

Composed first-class capability route sets: dynamic-records, files

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
headless-domain-records Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
headless-api-client-profiles Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (revoke) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
headless-inbound-contracts Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
headless-webhook-policies Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
headless-operation-evidence Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
headless-native-api-clients headless-api-client-profiles Profiles link to the native Developer Console credential lifecycle; one-time secrets are never copied into dynamic records or browser output.
headless-delivery-diagnostics headless-operation-evidence Diagnostics are bounded projections; retries and state changes remain on authorized native Developer API operations.

Direct recipe/solution operations (20):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/accounts Add / create / execute developerHeadlessIdentityCreateAccount recipe:create-account
POST /v1/apps/{saasAppId}/accounts/{appAccountId}/users Add / create / execute developerHeadlessIdentityCreateUser recipe:create-user
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite recipe:favorite-record, solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid recipe:remove-relation, solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:inspect-graph, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations recipe:add-relation, solution-manifest
POST /v1/apps/{saasAppId}/objects/{objectKey}/records Add / create / execute developerRecordsCreate recipe:create-record
DELETE /v1/apps/{saasAppId}/objects/{objectKey}/records/{recordId} Delete / remove / deactivate developerRecordsDelete recipe:remove-record
GET /v1/apps/{saasAppId}/objects/{objectKey}/records/{recordId} List / view developerRecordsGet recipe:read-record
PATCH /v1/apps/{saasAppId}/objects/{objectKey}/records/{recordId} Edit / update / modify developerRecordsUpdate recipe:update-record
GET /v1/apps/{saasAppId}/objects/{objectKey}/schema Schema / field metadata developerRecordsGetSchema recipe:read-object-schema
POST /v1/apps/{saasAppId}/user-token-exchanges Add / create / execute developerHeadlessIdentityExchangeUserToken recipe:issue-token
POST /v1/apps/{saasAppId}/webhooks Add / create / execute developerWebhookSubscriptionsCreate recipe:create-webhook
PUT /v1/apps/{saasAppId}/webhooks/{subscriptionId} Edit / update / modify developerWebhookSubscriptionsUpdate recipe:deactivate-webhook
CaseFlow (case-flow)

Identity mode: delegated-user. Required recipe scopes: modules.checklists-signoffs.write, modules.dynamic-records.read, modules.dynamic-records.write, modules.files.write, modules.universal-inbox.read.

Composed first-class capability route sets: ai-insights, checklists-signoffs, dynamic-records, files, record-activity, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
caseflow-cases Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-parties Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-stage-transitions Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-tasks Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-evidence Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-decisions Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
caseflow-approvals Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
caseflow-inbox caseflow-approvals Universal Inbox is the attention and approval surface; cases, decisions and signoff checklists retain native lifecycle ownership.
caseflow-ai-review caseflow-decisions AI may summarize permitted evidence and suggest next work but cannot decide or advance a case.
caseflow-activity caseflow-cases Activity is an audit projection with links back to the secured native case records.

Direct recipe/solution operations (15):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems recipe:verify-attention
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs Add / create / execute developerPostV1AppsModulesChecklistsSignoffsRuns recipe:start-checklist
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs/{checklistRunId}/submit Submit workflow developerPostV1AppsModulesChecklistsSignoffsRunsChecklistRunIdGuidSubmit recipe:submit-stage
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey recipe:create-case, solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/schema Schema / field metadata developerGetV1AppsModulesDynamicModuleKeySchema recipe:read-case-schema
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/files/upload File / attachment developerPostV1AppsModulesFilesUpload recipe:upload-proof
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
AssetOps (asset-ops)

Identity mode: delegated-user. Required recipe scopes: modules.checklists-signoffs.write, modules.dynamic-records.write, modules.files.write, modules.record-graph.read, modules.work-orders.write.

Composed first-class capability route sets: ai-insights, checklists-signoffs, contacts, dynamic-records, files, record-activity, work-orders

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
assetops-sites Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (deactivate) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
assetops-assets Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
assetops-inspection-findings Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
assetops-part-usages Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
assetops-service-events Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (archive) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
assetops-condition-signals assetops-assets AI condition summaries are suggestions over permitted history and cannot mutate asset or work state.
assetops-activity assetops-service-events Activity is an audit projection with links back to the secured native record.

Direct recipe/solution operations (13):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs Add / create / execute developerPostV1AppsModulesChecklistsSignoffsRuns recipe:start-inspection
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey recipe:create-asset, solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/files/upload File / attachment developerPostV1AppsModulesFilesUpload recipe:upload-evidence
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid recipe:verify-graph, solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
POST /v1/apps/{saasAppId}/modules/work-orders Add / create / execute developerPostV1AppsModulesWorkOrders recipe:create-work-order
ActiveWorkplace (active-workplace)

Identity mode: delegated-user. Required recipe scopes: modules.active-workplace.read, modules.active-workplace.write.

Composed first-class capability route sets: active-workplace, dynamic-records, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
activeworkplace-work-items Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (close) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET
activeworkplace-playbooks Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
activeworkplace-playback activeworkplace-work-items Graph Playback re-applies current authorization and exposes no mutation controls.
activeworkplace-inbox activeworkplace-work-items Universal Inbox is the shared attention layer; the root Record and workplace remain native owners.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/modules/active-workplace Add / create / execute developerPostV1AppsModulesActiveWorkplace recipe:create-workplace
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/activity Add / view activity developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidActivity recipe:append-activity
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/graph/refresh Add / create / execute developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidGraphRefresh recipe:refresh-graph
POST /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/participants Participant management developerPostV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidParticipants recipe:add-participant
GET /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/participants/catalog Participant management developerGetV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidParticipantsCatalog recipe:list-participants
GET /v1/apps/{saasAppId}/modules/active-workplace/{activeWorkplaceId}/playback Playback / history developerGetV1AppsModulesActiveWorkplaceActiveWorkplaceIdGuidPlayback recipe:playback
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
FieldService (field-service)

Identity mode: delegated-user. Required recipe scopes: modules.calendar.write, modules.checklists-signoffs.write, modules.contacts.read, modules.work-orders.write.

Composed first-class capability route sets: ai-insights, calendar, contacts, conversations, dynamic-records, universal-inbox, work-orders

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
change-requests Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (cancel) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
fieldservice-ai-assistant change-requests The assistant returns cited permitted evidence and cannot mutate jobs, approvals or customer messages.
fieldservice-inbox change-requests Universal Inbox projects attention while native Records remain source of truth.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
POST /v1/apps/{saasAppId}/modules/calendar Add / create / execute developerPostV1AppsModulesCalendar recipe:schedule
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs Add / create / execute developerPostV1AppsModulesChecklistsSignoffsRuns recipe:start-proof-checklist
GET /v1/apps/{saasAppId}/modules/contacts List / view developerGetV1AppsModulesContacts recipe:find-customer
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
POST /v1/apps/{saasAppId}/modules/work-orders Add / create / execute developerPostV1AppsModulesWorkOrders recipe:create-job
PUT /v1/apps/{saasAppId}/modules/work-orders/{recordId}/assignment Assignment update developerPutV1AppsModulesWorkOrdersRecordIdGuidAssignment recipe:assign-technician
PUT /v1/apps/{saasAppId}/modules/work-orders/{recordId}/status Status transition developerPutV1AppsModulesWorkOrdersRecordIdGuidStatus recipe:complete-job
Reservations (reservations)

Identity mode: delegated-user. Required recipe scopes: modules.reservations.read, modules.reservations.write.

Composed first-class capability route sets: calendar, contacts, dynamic-records, reservations

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
reservation-policies Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
reservation-payment-state reservation-policies Provider-synchronized payment state is displayed but never client-authored.
reservation-capacity reservation-policies Availability is derived from server-locked overlap checks, not editable counters.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
GET /v1/apps/{saasAppId}/modules/reservations/products List / view developerGetV1AppsModulesReservationsProducts recipe:list-products
POST /v1/apps/{saasAppId}/modules/reservations/products Add / create / execute developerPostV1AppsModulesReservationsProducts recipe:publish-product
POST /v1/apps/{saasAppId}/modules/reservations/purchase Add / create / execute developerPostV1AppsModulesReservationsPurchase recipe:purchase
GET /v1/apps/{saasAppId}/modules/reservations/{recordId} List / view developerGetV1AppsModulesReservationsRecordIdGuid recipe:open-reservation
PUT /v1/apps/{saasAppId}/modules/reservations/{recordId}/followups Edit / update / modify developerPutV1AppsModulesReservationsRecordIdGuidFollowups recipe:set-follow-up
PUT /v1/apps/{saasAppId}/modules/reservations/{recordId}/status Status transition developerPutV1AppsModulesReservationsRecordIdGuidStatus recipe:set-status
Checkoff & Approval (checkoff-approval)

Identity mode: delegated-user. Required recipe scopes: modules.checklists-signoffs.read, modules.checklists-signoffs.write, modules.files.write.

Composed first-class capability route sets: checklists-signoffs, dynamic-records, files, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
verification-programs Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
checklist-progress verification-programs Progress is derived from versioned native run items and validated evidence.
signoff-attention verification-programs Universal Inbox projects the native Workflow approval and preserves its ActivityVersion fence.

Direct recipe/solution operations (21):

Method Route Action OpenAPI operationId Origin
PUT /v1/apps/{saasAppId}/modules/checklists-signoffs/items/{checklistRunItemId} Edit / update / modify developerPutV1AppsModulesChecklistsSignoffsItemsChecklistRunItemIdGuid recipe:complete-item
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/items/{checklistRunItemId}/proof File proof / evidence developerPostV1AppsModulesChecklistsSignoffsItemsChecklistRunItemIdGuidProof recipe:attach-proof
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs Add / create / execute developerPostV1AppsModulesChecklistsSignoffsRuns recipe:start-run
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/runs/{checklistRunId} List / view developerGetV1AppsModulesChecklistsSignoffsRunsChecklistRunIdGuid recipe:verify
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/runs/{checklistRunId}/submit Submit workflow developerPostV1AppsModulesChecklistsSignoffsRunsChecklistRunIdGuidSubmit recipe:submit
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/templates List / view developerGetV1AppsModulesChecklistsSignoffsTemplates recipe:list-templates
POST /v1/apps/{saasAppId}/modules/checklists-signoffs/templates Add / create / execute developerPostV1AppsModulesChecklistsSignoffsTemplates recipe:create-template
DELETE /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} Delete / remove / deactivate developerDeleteV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid recipe:deactivate-template
GET /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} List / view developerGetV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid recipe:open-template
PUT /v1/apps/{saasAppId}/modules/checklists-signoffs/templates/{checklistTemplateId} Edit / update / modify developerPutV1AppsModulesChecklistsSignoffsTemplatesChecklistTemplateIdGuid recipe:update-template
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
POST /v1/apps/{saasAppId}/modules/files/upload File / attachment developerPostV1AppsModulesFilesUpload recipe:upload-proof
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest
Support Tickets (support-tickets)

Identity mode: delegated-user. Required recipe scopes: modules.conversations.write, modules.universal-inbox.read, modules.universal-inbox.write.

Composed first-class capability route sets: conversations, dynamic-records, knowledge-core, record-relations, universal-inbox

Managed record day-to-day lifecycle:

Managed record type List View Add Edit / modify Remove Favorite Associate Files / evidence Activity
support-playbooks Yes — GET Yes — GET Yes — POST Yes — PUT Yes — DELETE (retire) Yes — PUT on/off Yes — GET/PUT/DELETE Shared Files by authorized recordId Yes — GET

Derived/read-only surfaces do not duplicate destructive lifecycle actions:

Surface Native owner / return path Why it is read-only here
support-ticket-attention support-playbooks Universal Inbox projects the Conversation into ticket identity, attention, assignment, SLA and audited resolution state; it does not replace the source thread.
support-customer-context support-playbooks Related customer and business records remain independently secured native records with paths to their owning modules.

Direct recipe/solution operations (16):

Method Route Action OpenAPI operationId Origin
GET /v1/apps/{saasAppId}/inbox/email-channels/ticketing Mailbox ticketing configuration developerGetV1AppsInboxEmailChannelsTicketing recipe:list-email-channels
PUT /v1/apps/{saasAppId}/inbox/email-channels/{channelConnectionId}/ticketing Mailbox ticketing configuration developerPutV1AppsInboxEmailChannelsChannelConnectionIdGuidTicketing recipe:enable-ticketing
GET /v1/apps/{saasAppId}/inbox/items List / view developerGetV1AppsInboxItems recipe:list-tickets
GET /v1/apps/{saasAppId}/inbox/items/{inboxItemId} List / view developerGetV1AppsInboxItemsInboxItemIdGuid recipe:open-ticket, recipe:verify
PUT /v1/apps/{saasAppId}/inbox/items/{inboxItemId}/human-state Human state / resolution developerPutV1AppsInboxItemsInboxItemIdGuidHumanState recipe:resolve
POST /v1/apps/{saasAppId}/modules/conversations/{recordId}/messages Message / reply developerPostV1AppsModulesConversationsRecordIdGuidMessages recipe:reply
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} List / view developerGetV1AppsModulesDynamicModuleKey solution-manifest
POST /v1/apps/{saasAppId}/modules/dynamic/{moduleKey} Add / create / execute developerPostV1AppsModulesDynamicModuleKey solution-manifest
DELETE /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Delete / remove / deactivate developerDeleteV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} List / view developerGetV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId} Edit / update / modify developerPutV1AppsModulesDynamicModuleKeyRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/dynamic/{moduleKey}/{recordId}/favorite Favorite / unfavorite developerPutV1AppsModulesDynamicModuleKeyRecordIdGuidFavorite solution-manifest
GET /v1/apps/{saasAppId}/modules/record-activity/{recordId} Activity / audit history developerGetV1AppsModulesRecordActivityRecordIdGuid solution-manifest
DELETE /v1/apps/{saasAppId}/modules/record-graph/relations/{recordRelationId} Associate / remove relationship developerDeleteV1AppsModulesRecordGraphRelationsRecordRelationIdGuid solution-manifest
GET /v1/apps/{saasAppId}/modules/record-graph/{recordId} Relationship graph developerGetV1AppsModulesRecordGraphRecordIdGuid solution-manifest
PUT /v1/apps/{saasAppId}/modules/record-graph/{recordId}/relations Associate / remove relationship developerPutV1AppsModulesRecordGraphRecordIdGuidRelations solution-manifest

Build This totals: 18 products, 73 recipe step references, and 76 unique direct recipe/solution routes after adding manifest operations and removing duplicates.

Interpretation constraints

  • A route's presence is not permission. The server derives SaaS, tenant account, user, DataRole, location, and capabilities from verified identity.
  • Route parameters such as {saasAppId}, {recordId}, or {moduleKey} are query targets, not authorization proof.
  • Build This products are compositions. Their direct table is deliberately limited to routes explicitly named by generated recipes or solution manifests; their linked first-class modules provide the complete native route surface above.
  • 'Every record' means every canonical record currently authorized for the caller. It never means tenant-wide disclosure, a relationship to a derived projection, or permission inherited through an edge.
  • SQL procedures are not HTTP routes. Procedure joins remain in the machine-readable catalog and current database exports and are not duplicated here.
  • This inventory is prospective technical documentation and does not reproduce private reasoning.