_verified input.
Verified Inputs establishes who is calling. It does not change whose connections run — the workflow still executes with the trigger owner’s connections. See Tool Sharing and Identity.
How a call is authenticated
Two independent things travel on the request:
The API key remains required. The JWT is additional.
By default, verification is opportunistic: if a Bearer token is present and its issuer matches one of your registered providers, Pinkfish verifies it and injects the claims. If no token is present, the run proceeds without
_verified. You can make it mandatory — see Requiring verification.
Registering a trusted identity provider
Go to Settings → Triggers and add a provider. Providers are scoped to your organization and can only be managed by an org admin.
Use the Test action on a provider to paste a sample JWT and see the resolved subject and claims before you wire anything up.
What the workflow receives
When verification succeeds, Pinkfish adds a top-level_verified key to the workflow’s inputs. Its value is the entire validated claim set — every claim the token carried, verbatim:
_verified.sub as the record owner rather than trusting a caller-supplied userId.
_verified cannot be spoofed. Pinkfish strips any caller-supplied _verified key from the inputs of every run-creation path — API, schedule, email, manual, and bulk — before it re-adds a genuinely verified one. A workflow default cannot reintroduce it either. If the key was present, the attempt is logged.So inside a workflow, the presence of _verified always means a real token verified against one of your registered providers.Requiring verification
Opportunistic verification means an unauthenticated caller still runs the workflow — just without_verified. To reject those calls outright, turn on requireVerifiedRequest for the trigger. The request is then refused before any run is created.
Turn on Require verified request — “Reject API requests that lack a verified Trusted-IdP identity (JWT). Off by default.” You’ll find it:
- On a workflow API trigger, in the trigger editor alongside the API key fields.
- On an agent API channel, in the agent editor’s Channels section.
requireVerifiedRequest field on the trigger, and agent API channels have a dedicated endpoint (PUT /api/useragents/{userAgentId}/channels/api/require-verified-request).
Failure responses
A token whose issuer matches a registered provider but which fails verification is always rejected with401, whether or not verification is required. A missing token is rejected only when requireVerifiedRequest is on.
Responses follow the OAuth bearer-token convention:
A Bearer token whose
iss matches no registered provider is ignored rather than rejected, so an unrelated Authorization header won’t break a trigger — unless requireVerifiedRequest is on, in which case it counts as “no verified identity presented.”Where it applies
Relationship to A2A end-user connections
Both features verify a caller’s JWT against the same trusted-provider registry, but they do different things with the result.- Verified Inputs treats the identity as data. The run still executes with the trigger owner’s connections.
- A2A end-user connections treat the identity as an execution principal. Each external caller resolves connections against their own account, and the call is rejected if no verified identity is presented.
Related
- Tool Sharing and Identity — whose connections a triggered run uses
- Triggers — creating API and other triggers
- API Reference → Authentication — trigger API keys and webhook URLs

