Knock · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Knock App Objects API

20 actions 20 updates phrasing extends openapi/knock-app-objects-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Knock's API. It is a proposal applied on top of the contract, not a document Knock publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 20 · first 16 shown; the file carries all of them

$.info
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/workflows'].put
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/channel_types/{type}'].put
$.paths['/v1/objects/{collection}/bulk/delete'].post
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/categories/{key}'].put
$.paths['/v1/objects/{collection}/{object_id}/preferences'].get
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/workflows/{key}'].put
$.paths['/v1/objects/{collection}/bulk/subscriptions/add'].post
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/categories'].put
$.paths['/v1/objects/{collection}/{id}'].get
$.paths['/v1/objects/{collection}/{id}'].put
$.paths['/v1/objects/{collection}/{id}'].delete
$.paths['/v1/objects/{collection}'].get
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/channel_types'].put
$.paths['/v1/objects/{collection}/bulk/subscriptions/delete'].post
$.paths['/v1/objects/{collection}/{object_id}/preferences/{id}'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Knock App Objects API
  version: 1.0.0
extends: openapi/knock-app-objects-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 19
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/workflows'].put
  update:
    x-apievangelist-phrasing:
      intent: Update all workflow settings in an object's preferences
      effect: write
      questions:
      - How do I replace the workflow opt-ins for an object's preference set?
      - Can an object opt out of several workflows in one update?
      instructions:
      - text: Replace the workflows section of preference set {id} for object {object_id} in {collection}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      - text: Update every workflow opt-in at once on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/channel_types/{type}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update one channel type in an object's preferences
      effect: write
      questions:
      - How do I turn off just email for an object's preference set?
      - Can I toggle a single channel type on an object without touching the others?
      instructions:
      - text: Disable channel type {type} in preference set {id} for object {object_id} in {collection}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          type: path.type
      - text: Update only the {type} channel type setting on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          type: path.type
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/bulk/delete'].post
  update:
    x-apievangelist-phrasing:
      intent: Delete many objects in a collection
      effect: destructive
      questions:
      - How do I delete a list of objects from one collection at once?
      - Can I bulk remove objects by their IDs?
      instructions:
      - text: Bulk delete objects {object_ids} from collection {collection}.
        slots:
          object_ids: requestBody.object_ids
          collection: path.collection
      - text: 'Remove these objects from {collection} in one go: {object_ids}.'
        slots:
          collection: path.collection
          object_ids: requestBody.object_ids
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/categories/{key}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update one category in an object's preferences (deprecated)
      effect: write
      questions:
      - Can I still change a single category preference on an object with the deprecated endpoint?
      - How do I opt an object out of one notification category?
      instructions:
      - text: Turn off category {key} in preference set {id} for object {object_id} in {collection} using the deprecated single-category endpoint.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          key: path.key
      - text: Update the single category {key} on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          key: path.key
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences'].get
  update:
    x-apievangelist-phrasing:
      intent: List an object's preference sets
      effect: read
      questions:
      - Which preference sets does an object have?
      - Can I see every per-tenant preference set stored on an object?
      instructions:
      - text: List preference sets for object {object_id} in {collection}.
        slots:
          object_id: path.object_id
          collection: path.collection
      - text: Show all of {collection}/{object_id}'s preference sets.
        slots:
          object_id: path.object_id
          collection: path.collection
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/workflows/{key}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update one workflow in an object's preferences
      effect: write
      questions:
      - How do I opt an object out of a single workflow?
      - Can I change one workflow's preference on an object and leave the rest?
      instructions:
      - text: Turn off workflow {key} in preference set {id} for object {object_id} in {collection}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          key: path.key
      - text: Update just the {key} workflow preference on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
          key: path.key
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/bulk/subscriptions/add'].post
  update:
    x-apievangelist-phrasing:
      intent: Add subscriptions to many objects
      effect: write
      questions:
      - How do I subscribe recipients to lots of objects in one collection at once?
      - What happens if a subscription already exists during a bulk add?
      instructions:
      - text: Bulk add subscriptions {subscriptions} in collection {collection}.
        slots:
          subscriptions: requestBody.subscriptions
          collection: path.collection
      - text: Subscribe recipients across {collection} objects using {subscriptions}.
        slots:
          collection: path.collection
          subscriptions: requestBody.subscriptions
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/categories'].put
  update:
    x-apievangelist-phrasing:
      intent: Update all category settings in an object's preferences
      effect: write
      questions:
      - How do I replace every category preference on an object at once?
      - Can I set an object's category opt-ins in one call?
      instructions:
      - text: Replace the categories section of preference set {id} for object {object_id} in {collection}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      - text: Update every category opt-in at once on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an object
      effect: read
      questions:
      - How do I look up an object and its properties?
      - Can I fetch one object from a collection by its ID?
      instructions:
      - text: Get object {id} from collection {collection}.
        slots:
          id: path.id
          collection: path.collection
      - text: Show the properties of {collection}/{id}.
        slots:
          collection: path.collection
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Create or update an object
      effect: write
      questions:
      - How do I create an object, like a project or team, to notify?
      - Can I set an object's locale and timezone when I identify it?
      instructions:
      - text: Set object {id} in {collection} with name {name}.
        slots:
          id: path.id
          collection: path.collection
          name: requestBody.name
      - text: Create or update {collection}/{id} with timezone {timezone}.
        slots:
          collection: path.collection
          id: path.id
          timezone: requestBody.timezone
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an object permanently
      effect: destructive
      questions:
      - How do I permanently remove an object from a collection?
      - Can a deleted object be recovered?
      instructions:
      - text: Delete object {id} from collection {collection}.
        slots:
          id: path.id
          collection: path.collection
      - text: Permanently remove {collection}/{id}.
        slots:
          collection: path.collection
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}'].get
  update:
    x-apievangelist-phrasing:
      intent: List objects in a collection
      effect: read
      questions:
      - Which objects exist in a given collection?
      - Can I include preferences when listing a collection's objects?
      instructions:
      - text: List objects in collection {collection}.
        slots:
          collection: path.collection
      - text: List {collection} objects including {include}.
        slots:
          collection: path.collection
          include: query.include[]
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}/channel_types'].put
  update:
    x-apievangelist-phrasing:
      intent: Update all channel types in an object's preferences
      effect: write
      questions:
      - How do I set every channel type preference on an object at once?
      - Can I replace an object's email, SMS and push settings together?
      instructions:
      - text: Replace the channel types section of preference set {id} for object {object_id} in {collection}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      - text: Update every channel type setting at once on {collection}/{object_id}'s preference set {id}.
        slots:
          collection: path.collection
          object_id: path.object_id
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/bulk/subscriptions/delete'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove subscriptions from many objects
      effect: destructive
      questions:
      - How do I unsubscribe recipients from many objects in one collection?
      - Are missing subscriptions skipped during a bulk delete?
      instructions:
      - text: Bulk delete subscriptions {subscriptions} in collection {collection}.
        slots:
          subscriptions: requestBody.subscriptions
          collection: path.collection
      - text: Unsubscribe recipients across {collection} objects using {subscriptions}.
        slots:
          collection: path.collection
          subscriptions: requestBody.subscriptions
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one of an object's preference sets
      effect: read
      questions:
      - How do I see an object's default preference set?
      - Can I read one specific preference set on an object?
      instructions:
      - text: Get preference set {id} for object {object_id} in {collection}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
      - text: Show the {id} preferences of {collection}/{object_id}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace or merge an object's preference set
      effect: write
      questions:
      - How do I set all of an object's preferences in one call?
      - Can I merge new preferences instead of replacing the whole set?
      instructions:
      - text: Update preference set {id} for object {object_id} in {collection}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
      - text: Set {collection}/{object_id}'s {id} preferences with workflows {workflows}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
          workflows: requestBody.workflows
      - text: Merge into preference set {id} for {collection}/{object_id} using strategy {strategy}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
          strategy: requestBody.__persistence_strategy__
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/{object_id}/preferences/{id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an object's preference set
      effect: destructive
      questions:
      - How do I remove a preference set from an object entirely?
      - Can I unset an object's per-tenant preferences?
      instructions:
      - text: Delete preference set {id} for object {object_id} in {collection}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
      - text: Unset the {id} preferences on {collection}/{object_id}.
        slots:
          object_id: path.object_id
          collection: path.collection
          id: path.id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/objects/{collection}/bulk/set'].post
  update:
    x-apievangelist-phrasing:
      intent: Create or update many objects
      effect: write
      questions:
      - How do I upsert up to 1,000 objects into a collection at once?
      - Can I sync a whole collection of objects in one batch?
      instructions:
      - text: Bulk set objects {objects} in collection {collection}.
        slots:
          objects: requestBody.objects
          collection: path.collection
      - text: 'Create or update these {collection} objects in one go: {objects}.'
        slots:
          collection: path.collection
          objects: requestBody.objects
      method: generated
      generated: '2026-10-01'
- target: $.paths['/v1/schedules/bulk/create'].post
  update:
    x-apievangelist-phrasing:
      intent: Create many schedules at once
      effect: write
      questions:
      - How do I create a large number of workflow schedules in one request?
      - Is there a cap on schedules per bulk create?
      instructions:
      - text: Bulk create schedules {schedules}.
        slots:
          schedules: requestBody.schedules
      - text: Create up to 1,000 schedules from {schedules} in one batch.
        slots:
          schedules: requestBody.schedules
      method: generated
      generated: '2026-10-01'