Canva — Create, Import, Export & Organise Designs From Chat
May 25, 2026
Connect your Canva account and Alfrada can spin up new designs from a blank canvas or a custom size, import PDFs / DOCX / PPTX / XLSX / PSD / AI files as editable Canva designs, export to PDF / PNG / JPG / PPTX / GIF / MP4, upload images / videos / fonts into your content library, and browse what you already have. Designed for the people who live half in chat and half in Canva — agency producers, content marketers, founders building decks, anyone tired of leaving the conversation to babysit a file conversion.
Updated June 02, 2026: Canva's production OAuth connection now uses the refreshed Composio auth configuration.
What you can do
- Confirm the connected account —
canva_get_userreturns your Canva display name. Run this first on every new session to confirm which Canva account is active before touching anything destructive. - Create a new design —
canva_create_designtakes a singledesign_typearg: either a preset ('doc','presentation','whiteboard') or a custom-dimension object like{"type": "custom", "width": 1080, "height": 1080}(pixels, 1–8000 each side). Optionaltitle(1–255 chars) and optionalasset_id(fromcanva_upload_asset) to seed the design with an image you just uploaded. - Import an external file as a Canva design —
canva_import_designbrings in PDF, DOCX, PPTX, XLSX, PSD, or AI files. Pass the session file path inattachments: ["in/deck.pdf"](one file per call) plus atitle. The import is asynchronous —canva_get_import_statuswith the returnedjobIdreturnsin_progress,success(with the new design ID), orfailed. - Check what a design can export to —
canva_get_export_formatswithdesignIdlists the formats Canva actually supports for that specific design, so an export never fails on an unsupported type. - Export a design —
canva_export_designstarts an async export. Passdesign_idandformatas an object —{"type": "pdf"},{"type": "png", "size": {"width": 1080, "height": 1080}},{"type": "jpg", "quality": 75},{"type": "pptx"},{"type": "gif"}, or{"type": "mp4", "quality": "horizontal_1080p"}. Pollcanva_get_export_statuswith theexportId; on success the file is saved straight into your sessionin/folder when possible (otherwise you get the signed download URL, valid ~24 hours). - Upload an asset to your content library —
canva_upload_assetaccepts images, videos, audio, PDFs, and fonts (JPEG / PNG / GIF / WebP / SVG / MP4 / MOV / AVI / MP3 / WAV / TTF / OTF) from a session path:attachments: ["in/logo.png"]plus aname(max 50 chars). Images up to 50 MB, videos up to 100 MB. Got a public HTTPS link instead of a local file? Usecanva_upload_asset_from_urlwithurl+nameand skip the local staging entirely. Async —canva_get_upload_statusreturns theassetIdwhen it's ready, which you can immediately feed intocanva_create_design. - Look up a specific design or asset —
canva_get_designreturns title, owner, thumbnail URL, edit URL, and page count.canva_get_assetreturns name, tags, MIME type, and thumbnail. - Browse what you have —
canva_list_designssupports text search, ownership filter (any/owned/shared), sort order (relevance/modified_descending/modified_ascending/title_descending/title_ascending), and continuation-token pagination.canva_list_folder_itemsenumerates a folder (usefolderId: "root"for the top level), with optionalitem_types: ["design", "folder", "image"]filter. - Connect up to three Canva accounts per workspace. Personal + agency + client is a common split. Each shows its Canva display name in Integrations — pass
account_identifierto target a specific secondary account when needed.
Where this shows up
- Founder writing the board deck at midnight. "Import
in/strategy-draft.pptxas a Canva presentation called 'Board April 2026', then export it back to PDF once it's ready." Alfrada starts the import job, the agent pollscanva_get_import_statusuntil success, starts the export job, pollscanva_get_export_status, and hands you back a signed PDF URL or a saved session file. You didn't have to log into Canva once. - Brand designer running asset hygiene. "List my designs sorted by most recently modified — show me the top 20." You see thumbnails, edit links, and page counts inline in chat. Decide what to archive without opening a single tab.
- Content marketer briefing a campaign. "Upload
out/hero.pngto my Canva library and create a 1080×1080 Instagram post seeded with it titled 'Spring drop teaser'." Two tool calls, one design ready to refine. - Producer prepping client review. "Export design
DAGabc123XYZas both a PDF and a 1080p MP4 walkthrough." Two export jobs in parallel; you get both download URLs back when they're done. - Agency lead with three Canva accounts. "Using the agency account, list everything in the 'Q2 Campaigns' folder." Alfrada picks the right connected account by
account_identifier(display name) instead of broadcasting.
Try it
- "Confirm which Canva account I'm signed into, then list my 10 most recently modified designs."
- "Create a 1920×1080 Canva presentation titled 'Investor Update — May'."
- "Import
in/whitepaper.pdfas a Canva design called 'Whitepaper — editable' and tell me when it's ready." - "Export design
DAGabc123XYZas a 1080p MP4 and send me the download link when it's done." - "Upload
out/logo-light.pngto my Canva library and use it as the starting asset for a new 1080×1080 social post." - "Search my Canva designs for anything with 'pitch' in the title and show me thumbnails."
- "List the items inside Canva folder
FAFxyz789— only the designs, not subfolders."
Heads up
- Connecting is just a login. Integrations → connect Canva, sign in, authorise. No API keys, no developer portal.
- If Canva asks you to reconnect, reconnect once. The production OAuth configuration was refreshed on June 02, 2026, so older grants may need a clean sign-in.
- Imports and exports are asynchronous. Every
canva_import_design,canva_export_design, andcanva_upload_assetcall returns a job ID — the agent pollscanva_get_import_status,canva_get_export_status, orcanva_get_upload_statusuntil the job completes. Very large files can take a minute or two; the agent keeps working and surfaces the result when polling succeeds. - Export URLs expire after ~24 hours. Save the file or paste it where you need it that day. Re-export if the link goes stale.
- One file per import / upload call. Batch by issuing multiple calls in parallel — Alfrada will fan them out.
- Casing matters at the wire level. POST endpoints use snake_case (
design_id,asset_id); GET endpoints use camelCase (designId,assetId,jobId,exportId,folderId). Alfrada normalizes common aliases automatically — the planner hints document both forms so the agent picks the right one. - Up to three Canva accounts per workspace. Pass
account_identifier(the Canva display name Alfrada shows in Integrations) when you have more than one connected and want to target a specific secondary account. - Paid Canva features still need a paid Canva plan. Exports to MP4, brand kit access, premium templates, and Pro-only design types are gated by your own Canva subscription — Alfrada doesn't proxy those entitlements.
- Uploads go to your library, not into a design's timeline.
canva_upload_assetand theasset_idon create add a file to your content library or seed a design's starting image — Canva's API can't drop a music/audio track onto a static design. To deliver a design with sound, export the visual and combine it with audio into an MP4 via the video editor. Direct MP3 file uploads are sometimes rejected by Canva's validator (theaudio/mpegtype); when that happens, usecanva_upload_asset_from_urlwith a public link instead.