Design · Beta
Figma SCIM
API integration
Ship Design features without building the integration. Full Figma SCIM API access via Proxy, normalized data through Unified APIs, and 10+ MCP-ready tools for AI agents — all extensible to your exact use case.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Figma SCIM
Common scenarios for SaaS companies building Figma SCIM integrations for their customers.
Automate Figma license cost optimization
SaaS companies building SaaS management or FinOps platforms can pull Figma's user directory via SCIM and cross-reference activity data to automatically downgrade inactive Editor seats to Viewer, saving enterprise customers thousands in unused licenses.
Enforce just-in-time access provisioning for Figma
Identity governance platforms can offer time-bound Figma seat provisioning — granting Dev Mode or Editor access on demand and automatically revoking it after a defined period — eliminating permanent license waste.
Continuous compliance monitoring for offboarded employees
Compliance and audit platforms can ingest the Figma user directory daily, compare it against HRIS termination lists, and flag or auto-remediate orphaned accounts that still have active access to proprietary design assets.
Centralized user directory sync across SaaS apps
IT management platforms can treat Figma SCIM as one node in a broader user directory sync, ensuring employee profiles, group memberships, and entitlements stay consistent across dozens of enterprise applications from a single pane of glass.
Shadow IT and orphaned account detection
Security platforms can surface Figma accounts that exist outside of sanctioned provisioning workflows by comparing SCIM directory data against the organization's identity provider, catching rogue or forgotten accounts before auditors do.
What You Can Build
Ship these features with Truto + Figma SCIM
Concrete product features your team can ship faster by leveraging Truto’s Figma SCIM integration instead of building from scratch.
Automated seat harvesting dashboard
Build a view that identifies inactive Figma Editor seats and lets admins bulk-downgrade them to Viewer with a single click using SCIM user updates.
Real-time offboarding deprovisioning workflow
Trigger automatic Figma account deactivation the moment an employee is marked as terminated in an upstream HRIS or identity provider.
Time-bound Dev Mode access grants
Ship a self-service request flow where developers get temporary Figma Dev Mode access that auto-expires after a configurable number of days.
Figma-to-HRIS user reconciliation report
Generate a compliance-ready report that highlights mismatches between active Figma users and the canonical employee directory, flagging orphaned or unauthorized accounts.
Group-based workspace provisioning
Allow IT admins to map organizational teams to Figma Groups so that new hires are automatically placed into the correct design workspaces on day one.
Entitlement audit trail
Log every SCIM-driven permission change — Editor grants, Viewer downgrades, Dev Mode toggles — into an immutable audit log for SOC 2 and ISO 27001 evidence collection.
SuperAI
Figma SCIM AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_figma_scim_users
List SCIM-provisioned users in the Figma organization (GET /scim/v2/{tenant}/Users). Returns SCIM user resources with id, userName (email), displayName, active, seat role, name, externalId, enterprise attributes (department, cost center, organization) and the figmaAdmin flag. Filter with userName eq "email" or externalId eq "value"; pages with count (max 3000) and startIndex. Calling this also binds existing Figma accounts to SCIM.
get_single_figma_scim_user_by_id
Get one SCIM user in Figma by Figma user id (GET /scim/v2/{tenant}/Users/{id}). Returns the full SCIM user resource. Required: id. To find an id, list users with a userName filter.
delete_a_figma_scim_user_by_id
Permanently delete a user from Figma and from the SCIM provisioning log (DELETE /scim/v2/{tenant}/Users/{id}). To keep the account but revoke access, deactivate instead with partial_update (active=false). Required: id. Returns 204 with no body.
create_a_figma_scim_user
Provision a user in Figma via SCIM (POST /scim/v2/{tenant}/Users). If a Figma account with that email already exists it is bound to SCIM and updated. Required: schemas, userName (email) and active; optional seat role (Enterprise plan), display name, title, name, externalId, enterprise attributes and figmaAdmin. Returns the created user with its Figma id.
update_a_figma_scim_user_by_id
Overwrite all attributes of a SCIM user in Figma (PUT /scim/v2/{tenant}/Users/{id}). Send the complete user; attributes omitted are cleared. Common uses: change email (userName), display name, seat role, cost center. Required: id, schemas, userName, active. Returns the updated user.
figma_scim_users_partial_update
Change selected attributes of a SCIM user in Figma without resending everything (PATCH /scim/v2/{tenant}/Users/{id}, SCIM PatchOp). Example: replace roles with [{"type":"seatType","value":"Dev"}] to change the seat, or replace active with false to deactivate. Required: id (query) and Operations. Returns the updated user.
list_all_figma_scim_groups
List SCIM-managed groups in the Figma organization (GET /scim/v2/{tenant}/Groups). Each group has id, displayName, external_id and members (Figma user ids with display emails). Groups whose displayName matches a Figma workspace or billing group are linked to it. Filter with displayName eq "name" or externalId eq "value"; pages with count and startIndex.
get_single_figma_scim_group_by_id
Get one SCIM group in Figma by group id (GET /scim/v2/{tenant}/Groups/{id}). Returns displayName, external_id and the member list. Required: id.
create_a_figma_scim_group
Create a SCIM group in Figma (POST /scim/v2/{tenant}/Groups). If displayName matches an existing Figma workspace or billing group (case sensitive) the group is linked to it and members inherit it. Required: schemas and displayName; optional externalId and members (Figma user ids). Returns the group with its id.
update_a_figma_scim_group_by_id
Overwrite a SCIM group in Figma (PUT /scim/v2/{tenant}/Groups/{id}): display name, externalId and the full member list. Members added inherit the linked workspace or billing group; members omitted lose it. Required: id, schemas, displayName. Returns the updated group.
figma_scim_groups_partial_update
Change selected attributes or membership of a SCIM group in Figma (PATCH /scim/v2/{tenant}/Groups/{id}, SCIM PatchOp). Example: replace value {"displayName": "New name"}, or add path members value [{"value": "
delete_a_figma_scim_group_by_id
Permanently delete a SCIM group from Figma and the SCIM provisioning log (DELETE /scim/v2/{tenant}/Groups/{id}). Members are not deleted. Required: id. Returns 204 with no body.
list_all_figma_scim_service_provider_config
Get Figma's SCIM service provider configuration (GET /scim/v2/{tenant}/ServiceProviderConfig): which SCIM features are supported (patch yes, filter yes with max 200 results, bulk no, sort no, change password no) and the bearer token authentication scheme. Useful to verify the tenant id and token before provisioning. No parameters.
figma_scim_tenant_validate
Check whether the connected Figma SCIM tenant ID is valid (GET /scim/v2/{tenant_id}). Takes no inputs: the tenant ID and API token come from the connection. A successful (HTTP 200) response means the tenant ID is valid for this token. An error means it is not: 400 when the tenant ID is malformed (it must be numeric), 404 when it is well-formed but unknown or not accessible with this token. Use it as a connection health check before provisioning users or groups.
Why Truto
Why use Truto’s MCP server for Figma SCIM
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 850+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Figma SCIM
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified User Directory API
Users
The User object represents a User.
How It Works
From zero to integrated
Go live with Figma SCIM in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Figma SCIM account
Use Truto’s frontend SDK to connect your customer’s Figma SCIM account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Figma SCIM
Truto’s Proxy API is a 1-to-1 mapping of the Figma SCIM API. You call us, we call Figma SCIM, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Figma SCIM’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Figma SCIM on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication work for Figma SCIM?
Figma SCIM uses a dedicated SCIM API Token generated in the Figma Admin Settings under 'Login and provisioning.' Your end users also need to provide their Tenant ID, which is derived from their SAML SSO configuration. This is separate from Figma's standard REST API authentication.
Which Figma plans support SCIM?
Full SCIM provisioning and seat management is only available on Figma's Enterprise Plan (approximately $90/user/month). Organizations on lower tiers cannot generate SCIM tokens or use these endpoints.
What user attributes can be managed through Figma SCIM?
You can perform standard CRUD operations on user profiles (create, read, update, deactivate). Figma's SCIM schema also exposes entitlement-specific attributes like figmaPermission, figjamPermission, and devModePermission, allowing programmatic seat management. However, Admin privileges cannot be granted via SCIM — those must be set manually.
Does Truto have pre-built Unified API support for Figma SCIM?
Figma SCIM is mapped to Truto's Unified User Directory API for the Users resource. Additional tools and resources can be built on request to cover specific workflows your product requires.
Can I manage Figma Groups through SCIM?
Yes, Figma SCIM supports Group endpoints, allowing you to add or remove users from Groups programmatically. This is useful for controlling which workspaces and projects users can access based on team membership.
What happens when a user is deactivated via SCIM?
Setting a user's 'active' attribute to false performs a soft delete — the user loses access to the Figma organization and their seat is freed up, but their account and associated data are not permanently destroyed. This is the standard approach for offboarding workflows.
Figma SCIM
Get Figma SCIM integrated into your app
Our team understands what it takes to make a Figma SCIM integration successful. A short, crisp 30 minute call with folks who understand the problem.