LeanKit · AsyncAPI Specification
Leankit Automation Webhooks
Version
View Spec
View on GitHub
CompanyKanbanProject ManagementAgileWork ManagementCollaborationEnterprise SoftwarePortfolio-ManagementWorkflow-AutomationSoftware-as-a-ServiceAsyncAPIEvents
AsyncAPI Specification
generated: '2026-07-19'
method: searched
source: https://success.planview.com/Planview_AgilePlace/Cards/Card_Automation/Webhooks
type: Webhooks
name: LeanKit / Planview AgilePlace card automation webhooks
asyncapi_published: false
notes: >-
LeanKit / Planview AgilePlace does not publish an AsyncAPI document. It does publish a real outbound
webhook surface: the "Web service call" card-automation action, which POSTs a contextual payload to a
caller-supplied URL whenever a board automation fires. There is no subscription API — webhooks are
configured per automation in board settings, not over the REST API. Card and board custom events can be
raised programmatically through POST /io/card/{cardId}/automation/customevent and
POST /io/board/{boardId}/automation/customevent, which lets an integration trigger a webhook-bearing
automation from code. A separate first-party polling module (npm leankit-events) exists for consumers
that want board events without configuring automations.
docs:
- https://success.planview.com/Planview_AgilePlace/Cards/Card_Automation/Webhooks
- https://success.planview.com/Planview_AgilePlace/Cards/Card_Automation/Custom_Events
- https://success.planview.com/Planview_AgilePlace/Cards/Card_Automation/GitHub_Actions
delivery:
method: POST
target: URL configured on the automation
content_types:
- application/json
- application/x-www-form-urlencoded
retries: not documented
security:
signature_header: x-lk-signature
algorithm: HMAC-SHA256
encoding: hex
signed_over: the exact raw request body bytes as sent
optional: true
notes: >-
The signature is only present when a secret is configured on the automation. Verify by recomputing the
HMAC over the raw body with the shared secret and comparing in constant time. Planview publishes a
Node.js verification example using crypto.createHmac and crypto.timingSafeEqual.
payload:
fields:
- name: automation.id
description: Identifier of the automation that fired.
- name: automation.description
description: Human description of the automation.
- name: host
description: The AgilePlace account host URL, e.g. https://mycompany.leankit.com
- name: boardId
description: Board identifier.
- name: cardId
description: Card identifier.
- name: laneId
description: Lane identifier relevant to the event.
- name: cardUrl
description: Direct link to the card.
- name: event
description: Name of the event that triggered the automation.
- name: eventData
description: Event-specific details; the fields present vary by event.
- name: eventDate
description: ISO 8601 timestamp of the event.
events:
- name: movedTo
description: Card moved into a lane.
event_data:
- movedFromLaneId
- name: movedFrom
description: Card moved out of a lane.
event_data:
- movedFromLaneId
- name: blocked
description: Card was blocked.
event_data:
- reason
- name: unblocked
description: Card was unblocked.
event_data:
- reason
- name: childConnectionAdded
description: A child connection was added to the card.
event_data:
- childCardId
- parentCardId
- name: childConnectionRemoved
description: A child connection was removed from the card.
event_data:
- childCardId
- parentCardId
- name: parentConnectionAdded
description: A parent connection was added to the card.
event_data:
- childCardId
- parentCardId
- name: parentConnectionRemoved
description: A parent connection was removed from the card.
event_data:
- childCardId
- parentCardId
- name: childBlocked
description: A child card of this card was blocked.
event_data:
- childBlockReason
custom_events:
supported: true
levels:
- card
- board
description: >-
Named custom events extend automations beyond the built-in triggers. A card-level custom event fires
against a single card; a board-level custom event ("Allow Board Event") runs against every card meeting
the criteria. Custom events are raised by name and consumed by a second automation configured with
"Custom Event" as its trigger.
api_operations:
- POST /io/card/{cardId}/automation/customevent
- POST /io/board/{boardId}/automation/customevent
github_actions_dispatch:
supported: true
description: >-
The "Trigger GitHub Action" automation sends a repository_dispatch to a configured owner/repository
with a fixed event_type, delivering the automation, card (including customFields and
customFieldsByLabel), event, eventData, eventDate, and host as client_payload.
auth: GitHub Personal Access Token stored on the automation and never returned to the client.
token_scopes:
- workflow (classic token)
- Contents Read and Write (fine-grained token)
polling_alternative:
package: leankit-events
registry: npm
url: https://github.com/LeanKit/leankit-node-events
description: >-
First-party Node module that polls a board version and emits events such as card-creation, card moves,
assignment, and blocking. Default poll interval is 30 seconds.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/leankit-automation-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.