In the Port UI or API, create a self-service action scoped to a blueprint with trigger type DAY-2 (operations on existing entities such as scale, restart, or promote).
Configure the action's backend as type WEBHOOK and provide the target URL of your automation endpoint (a custom server, GitHub Actions webhook, or similar).
Define the action's user input form using the userInputs schema; Port renders this as a form that users fill out before the action executes.
Port sends a POST request to the webhook URL with a payload containing the action identifier, the triggered entity's data, and the user-supplied inputs; implement a receiver that validates and processes this payload.
Call back to the Port API (PATCH https://api.getport.io/v1/actions/runs/{run_id}) with status SUCCESS or FAILURE to reflect the action result in the Port audit log and entity timeline.
Restrict who can trigger the action using the requiredApproval field or role-based permissions in the action configuration to gate sensitive day-2 operations.
Known gotchas
Port does not retry failed webhook deliveries automatically; if your endpoint is down when the action fires, the run stays in IN_PROGRESS state indefinitely unless you update it via the run callback API.
The webhook payload is sent as JSON; verify your endpoint Content-Type handling and disable any body-parsing middleware that might consume the raw body before HMAC verification if you implement signature checks.
DAY-2 actions require an existing entity to operate on; attempting to invoke them without a valid entity context (e.g., from a script) requires supplying the entity identifier explicitly in the API call.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp