Windmill · Capability

Windmill API — native_trigger

Windmill API — native_trigger. 13 operations. Lead operation: Receive Webhook from External Native Trigger Service. Self-contained Naftiko capability covering one Windmill business surface.

Run with Naftiko Windmillnative_trigger

What You Can Do

POST
Nativetriggerwebhook — Receive Webhook from External Native Trigger Service
/v1/native-triggers/{service-name}/w/{workspace-id}/webhook/{internal-id}
GET
Listgithubrepos — List GitHub Repositories Accessible to the User
/v1/w/{workspace}/native-triggers/github/repos
GET
Listgooglecalendars — List Google Calendars for the Authenticated User
/v1/w/{workspace}/native-triggers/google/calendars
GET
Listgoogledrivefiles — List or Search Google Drive Files
/v1/w/{workspace}/native-triggers/google/drive/files
GET
Listgoogleshareddrives — List Shared Drives Accessible to the User
/v1/w/{workspace}/native-triggers/google/drive/shared-drives
GET
Listnextcloudevents — List Available NextCloud Events
/v1/w/{workspace}/native-triggers/nextcloud/events
POST
Createnativetrigger — Create Native Trigger
/v1/w/{workspace}/native-triggers/{service-name}/create
DELETE
Deletenativetrigger — Delete Native Trigger
/v1/w/{workspace}/native-triggers/{service-name}/delete/{external-id}
GET
Existsnativetrigger — Check if Native Trigger Exists
/v1/w/{workspace}/native-triggers/{service-name}/exists/{external-id}
GET
Getnativetrigger — Get Native Trigger
/v1/w/{workspace}/native-triggers/{service-name}/get/{external-id}
GET
Listnativetriggers — List Native Triggers
/v1/w/{workspace}/native-triggers/{service-name}/list
POST
Syncnativetriggers — Sync Native Triggers with External Service
/v1/w/{workspace}/native-triggers/{service-name}/sync
POST
Updatenativetrigger — Update Native Trigger
/v1/w/{workspace}/native-triggers/{service-name}/update/{external-id}

MCP Tools

receive-webhook-external-native-trigger

Receive Webhook from External Native Trigger Service

list-github-repositories-accessible-user

List GitHub Repositories Accessible to the User

read-only idempotent
list-google-calendars-authenticated-user

List Google Calendars for the Authenticated User

read-only idempotent
list-search-google-drive-files

List or Search Google Drive Files

read-only idempotent
list-shared-drives-accessible-user

List Shared Drives Accessible to the User

read-only idempotent
list-available-nextcloud-events

List Available NextCloud Events

read-only idempotent
create-native-trigger

Create Native Trigger

delete-native-trigger

Delete Native Trigger

idempotent
check-if-native-trigger-exists

Check if Native Trigger Exists

read-only idempotent
get-native-trigger

Get Native Trigger

read-only idempotent
list-native-triggers

List Native Triggers

read-only idempotent
sync-native-triggers-external-service

Sync Native Triggers with External Service

update-native-trigger

Update Native Trigger

Capability Spec

windmill-native-trigger.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Windmill API — native_trigger
  description: 'Windmill API — native_trigger. 13 operations. Lead operation: Receive Webhook from External Native Trigger
    Service. Self-contained Naftiko capability covering one Windmill business surface.'
  tags:
  - Windmill
  - native_trigger
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WINDMILL_API_KEY: WINDMILL_API_KEY
capability:
  consumes:
  - type: http
    namespace: windmill-native-trigger
    baseUri: ''
    description: Windmill API — native_trigger business capability. Self-contained, no shared references.
    resources:
    - name: native_triggers-service_name-w-workspace_id-webhook-internal_id
      path: /native_triggers/{service_name}/w/{workspace_id}/webhook/{internal_id}
      operations:
      - name: nativetriggerwebhook
        method: POST
        description: Receive Webhook from External Native Trigger Service
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: workspace_id
          in: path
          type: string
          required: true
        - name: internal_id
          in: path
          type: integer
          description: The internal database ID of the trigger
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: w-workspace-native_triggers-github-repos
      path: /w/{workspace}/native_triggers/github/repos
      operations:
      - name: listgithubrepos
        method: GET
        description: List GitHub Repositories Accessible to the User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace
          in: path
          type: string
          required: true
    - name: w-workspace-native_triggers-google-calendars
      path: /w/{workspace}/native_triggers/google/calendars
      operations:
      - name: listgooglecalendars
        method: GET
        description: List Google Calendars for the Authenticated User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace
          in: path
          type: string
          required: true
    - name: w-workspace-native_triggers-google-drive-files
      path: /w/{workspace}/native_triggers/google/drive/files
      operations:
      - name: listgoogledrivefiles
        method: GET
        description: List or Search Google Drive Files
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace
          in: path
          type: string
          required: true
        - name: q
          in: query
          type: string
          description: search query to filter files by name
        - name: parent_id
          in: query
          type: string
          description: folder ID to list children of
        - name: page_token
          in: query
          type: string
          description: token for next page of results
        - name: shared_with_me
          in: query
          type: boolean
          description: if true, list files shared with the user
    - name: w-workspace-native_triggers-google-drive-shared_drives
      path: /w/{workspace}/native_triggers/google/drive/shared_drives
      operations:
      - name: listgoogleshareddrives
        method: GET
        description: List Shared Drives Accessible to the User
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace
          in: path
          type: string
          required: true
    - name: w-workspace-native_triggers-nextcloud-events
      path: /w/{workspace}/native_triggers/nextcloud/events
      operations:
      - name: listnextcloudevents
        method: GET
        description: List Available NextCloud Events
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: workspace
          in: path
          type: string
          required: true
    - name: w-workspace-native_triggers-service_name-create
      path: /w/{workspace}/native_triggers/{service_name}/create
      operations:
      - name: createnativetrigger
        method: POST
        description: Create Native Trigger
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: w-workspace-native_triggers-service_name-delete-external_id
      path: /w/{workspace}/native_triggers/{service_name}/delete/{external_id}
      operations:
      - name: deletenativetrigger
        method: DELETE
        description: Delete Native Trigger
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: external_id
          in: path
          type: string
          description: The external ID of the trigger from the external service
          required: true
    - name: w-workspace-native_triggers-service_name-exists-external_id
      path: /w/{workspace}/native_triggers/{service_name}/exists/{external_id}
      operations:
      - name: existsnativetrigger
        method: GET
        description: Check if Native Trigger Exists
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: external_id
          in: path
          type: string
          description: The external ID of the trigger from the external service
          required: true
    - name: w-workspace-native_triggers-service_name-get-external_id
      path: /w/{workspace}/native_triggers/{service_name}/get/{external_id}
      operations:
      - name: getnativetrigger
        method: GET
        description: Get Native Trigger
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: external_id
          in: path
          type: string
          description: The external ID of the trigger from the external service
          required: true
    - name: w-workspace-native_triggers-service_name-list
      path: /w/{workspace}/native_triggers/{service_name}/list
      operations:
      - name: listnativetriggers
        method: GET
        description: List Native Triggers
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: path
          in: query
          type: string
          description: filter by script path
        - name: is_flow
          in: query
          type: boolean
          description: filter by is_flow
        - name: label
          in: query
          type: string
          description: Filter by label
    - name: w-workspace-native_triggers-service_name-sync
      path: /w/{workspace}/native_triggers/{service_name}/sync
      operations:
      - name: syncnativetriggers
        method: POST
        description: Sync Native Triggers with External Service
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
    - name: w-workspace-native_triggers-service_name-update-external_id
      path: /w/{workspace}/native_triggers/{service_name}/update/{external_id}
      operations:
      - name: updatenativetrigger
        method: POST
        description: Update Native Trigger
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: service_name
          in: path
          type: string
          required: true
        - name: external_id
          in: path
          type: string
          description: The external ID of the trigger from the external service
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.WINDMILL_API_KEY}}'
  exposes:
  - type: rest
    namespace: windmill-native-trigger-rest
    port: 8080
    description: REST adapter for Windmill API — native_trigger. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/native-triggers/{service-name}/w/{workspace-id}/webhook/{internal-id}
      name: native-triggers-service-name-w-workspace-id-webhook-internal-id
      description: REST surface for native_triggers-service_name-w-workspace_id-webhook-internal_id.
      operations:
      - method: POST
        name: nativetriggerwebhook
        description: Receive Webhook from External Native Trigger Service
        call: windmill-native-trigger.nativetriggerwebhook
        with:
          service_name: rest.service_name
          workspace_id: rest.workspace_id
          internal_id: rest.internal_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/github/repos
      name: w-workspace-native-triggers-github-repos
      description: REST surface for w-workspace-native_triggers-github-repos.
      operations:
      - method: GET
        name: listgithubrepos
        description: List GitHub Repositories Accessible to the User
        call: windmill-native-trigger.listgithubrepos
        with:
          workspace: rest.workspace
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/google/calendars
      name: w-workspace-native-triggers-google-calendars
      description: REST surface for w-workspace-native_triggers-google-calendars.
      operations:
      - method: GET
        name: listgooglecalendars
        description: List Google Calendars for the Authenticated User
        call: windmill-native-trigger.listgooglecalendars
        with:
          workspace: rest.workspace
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/google/drive/files
      name: w-workspace-native-triggers-google-drive-files
      description: REST surface for w-workspace-native_triggers-google-drive-files.
      operations:
      - method: GET
        name: listgoogledrivefiles
        description: List or Search Google Drive Files
        call: windmill-native-trigger.listgoogledrivefiles
        with:
          workspace: rest.workspace
          q: rest.q
          parent_id: rest.parent_id
          page_token: rest.page_token
          shared_with_me: rest.shared_with_me
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/google/drive/shared-drives
      name: w-workspace-native-triggers-google-drive-shared-drives
      description: REST surface for w-workspace-native_triggers-google-drive-shared_drives.
      operations:
      - method: GET
        name: listgoogleshareddrives
        description: List Shared Drives Accessible to the User
        call: windmill-native-trigger.listgoogleshareddrives
        with:
          workspace: rest.workspace
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/nextcloud/events
      name: w-workspace-native-triggers-nextcloud-events
      description: REST surface for w-workspace-native_triggers-nextcloud-events.
      operations:
      - method: GET
        name: listnextcloudevents
        description: List Available NextCloud Events
        call: windmill-native-trigger.listnextcloudevents
        with:
          workspace: rest.workspace
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/create
      name: w-workspace-native-triggers-service-name-create
      description: REST surface for w-workspace-native_triggers-service_name-create.
      operations:
      - method: POST
        name: createnativetrigger
        description: Create Native Trigger
        call: windmill-native-trigger.createnativetrigger
        with:
          service_name: rest.service_name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/delete/{external-id}
      name: w-workspace-native-triggers-service-name-delete-external-id
      description: REST surface for w-workspace-native_triggers-service_name-delete-external_id.
      operations:
      - method: DELETE
        name: deletenativetrigger
        description: Delete Native Trigger
        call: windmill-native-trigger.deletenativetrigger
        with:
          service_name: rest.service_name
          external_id: rest.external_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/exists/{external-id}
      name: w-workspace-native-triggers-service-name-exists-external-id
      description: REST surface for w-workspace-native_triggers-service_name-exists-external_id.
      operations:
      - method: GET
        name: existsnativetrigger
        description: Check if Native Trigger Exists
        call: windmill-native-trigger.existsnativetrigger
        with:
          service_name: rest.service_name
          external_id: rest.external_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/get/{external-id}
      name: w-workspace-native-triggers-service-name-get-external-id
      description: REST surface for w-workspace-native_triggers-service_name-get-external_id.
      operations:
      - method: GET
        name: getnativetrigger
        description: Get Native Trigger
        call: windmill-native-trigger.getnativetrigger
        with:
          service_name: rest.service_name
          external_id: rest.external_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/list
      name: w-workspace-native-triggers-service-name-list
      description: REST surface for w-workspace-native_triggers-service_name-list.
      operations:
      - method: GET
        name: listnativetriggers
        description: List Native Triggers
        call: windmill-native-trigger.listnativetriggers
        with:
          service_name: rest.service_name
          path: rest.path
          is_flow: rest.is_flow
          label: rest.label
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/sync
      name: w-workspace-native-triggers-service-name-sync
      description: REST surface for w-workspace-native_triggers-service_name-sync.
      operations:
      - method: POST
        name: syncnativetriggers
        description: Sync Native Triggers with External Service
        call: windmill-native-trigger.syncnativetriggers
        with:
          service_name: rest.service_name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/w/{workspace}/native-triggers/{service-name}/update/{external-id}
      name: w-workspace-native-triggers-service-name-update-external-id
      description: REST surface for w-workspace-native_triggers-service_name-update-external_id.
      operations:
      - method: POST
        name: updatenativetrigger
        description: Update Native Trigger
        call: windmill-native-trigger.updatenativetrigger
        with:
          service_name: rest.service_name
          external_id: rest.external_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: windmill-native-trigger-mcp
    port: 9090
    transport: http
    description: MCP adapter for Windmill API — native_trigger. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: receive-webhook-external-native-trigger
      description: Receive Webhook from External Native Trigger Service
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-native-trigger.nativetriggerwebhook
      with:
        service_name: tools.service_name
        workspace_id: tools.workspace_id
        internal_id: tools.internal_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-github-repositories-accessible-user
      description: List GitHub Repositories Accessible to the User
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listgithubrepos
      with:
        workspace: tools.workspace
      outputParameters:
      - type: object
        mapping: $.
    - name: list-google-calendars-authenticated-user
      description: List Google Calendars for the Authenticated User
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listgooglecalendars
      with:
        workspace: tools.workspace
      outputParameters:
      - type: object
        mapping: $.
    - name: list-search-google-drive-files
      description: List or Search Google Drive Files
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listgoogledrivefiles
      with:
        workspace: tools.workspace
        q: tools.q
        parent_id: tools.parent_id
        page_token: tools.page_token
        shared_with_me: tools.shared_with_me
      outputParameters:
      - type: object
        mapping: $.
    - name: list-shared-drives-accessible-user
      description: List Shared Drives Accessible to the User
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listgoogleshareddrives
      with:
        workspace: tools.workspace
      outputParameters:
      - type: object
        mapping: $.
    - name: list-available-nextcloud-events
      description: List Available NextCloud Events
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listnextcloudevents
      with:
        workspace: tools.workspace
      outputParameters:
      - type: object
        mapping: $.
    - name: create-native-trigger
      description: Create Native Trigger
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-native-trigger.createnativetrigger
      with:
        service_name: tools.service_name
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-native-trigger
      description: Delete Native Trigger
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: windmill-native-trigger.deletenativetrigger
      with:
        service_name: tools.service_name
        external_id: tools.external_id
      outputParameters:
      - type: object
        mapping: $.
    - name: check-if-native-trigger-exists
      description: Check if Native Trigger Exists
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.existsnativetrigger
      with:
        service_name: tools.service_name
        external_id: tools.external_id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-native-trigger
      description: Get Native Trigger
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.getnativetrigger
      with:
        service_name: tools.service_name
        external_id: tools.external_id
      outputParameters:
      - type: object
        mapping: $.
    - name: list-native-triggers
      description: List Native Triggers
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: windmill-native-trigger.listnativetriggers
      with:
        service_name: tools.service_name
        path: tools.path
        is_flow: tools.is_flow
        label: tools.label
      outputParameters:
      - type: object
        mapping: $.
    - name: sync-native-triggers-external-service
      description: Sync Native Triggers with External Service
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-native-trigger.syncnativetriggers
      with:
        service_name: tools.service_name
      outputParameters:
      - type: object
        mapping: $.
    - name: update-native-trigger
      description: Update Native Trigger
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: windmill-native-trigger.updatenativetrigger
      with:
        service_name: tools.service_name
        external_id: tools.external_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.