Skip to main content
Integration capabilities are the provider-specific actions Filed can run against a connected integration. Use them when an integration needs to expose a concrete operation such as listing files, downloading a document, syncing data, or running a tax software action. Capabilities are reached through the me query as a WorkspaceUser, so authenticate with a workspaceToken. All requests go to:
The run mutation is currently named runConnectionCapabliltity in the GraphQL schema. The spelling includes Capabliltity. Use that exact field name until the schema changes.

Capability model

Capabilities are advertised on each provider. A provider belongs to a workspace, and a connection points at one provider by providerKey.
Workspace.connections
[Connection!]!
The workspace’s configured integration connections. Pass providerKey to return only connections for one provider.
Workspace.providers
[IntegrationProvider!]!
The provider catalog available to the workspace. Each provider includes its capability definitions.
Workspace.connectionCapabilityRun
ConnectionCapabilityRun
Fetches the current status and result for a previously started capability run. Returns null if the run cannot be found in the workspace.
Connection.id
ID!
The connection ID you pass to runConnectionCapabliltity.
Connection.providerKey
String!
The provider key for the connection. Match this against IntegrationProvider.id to understand which capabilities can run on the connection.
Connection.status
ConnectionStatus!
The current lifecycle status of the connection. Only run capabilities on a connection that is ready for the provider action you need.
IntegrationProvider.id
String!
The provider key, for example a document management provider or tax software provider key.
IntegrationProvider.category
String!
The provider category used for grouping in the product.
IntegrationProvider.profile
ProviderProfile!
Display information, help link, description, and the provider’s capabilities.
IntegrationProvider.capability
ProviderCapability
Looks up one capability by value. Returns null if the provider does not advertise that capability.
ProviderCapability.value
String!
The machine-readable capability identifier. Send this exact string as the capability input when running the capability.
ProviderCapability.label
String!
Human-readable capability name.
ProviderCapability.description
String
Optional human-readable detail about what the capability does.
ProviderCapability.kind
String
The capability type reported by the provider workflow, commonly query or mutation. query capabilities read data. mutation capabilities can create, update, move, delete, sync, or otherwise change state.
ProviderCapability.inputSchema
JSON
The JSON schema for the params object expected by runConnectionCapabliltity. Use this to construct valid parameters.
ProviderCapability.outputSchema
JSON
The JSON schema for the result returned after the capability run completes.

List provider capabilities

Read workspace.providers to discover available providers and their capability definitions.

Look up one capability

Use IntegrationProvider.capability(value:) when you already know the provider and capability value and only need that one definition.

Arguments

value
String!
required
The exact ProviderCapability.value to look up on each provider.

List connections for a provider

Capabilities run on a specific connection, not directly on a provider. Use workspace.connections(providerKey:) to find the connection ID.

Arguments

providerKey
String
Optional provider key. Omit it to return connections for all providers.

Run a capability

Use runConnectionCapabliltity to start a provider capability workflow. The mutation validates params against the provider capability’s inputSchema, refreshes the connection credentials when possible, starts a background run, and returns a run ID.

Arguments

input.connectionId
ID!
required
The connection to run the capability against. Get this from workspace.connections.
input.capability
String!
required
The exact ProviderCapability.value to run.
input.params
JSON!
required
The capability parameters. Shape this object from the capability’s inputSchema. Send {} when the schema accepts an empty object.

Response

id
ID!
The capability run ID. Poll workspace.connectionCapabilityRun(id:) with this value.
status
String!
The Temporal workflow status. A newly started run usually returns RUNNING.
error
String
Error detail when the run fails. null while the run is running or when it completes successfully.
result
JSON
The provider-specific result. null until the workflow returns a result.

Example request

Example response

Check ProviderCapability.kind before running a capability. A mutation capability can change provider state, such as moving, deleting, uploading, or syncing records.

Poll a capability run

After the mutation returns a run ID, poll workspace.connectionCapabilityRun(id:) until the run completes or fails.

Arguments

id
ID!
required
The ID returned by runConnectionCapabliltity.

Response

connectionCapabilityRun
ConnectionCapabilityRun
The run status and result. Returns null if the run does not exist or does not belong to the authenticated workspace.

MCP usage pattern

For Filed MCP tools and AI agents, use this sequence:
  1. Query workspace.providers and read ProviderCapability.inputSchema.
  2. Query workspace.connections(providerKey:) and choose the connection ID.
  3. If the capability kind is mutation, confirm the action with the user.
  4. Call runConnectionCapabliltity with schema-valid params.
  5. Poll workspace.connectionCapabilityRun(id:) until the run is no longer RUNNING.
Do not invent capability parameter names. The provider’s inputSchema is the source of truth for params, and each provider can expose a different shape.