naftiko: 1.0.0-alpha2 info: label: Novu API — Workflows description: 'Notifications — Workflows. 9 operations. Lead operation: Create a Workflow. Self-contained Naftiko capability covering one Novu business surface.' tags: - Novu - Notifications - Workflows created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: NOVU_API_KEY: NOVU_API_KEY capability: consumes: - type: http namespace: novu-workflows baseUri: https://api.novu.co description: Novu REST API — Workflows business capability. Self-contained, no shared references. authentication: type: apikey key: Authorization value: '{{env.NOVU_API_KEY}}' placement: header resources: - name: v2-workflows path: /v2/workflows operations: - name: WorkflowController_create method: POST description: Novu Create a Workflow inputParameters: - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: WorkflowController_searchWorkflows method: GET description: Novu List All Workflows inputParameters: - name: limit in: query type: number required: false description: Number of items to return per page - name: offset in: query type: number required: false description: Number of items to skip before starting to return results - name: orderDirection in: query type: string required: false description: Direction of sorting - name: orderBy in: query type: string required: false description: Field to sort the results by - name: query in: query type: string required: false description: Search query to filter workflows - name: tags in: query type: array required: false description: Filter workflows by tags - name: status in: query type: array required: false description: Filter workflows by status outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-workflows-workflowid-sync path: /v2/workflows/{workflowId}/sync operations: - name: WorkflowController_sync method: PUT description: Novu Sync a Workflow inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-workflows-workflowid path: /v2/workflows/{workflowId} operations: - name: WorkflowController_update method: PUT description: Novu Update a Workflow inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: WorkflowController_getWorkflow method: GET description: Novu Retrieve a Workflow inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: environmentId in: query type: string required: false description: environmentId outputRawFormat: json outputParameters: - name: result type: object value: $. - name: WorkflowController_removeWorkflow method: DELETE description: Novu Delete a Workflow inputParameters: - name: workflowId in: path type: string required: true description: workflowId outputRawFormat: json outputParameters: - name: result type: object value: $. - name: WorkflowController_patchWorkflow method: PATCH description: Novu Update a Workflow inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-workflows-workflowid-step-stepid-preview path: /v2/workflows/{workflowId}/step/{stepId}/preview operations: - name: WorkflowController_generatePreview method: POST description: Novu Generate a Step Preview inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: stepId in: path type: string required: true description: stepId - name: body in: body type: object required: true description: Request body payload outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-workflows-workflowid-steps-stepid path: /v2/workflows/{workflowId}/steps/{stepId} operations: - name: WorkflowController_getWorkflowStepData method: GET description: Novu Retrieve Workflow Step inputParameters: - name: workflowId in: path type: string required: true description: workflowId - name: stepId in: path type: string required: true description: stepId outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: novu-workflows-rest port: 8080 description: REST adapter for Novu API — Workflows. One Spectral-compliant resource per consumed operation. resources: - path: /v2/workflows name: v2-workflows description: REST surface for /v2/workflows. operations: - method: POST name: WorkflowController_create description: Novu Create a Workflow call: novu-workflows.WorkflowController_create with: body: rest.body outputParameters: - type: object mapping: $. - method: GET name: WorkflowController_searchWorkflows description: Novu List All Workflows call: novu-workflows.WorkflowController_searchWorkflows with: limit: rest.limit offset: rest.offset orderDirection: rest.orderDirection orderBy: rest.orderBy query: rest.query tags: rest.tags status: rest.status outputParameters: - type: object mapping: $. - path: /v2/workflows/{workflowId}/sync name: v2-workflows-workflowid-sync description: REST surface for /v2/workflows/{workflowId}/sync. operations: - method: PUT name: WorkflowController_sync description: Novu Sync a Workflow call: novu-workflows.WorkflowController_sync with: workflowId: rest.workflowId body: rest.body outputParameters: - type: object mapping: $. - path: /v2/workflows/{workflowId} name: v2-workflows-workflowid description: REST surface for /v2/workflows/{workflowId}. operations: - method: PUT name: WorkflowController_update description: Novu Update a Workflow call: novu-workflows.WorkflowController_update with: workflowId: rest.workflowId body: rest.body outputParameters: - type: object mapping: $. - method: GET name: WorkflowController_getWorkflow description: Novu Retrieve a Workflow call: novu-workflows.WorkflowController_getWorkflow with: workflowId: rest.workflowId environmentId: rest.environmentId outputParameters: - type: object mapping: $. - method: DELETE name: WorkflowController_removeWorkflow description: Novu Delete a Workflow call: novu-workflows.WorkflowController_removeWorkflow with: workflowId: rest.workflowId outputParameters: - type: object mapping: $. - method: PATCH name: WorkflowController_patchWorkflow description: Novu Update a Workflow call: novu-workflows.WorkflowController_patchWorkflow with: workflowId: rest.workflowId body: rest.body outputParameters: - type: object mapping: $. - path: /v2/workflows/{workflowId}/step/{stepId}/preview name: v2-workflows-workflowid-step-stepid-preview description: REST surface for /v2/workflows/{workflowId}/step/{stepId}/preview. operations: - method: POST name: WorkflowController_generatePreview description: Novu Generate a Step Preview call: novu-workflows.WorkflowController_generatePreview with: workflowId: rest.workflowId stepId: rest.stepId body: rest.body outputParameters: - type: object mapping: $. - path: /v2/workflows/{workflowId}/steps/{stepId} name: v2-workflows-workflowid-steps-stepid description: REST surface for /v2/workflows/{workflowId}/steps/{stepId}. operations: - method: GET name: WorkflowController_getWorkflowStepData description: Novu Retrieve Workflow Step call: novu-workflows.WorkflowController_getWorkflowStepData with: workflowId: rest.workflowId stepId: rest.stepId outputParameters: - type: object mapping: $. - type: mcp namespace: novu-workflows-mcp port: 9090 transport: http description: MCP adapter for Novu API — Workflows. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: create-workflow description: Novu Create a Workflow hints: readOnly: false destructive: false idempotent: false call: novu-workflows.WorkflowController_create with: body: tools.body outputParameters: - type: object mapping: $. - name: list-all-workflows description: Novu List All Workflows hints: readOnly: true destructive: false idempotent: true call: novu-workflows.WorkflowController_searchWorkflows with: limit: tools.limit offset: tools.offset orderDirection: tools.orderDirection orderBy: tools.orderBy query: tools.query tags: tools.tags status: tools.status outputParameters: - type: object mapping: $. - name: sync-workflow description: Novu Sync a Workflow hints: readOnly: false destructive: false idempotent: true call: novu-workflows.WorkflowController_sync with: workflowId: tools.workflowId body: tools.body outputParameters: - type: object mapping: $. - name: update-workflow description: Novu Update a Workflow hints: readOnly: false destructive: false idempotent: true call: novu-workflows.WorkflowController_update with: workflowId: tools.workflowId body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-workflow description: Novu Retrieve a Workflow hints: readOnly: true destructive: false idempotent: true call: novu-workflows.WorkflowController_getWorkflow with: workflowId: tools.workflowId environmentId: tools.environmentId outputParameters: - type: object mapping: $. - name: delete-workflow description: Novu Delete a Workflow hints: readOnly: false destructive: true idempotent: true call: novu-workflows.WorkflowController_removeWorkflow with: workflowId: tools.workflowId outputParameters: - type: object mapping: $. - name: update-workflow-2 description: Novu Update a Workflow hints: readOnly: false destructive: false idempotent: true call: novu-workflows.WorkflowController_patchWorkflow with: workflowId: tools.workflowId body: tools.body outputParameters: - type: object mapping: $. - name: generate-step-preview description: Novu Generate a Step Preview hints: readOnly: false destructive: false idempotent: false call: novu-workflows.WorkflowController_generatePreview with: workflowId: tools.workflowId stepId: tools.stepId body: tools.body outputParameters: - type: object mapping: $. - name: retrieve-workflow-step description: Novu Retrieve Workflow Step hints: readOnly: true destructive: false idempotent: true call: novu-workflows.WorkflowController_getWorkflowStepData with: workflowId: tools.workflowId stepId: tools.stepId outputParameters: - type: object mapping: $.