How to connect Canva to OpenClaw
Connect Canva to OpenClaw with ClawLink in one click — 46 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.


Create designs, upload assets, export content, and manage brand templates. Once connected, OpenClaw can read and act on Canva from chat — pairing, token refresh, and tool wiring handled for you.
The usual route to Canva access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Canva setup: install one ClawHub skill, connect Canva in the browser, and OpenClaw can call real Canva actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into OpenClaw, or open the Canva skill on ClawHub.
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "Canva" (hith3sh/canva-designs) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/canva-designs
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.Setup
It takes three steps to connect OpenClaw to Canva.
1Install the plugin
Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:
openclaw plugins install clawhub:clawlink-plugin- 2
Connect Canva
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask OpenClaw: "What can you do with Canva?"
Install by command
The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:
openclaw plugins install clawhub:clawlink-pluginThen ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect Canva in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking OpenClaw:
Create a new Canva design by importing the attached PDF (canva_create_design_import_job, title "Quarterly report", mime_type application/pdf), then poll canva_retrieve_design_import_job_status until it succeeds and show me the new design's id.
Using a different agent?
The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Canva is connected in the dashboard, that agent calls the same 46 Canva tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Canva MCP for OpenClaw
Looking for a Canva MCP server for OpenClaw? ClawLink connects Canva to OpenClaw and exposes 46 Canva tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Canva integration works the same way.
This page is about Canva the design app, not OpenClaw's macOS Canvas panel, which shares the name and mixes into search results for "openclaw canva". On Canva itself, the official route inside an AI tool is Canva's own MCP server at mcp.canva.com/mcp, but getting your redirect URI onto its allowlist goes through a waitlist application that Canva reviews per company. Every other guide above this page in the search results either sends you through that waitlist, or has you register a Canva developer integration and hold your own OAuth credentials. ClawLink skips both: the connection is hosted, so you click Connect on Canva's consent screen and OpenClaw calls the tools from the next message: no waitlist, no developer app, no client secret on your machine. If a search answer tells you there is no official Canva integration for OpenClaw, it is counting only the waitlisted MCP server as official; the hosted connection on this page is available today.
Canva MCP for OpenClaw: the three routes, and what each requires
The query "Canva MCP for OpenClaw" is answered three ways today, and they are genuinely different tradeoffs. Which one is right depends on whether you can wait for approval, hold developer credentials, or just want it working:
- Canva's official MCP server (
https://mcp.canva.com/mcp) is the credible official answer: Canva hosts it, exposes ~27 tools (design generation, search, export, comments, autofill), and publishes per-tool rate limits and plan tiers. The catch: adding your redirect URI to its allowlist requires a waitlist application that Canva reviews for each company, and each user authenticates individually. Free plans export at standard quality; premium-element exports can fail withlicense_required. - ClawLink — the same Canva API under the hood, with 46 tools and none of the setup: no waitlist application, no developer app registration, no client secret. Connect in the browser, call the tools from chat. What we do not serve: ClawLink does not expose Canva's design-editing transactions or AI design generation — for changing the content of an existing design or generating a design from a prompt, the official MCP is the route, and the tradeoff is its approval process.
- A self-built integration using the Connect API directly (register at canva.com/developers) gives you full control and no third party, at the cost of owning scopes, token refresh, and rate-limit handling. Note that private integrations are for Canva Enterprise teams, and public ones need Canva's review before other users can install them — a solo developer's app is a development app until then.
All three routes end at the same Canva Connect API, so the capability ceiling is Canva's, not the integrator's. The differences are the waitlist, the credentials, and the maintenance — which is why ClawLink's wedge is "connect in the browser and start" rather than "more tools than Canva".
What the OpenClaw Canva integration can do
46 Canva tools are ready for OpenClaw once the account is connected. The 30 below are the ones people reach for most; your agent can call all 46.
30 of 46 Canva tools for OpenClaw
| Tool | What it does |
|---|---|
Create asset upload job canva_create_asset_upload_job | Upload an asset file to the Canva content library |
Create design import job canva_create_design_import_job | Import an external file as a new Canva design |
Create design resize job canva_create_design_resize_job | Create a resized copy of an existing design |
Create URL asset upload job canva_create_url_asset_upload_job | Import an asset into Canva from a public URL |
Fetch asset upload job status canva_fetch_asset_upload_job_status | Poll for asset upload job completion status |
Fetch current user details canva_fetch_current_user_details | Get the current Canva user details |
Fetch design metadata and access information canva_fetch_design_metadata_and_access_information | Get metadata for a Canva design |
Get design export job result canva_get_design_export_job_result | Poll for design export job completion status |
Get designs designid export formats canva_get_designs_designid_export_formats | List available export formats for a design |
Access user specific brand templates list canva_access_user_specific_brand_templates_list | Lists brand templates available to the user (Canva Enterprise only) |
Fetch canva connect signing public keys canva_fetch_canva_connect_signing_public_keys | The API for verifying Canva webhooks, 'connect/keys,' is in preview, meaning unstable, not for |
Get design comment replies canva_get_design_comment_replies | Retrieves a list of replies for a comment or suggestion thread on a design |
Get design comment reply canva_get_design_comment_reply | Retrieves a specific reply to a comment or suggestion thread on a design |
Get designs designid comments threadid canva_get_designs_designid_comments_threadid | Retrieves metadata for a comment or suggestion thread on a design |
Get URL asset uploads jobid canva_get_url_asset_uploads_jobid | Retrieve the status and result of a URL-based asset upload job |
Get URL imports jobid canva_get_url_imports_jobid | Polls for URL import job completion status |
Get users me capabilities canva_get_users_me_capabilities | Lists the API capabilities for the user account associated with the provided access token |
List design pages with pagination canva_list_design_pages_with_pagination | Preview API for Canva: subject to unannounced changes and not for public integrations |
List folder items by type with sorting canva_list_folder_items_by_type_with_sorting | Lists the items in a folder, including each item's type |
List user designs canva_list_user_designs | Provides a summary of Canva user designs, includes search filtering, and allows showing both |
Retrieve app public key set canva_retrieve_app_public_key_set | Returns the Json Web Key Set (public keys) of an app |
Retrieve asset metadata by ID canva_retrieve_asset_metadata_by_id | You can retrieve the metadata of an asset by specifying its assetId |
Retrieve brand template dataset definition canva_retrieve_brand_template_dataset_definition | Canva's brand template IDs will change later this year, including a 6-month integration |
Retrieve canva enterprise brand template metadata canva_retrieve_canva_enterprise_brand_template_metadata | Upcoming update will change brand template IDs; integrations must migrate within 6 months |
Retrieve design autofill job status canva_retrieve_design_autofill_job_status | API users with Canva Enterprise membership can retrieve design autofill job results |
Retrieve design import job status canva_retrieve_design_import_job_status | Polls for design import job completion status |
Retrieve design resize job status canva_retrieve_design_resize_job_status | Retrieves the status and results of a design resize job |
Retrieve folder details by ID canva_retrieve_folder_details_by_id | Gets the name and other details of a folder using a folder's folderID |
Retrieve user profile data canva_retrieve_user_profile_data | Currently, this returns the display name of the user account associated with the provided |
Validate oauth token properties canva_validate_oauth_token_properties | Check an access token's validity and properties via introspection, requiring authentication |
Try it: find the Canva tool you need
Browse the 30 Canva tools
Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.
Example prompts
Create a new Canva design by importing the attached PDF (canva_create_design_import_job, title "Quarterly report", mime_type application/pdf), then poll canva_retrieve_design_import_job_status until it succeeds and show me the new design's id.
Check which formats canva_get_designs_designid_export_formats returns for my most recent design, then export it as PNG with canva_post_exports and wait for canva_get_design_export_job_result before giving me the download link.
List my designs with canva_list_user_designs sorted by modified_descending, take the newest one, and create a resized copy for Instagram with canva_create_design_resize_job — poll the job until it finishes and show me the new design id.
Upload the attached image to my Canva content library with canva_create_asset_upload_job (name "hero-banner"), poll canva_fetch_asset_upload_job_status, and tell me the asset id.
Canva tool arguments that trip agents up
These are the failures we actually see in production, with the argument names, defaults, and limits taken from the live tool schemas on 2026-08-02. Most Canva operations are asynchronous: the call returns a job id, and a separate status tool has to be polled until it reports success or failed before the result exists.
canva_post_designsrequiresdesign_type. It accepts a preset name (doc,whiteboard,presentation) or a custom size;titleis optional (1-255 chars). This is the tool to create a brand-new design — it is the second most-used Canva tool on ClawLink.canva_post_exportsrequiresdesign_idplusformat, and the format must be one Canva supports for that design. Formats arejpg,png,gif,pptx,mp4,pdf,csv, and HTML (html_bundle/html_standalone). Runcanva_get_designs_designid_export_formatsfirst, then pollcanva_get_design_export_job_resultwith the returnedexportId. Download URLs are valid for 24 hours.- Export rate limits are real and per-user. Canva allows 75 exports per 5-minute window and 500 per 24 hours per user, and 75 per document per 5 minutes. An agent asked to export a whole library will hit
Too many requests. Try again shortly.— the answer is spacing the exports, not retrying faster. canva_create_design_import_jobneeds the actual file — a path on your machine does not work. The tool takesfileplustitle(max 50 chars) and accepts PDF, Word, PowerPoint, Excel, PSD, AI, Keynote, Pages, Numbers, and OpenDocument formats up to 100MB. Local paths like/home/user/media/slide.pptxfail withmissing_file_bytes; the file has to be attached to the call, or fetched from a public URL. The import is async — pollcanva_retrieve_design_import_job_statuswithjobId.canva_create_design_resize_jobonly works on Canva Pro and above. It needsdesign_idplusdesign_type, resizes asynchronously, and is capped at 25,000,000 px² total area. Resizing always produces a new design; in-place resizing is not in the API. Free-plan accounts fail on this one with a permissions error, not a missing argument.canva_list_user_designsfilters by ownership. Passownership: "owned","shared", or"any"(default) andsort_by(relevance,modified_descending,title_ascending, ...). Long lists paginate with acontinuationtoken — ask the agent to keep following it instead of stopping at the first page.- Autofill is an Enterprise-only feature.
canva_initiate_canva_design_autofill_jobrequiresbrand_template_idplusdataand needs a Canva Enterprise account. Brand template IDs are also due to change later this year with a 6-month migration window — see the tool descriptions.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Canva working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Canva app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Canva through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Canva. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Canva actions to the runtime in a format your agent can reliably use. | 46 tools for Canva are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Canva to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Canva in the browser, and the 46 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
OpenClaw installed the Canva skill but can't call the tools
The ClawHub skill teaches OpenClaw about Canva, but the calls run through the ClawLink plugin and your connected account. Make sure Canva is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.
Connection succeeds but no tools appear
Reconnect Canva from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Canva tools
Canva tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Canva call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Canva returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
File bytes are missing for file. No attached bytes and s3key="…" is not a public URL the server can fetch
This is the most common Canva failure on ClawLink — more than half of all Canva errors we see. The agent passed a local file path (like /home/user/.openclaw/media/inbound/poster.pptx) to canva_create_design_import_job or canva_create_asset_upload_job, but the file never left your machine, so there is nothing to upload. The server needs the file's bytes attached to the call, or a URL it can fetch that is publicly accessible on the internet. Ask the agent to attach the file itself rather than naming a path; if it is working from a link, the link must not require login or a localhost address. The error names the offending s3key — check whether the agent invented it from a path on your disk.
Ask the agent to diagnose it:
Retry the Canva import, but attach the actual file bytes to the `file` argument instead of passing a filesystem path. Show me the arguments you plan to send before you send them.Unsupported file type: application/octet-stream. Supported types: PDF, DOC/DOCX, PPT/PPTX, XLS/XLSX, PSD, AI, KEY, PAGES, NUMBERS, ODT, ODP, ODS, ODG on parameter `file`
The agent sent a file whose detected type is a generic binary (application/octet-stream) rather than one of the formats Canva's import accepts. This usually means a local file was referenced without its real MIME type, or a file was uploaded from a source that strips the extension. Have the agent set the correct mime_type explicitly on the call (the import and URL-import tools both accept an optional mime_type override) and confirm the file is actually one of the listed types — a .pdf renamed from something else will not convert.
Ask the agent to diagnose it:
Retry with the explicit mime_type matching the file's real format (e.g. application/pdf). If the file is not genuinely a PDF/PPTX/Word/Excel/PSD/AI/Keynote file, tell me before retrying.Too many requests. Try again shortly.
A Canva rate limit. Canva throttles per user: 75 exports per 5 minutes and 500 per 24 hours, plus 75 exports per document per 5 minutes; other operations carry their own per-minute limits (most read tools 100/min, generate-design 20/min, exports 20/min). This error clears on its own — wait at least a minute, then retry. If the agent is looping, tell it to stop and space the calls out; retrying faster cannot outrun a per-user limit. It can also appear if the same design is exported repeatedly in a loop.
Ask the agent to diagnose it:
Stop and wait 60 seconds. Then continue the remaining exports one at a time, waiting between each, and tell me how many are left.Tool 'canva_upload_media' not found
There is no Canva tool called canva_upload_media — the agent guessed a name from another integration. The real tool is canva_create_asset_upload_job (with canva_fetch_asset_upload_job_status to poll it). ClawLink returns a "Did you mean" suggestion listing the closest real names on every miss; ask the agent to read that line and retry with the suggested tool, or run clawlink_list_tools first and pick from the actual catalog. The same pattern hits canva_list_designs (real name: canva_list_user_designs) and canva_list_folder_items (real name: canva_list_folder_items_by_type_with_sorting).
Ask the agent to diagnose it:
Run clawlink_list_tools for canva and show me the exact tool names. Then retry with the real name, not a guess.Multiple canva connections match this request. Specify a connectionId.
The account has more than one Canva connection, and the agent did not say which one to use. Every tool call can take a connectionId; pass the one for the Canva account you mean. If the wrong connection keeps being picked, check the dashboard for duplicate Canva connections and remove the stale ones, or set the one you want as default.
Ask the agent to diagnose it:
List my Canva connections, show me their ids and labels, and re-run the request with the connectionId for the account I pick.Canva 403 or "permission denied" on one action while others work
Two usual causes, and both are about the request rather than the connection. First, the connected account may not have edit access to that specific design, folder, or brand template — Canva gates operations by the user's permission on the item, and a shared design you can view is not necessarily one you can modify; templates also need the right plan (resize needs Pro+, autofill needs Enterprise). Second, the agent may have sent a placeholder or guessed id (like "YOUR_ID" or a sample design id from documentation) instead of a real one: ask it to run canva_list_user_designs or canva_fetch_design_metadata_and_access_information first and use the real designId from the result. If the tool says a specific design was not found or not allowed, start there rather than reconnecting.
Ask the agent to diagnose it:
Run canva_list_user_designs and show me the real design ids. Then retry the failing action with a real id from that list, and check whether my plan covers the operation.OAuth finished in the browser but the account is still missing
Try reconnecting Canva and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a OpenClaw Canva integration?
Yes. ClawLink is the fastest way to connect OpenClaw to Canva: link your Canva account once in the browser and OpenClaw can call the Canva API through 46 ready-made tools — no custom code or token handling.
How do I add Canva to OpenClaw with ClawLink?
Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Canva skill from ClawHub, then you click Connect in the dashboard to authorize Canva. OpenClaw calls the tools from the next message — no config files or API keys to manage.
How long does it take to connect Canva to OpenClaw?
About two minutes. Sign in, click Connect next to Canva in the dashboard, authenticate, and OpenClaw can use it from the next chat message.
Why use ClawLink instead of wiring Canva up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Canva working from chat.
OpenClaw installed the Canva skill but can't call the tools
The ClawHub skill teaches OpenClaw about Canva, but the calls run through the ClawLink plugin and your connected account. Make sure Canva is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.
Related
Cloudinary
Cloudinary is a cloud-based media management platform for uploading, storing, transforming, and delivering images and videos via CDN.
Connect Penpot
Open-source design and prototyping platform for collaborative design workflows.
Figma
Design files, prototypes, comments, and developer resources