Knock Workflow Triggers API

Operations for triggering and canceling workflow executions.

OpenAPI Specification

knock-workflow-triggers-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Knock Audiences Workflow Triggers API
  version: '1.0'
  description: An Audience is a segment of users.
servers:
- url: https://api.knock.app
  variables: {}
security:
- BearerAuth: []
tags:
- description: Operations for triggering and canceling workflow executions.
  name: Workflow Triggers
paths:
  /v1/notify/cancel:
    post:
      callbacks: {}
      description: Cancels a previously triggered workflow using the provided cancellation key.
      operationId: cancelWorkflow (2)
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Cancel Request'
        description: Cancel Payload
        required: true
      responses:
        '204':
          description: No Content
      summary: Cancel workflow
      tags:
      - Workflow Triggers
      x-ratelimit-tier: 3
  /v1/notify:
    post:
      callbacks: {}
      description: Triggers a workflow with the given key, actor, recipients, and optional data.
      operationId: triggerWorkflow
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Notify Request'
        description: Notify Payload
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Notify Response'
          description: OK
      summary: Trigger workflow
      tags:
      - Workflow Triggers
      x-ratelimit-tier: 3
components:
  schemas:
    Notify Response:
      description: The response from triggering a workflow.
      example:
        result_id: wf_1234567890abcdef
      properties:
        result_id:
          description: This value allows you to track individual messages associated with this trigger request.
          type: string
          x-struct: null
          x-validate: null
      required:
      - result_id
      title: Notify Response
      type: object
      x-struct: Elixir.SwitchboardWeb.Specs.Notify.Responses.NotifyResponse
      x-validate: null
    RecipientReference:
      description: A reference to a recipient, either a user identifier (string) or an object reference (ID, collection).
      example: user_123
      oneOf:
      - description: The ID of the user which is used as the reference for the recipient.
        example: user_123
        nullable: false
        title: UserReference
        type: string
        x-struct: null
        x-validate: null
      - description: A reference to a recipient object.
        example:
          collection: projects
          id: project_123
        properties:
          collection:
            description: The collection the recipient object belongs to.
            example: projects
            nullable: false
            type: string
            x-struct: null
            x-validate: null
          id:
            description: An identifier for the recipient object.
            example: project_123
            nullable: false
            type: string
            x-struct: null
            x-validate: null
        title: ObjectReference
        type: object
        x-struct: null
        x-validate: null
      title: RecipientReference
      x-struct: Elixir.SwitchboardWeb.V1.Specs.RecipientReference
      x-validate: null
    Cancel Request:
      description: When invoked using a specific workflow key and cancellation key, will cancel any queued workflow runs associated with that key/cancellation key pair. Can optionally provide one or more recipients to scope the request to.
      example:
        cancellation_key: comment_123
        name: new-comment
        recipients:
        - user_456
      properties:
        cancellation_key:
          description: An optional key that is used to reference a specific workflow trigger request when issuing a [workflow cancellation](/send-notifications/canceling-workflows) request. Must be provided while triggering a workflow in order to enable subsequent cancellation. Should be unique across trigger requests to avoid unintentional cancellations.
          type: string
          x-struct: null
          x-validate: null
        name:
          description: The key of the workflow to cancel.
          type: string
          x-struct: null
          x-validate: null
        recipients:
          description: A list of recipients to cancel the notification for. If omitted, cancels for all recipients associated with the cancellation key.
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      required:
      - name
      - cancellation_key
      title: Cancel Request
      type: object
      x-struct: Elixir.SwitchboardWeb.Specs.Notify.Requests.CancelRequest
      x-validate: null
    Notify Request:
      description: A request to trigger a notification workflow.
      example:
        actor: user_123
        cancellation_key: comment_123
        data:
          comment: Great work on this feature!
          url: https://example.com/projects/123/comments/456
        name: new-comment
        recipients:
        - user_456
        - collection: projects
          id: project_789
      properties:
        actor:
          $ref: '#/components/schemas/RecipientReference'
        cancellation_key:
          description: An optional key that is used to reference a specific workflow trigger request when issuing a [workflow cancellation](/send-notifications/canceling-workflows) request. Must be provided while triggering a workflow in order to enable subsequent cancellation. Should be unique across trigger requests to avoid unintentional cancellations.
          nullable: true
          type: string
          x-struct: null
          x-validate: null
        data:
          additionalProperties: true
          description: An optional map of data to pass into the workflow execution. There is a 10MB limit on the size of the full `data` payload. Any individual string value greater than 1024 bytes in length will be [truncated](/developer-tools/api-logs#log-truncation) in your logs.
          nullable: true
          type: object
          x-struct: null
          x-validate: null
        name:
          description: The key of the workflow to trigger.
          type: string
          x-struct: null
          x-validate: null
        recipients:
          description: A list of recipients.
          items:
            $ref: '#/components/schemas/RecipientReference'
          type: array
          x-struct: null
          x-validate: null
      required:
      - name
      - actor
      - recipients
      title: Notify Request
      type: object
      x-struct: Elixir.SwitchboardWeb.Specs.Notify.Requests.TriggerRequest
      x-validate: null
  securitySchemes:
    BearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http