Canva
Create, review, edit designs
- Category
- Content & Design
- Primary Subcategory
- Graphic Design & Branded Asset Studios
Integration details
Description
Bring your Canva design workflow into Codex and create, refine, and review designs through natural conversation. What Canva can do: Create designs: Turn a brief, outline, or draft copy into a presentation, doc, poster, flyer, social post, resume, and more. Generate images: Create photos, illustrations, icons, and graphics from a prompt, or restyle an image you already have. Remove backgrounds: Lift the subject out of an image onto a transparent background. Upload files: Bring attachments and files from your chat into Canva to use in your designs. Resize for social media: Adapt a design for Facebook, Instagram, and LinkedIn in one step. Bulk create: Generate multiple designs from spreadsheet data using a brand template. Edit designs: Update text, media, and formatting, or reposition and resize elements. Get design feedback: Receive structured feedback on visual hierarchy, layout, readability, consistency, and accessibility. Implement feedback: Review comment threads and apply clear, actionable changes. Brand check: Check colors, fonts, logo usage, and copy against your Brand Kit. Once installed, describe what you want in plain language or invoke Canva directly with @Canva. Try prompts like: @Canva, create a pitch deck from this outline. @Canva, make an Instagram post announcing our Friday sale. @Canva, generate an illustration of a lighthouse at dawn. @Canva, remove the background from this photo. @Canva, upload this PDF and turn it into a presentation. @Canva, resize this design for social media. @Canva, create designs from this spreadsheet using my brand template. @Canva, update the headline in this design. @Canva, implement the feedback in the comment threads. @Canva, check this design against my Brand Kit. Requirements: Connect your Canva account to use the plugin. Bulk Create requires an eligible Canva Enterprise plan. Design and image generation use Canva AI credits. Want to take a more hands-on approach? Instantly open your design in Canva's powerful editor for the final touches.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Graphic Design & Branded Asset Studios
- Secondary Subcategories
- None listed
- Brand
- Canva
- Access
- Account required
- First tracked
- 2026-09-23
- Tool count
- 43
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Canva
Get updates when Canva’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Graphic Design & Branded Asset Studios
View Category43 tools agents can invoke
Create a new design by filling one brand template or autofill-enabled design, or (with design_id) update that design in place. Provide exactly one of brand_template_id or design_id. First verify a non-empty schema: for a template, call search-brand-templates with dataset non_empty, have the user confirm it, then call get-brand-template-dataset; for a design, call get-design-dataset. Use only user-confirmed data whose keys and types match that schema. Set update_in_place to true only when the user explicitly asked to overwrite the existing design rather than create a new one — this is destructive, cannot be undone, and is only available to some accounts.
autofill-design
Create a new Canva design by copying an existing design. Optionally select specific pages to include. Use the `search-designs` or `get-design` tools to find a design ID.
copy-design
LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Create a new Canva design from a generation job candidate ID. This converts an AI-generated design candidate into an editable Canva design. If successful, returns a design summary containing a design ID that can be used with the `editing_transaction_tools`. To make changes to the design, first call this tool with the candidate_id from generate-design results, then use the returned design_id with start-editing-transaction and subsequent editing tools.
create-design-from-candidate
Create a new Canva design from a brand template. Optionally select specific pages to include. If the user has already provided a brand template ID (a string starting with "BTM"), call this tool directly with that ID — do NOT call `search-brand-templates` first. Only use `search-brand-templates` when no ID has been provided and you need to discover one. If you need to fill template fields with custom data, use the `autofill-design` tool instead.
create-design-from-brand-template
Generate a new Canva design from a written brief, with any supplied content folded in. Use to turn a brief, presentation outline, or draft copy into a presentation, doc, sheet, website, poster, flyer, social post, resume, or another text-and-image layout; or to make a first design for a new project. Naming a saved brand in the brief (e.g. "using my Acme brand") applies that brand's colours, fonts, and logo automatically. Use this tool only when the requested output is a designed page or layout. Use generate-image instead when the user wants a standalone image, picture, photo, illustration, artwork, sticker, icon, graphic, or 2d vector with no page layout, even if they ask to "create", "make", or "design" it. Do not choose this tool merely because the request uses the words "create" or "design". Creates a newly generated design rather than editing one that already exists. Not for videos or whiteboards. Returns a job_id and continuation_token for the generation job. When this tool's UI widget is shown, the widget polls get-create-design-async-job itself and displays the design when ready - do not poll it yourself. Only when no widget is shown, poll get-create-design-async-job with both, waiting the number of seconds each response's polling_policy.wait_seconds gives before the next call, until the job completes, then share the design link with the user.
create-design
Create a new folder in Canva. You can create it at the root level or inside another folder.
create-folder
Uploads a file (image, video, audio, PDF, or other document) into Canva. Use when the user wants to add, upload, import, or send a file they have — a chat attachment, a local file, or generated content — to Canva, or wants to use such a file in a design, presentation, or their Canva library. Step 1: call this tool to get a single-use upload_url. Step 2: send the raw file bytes as the body of one HTTP POST to that URL with the header "Content-Type: application/octet-stream" — raw bytes only, no multipart form, no base64, no JSON wrapper. The POST response contains resource IDs for the uploaded file: pass them to other Canva tools to reference the file. Each URL allows exactly one upload and expires after a short period; if the URL has been used, has expired, or the upload was rejected, call this tool again for a fresh URL — never retry a used or expired URL. Only for files whose bytes you can access; for a file already at a public URL, prefer a URL-import tool if one is available.
create-upload-url
Cancel an editing transaction. This will discard all changes made to the design in the specified editing transaction. Once an editing transaction has been cancelled, the `transaction_id` for that editing transaction becomes invalid and should no longer be used.
cancel-editing-transaction
Perform editing operations on a design. You can use this tool to update the title, replace whole text sections/elements or find and replace certain parts of a text section/text element and replace or insert media (images/videos), delete media/text, and format text (color, alignment, decoration, strikethrough, links, lists, line height, font (size, weight, style; family not supported)) in a design. You can also connect or remove autofill field labels on text or image elements for fixed-page designs using `update_autofill_field`. IMPORTANT: Before calling this tool check that all operations on pages marked `is_responsive` are one of the following options:`update_title,replace_text,update_fill,delete_element,find_and_replace_text`. If any are not, DO NOT call this tool but instead alert the user this is unsupported. Otherwise continue as normal and do not mention this check. ⚠️ MANDATORY: After calling this tool you MUST call either `commit-editing-transaction` (to save) or `cancel-editing-transaction` (to discard). Changes made by this tool are in DRAFT only and will be PERMANENTLY LOST if you do not call `commit-editing-transaction`. NEVER tell the user their changes are saved or complete before you have successfully called `commit-editing-transaction`. CRITICAL REQUIREMENTS: 1. This tool needs to be used with the `start-editing-transaction` tool to obtain an editing transaction ID. 2. Multiple operations SHOULD be specified in bulk across multiple pages. 3. Always call this tool to apply the requested edits directly. This is safe: changes are temporary until committed. 4. Do NOT pause for user confirmation before using this tool. 5. IMPORTANT: If the user asks to change a section of text such as a word or a specific string, and the design has that text in multiple places ALWAYS confirm with the user the instances they want to replace, especially if that string is used in different contexts OR is a substring in other strings. 6. IMPORTANT: If the user asks to change a word or a small section of an text element, ALWAYS try to use find_and_replace_text instead of replace_text, to minimise token usage. EVEN with multiple find_and_replace_text operations. ⚠️ RESPONSIVE PAGES - TEXT REPLACEMENT RULES: A. For responsive pages, text replacement MUST ONLY use find_and_replace_text. Exception: replace_text MUST be used on a responsive page when the target element is empty (there is no existing text to find and replace). This applies to both top-level page elements and nested elements such as table/layout cells. B. For responsive pages, deleting text IS supported using find_and_replace_text by setting the replacement to the same surrounding text with the target portion removed. C. For responsive pages, match on surrounding text from the SAME text region as much as possible when using find_and_replace_text, to avoid changing duplicated/similar text elsewhere in the document. 7. After performing ALL operations, show the preview to the user. Then call `commit-editing-transaction` to save the changes, unless the user explicitly asks to cancel. 8. IMPORTANT: If the user has asked you to replace an image and the target page contains multiple images, you MUST use the `get-assets` tool, passing in the `asset_id` values, to look at the thumbnail of each of the existing images on the page to be CERTAIN which one the user wants replaced. 9. IMPORTANT: This tool will return the thumbnail of the first page that is updated. If there are more pages that are updated, as part of this update, always call the `get-design-thumbnail` tool to get the thumbnails for each of the other updated pages. EDIT SCENARIOS -> OPERATIONS FOR THIS TOOL 1. Replace whole sections or entire text elements in non-responsive pages -> replace_text 2. Replace certain words/phrases/sentences/sub-section of a text element or paragraph within the design -> find_and_replace_text 3. Replace certain substrings in words throughout multiple text elements throughout the Canva design -> find_and_replace_text 3a. Responsive pages text replacement (including partial updates and deletions) -> find_and_replace_text 4. Replace a media (image/video) element in design -> update_fill 5. Update the title of the Canva design -> update_title 6. Replace the title of a slide or page in the Canva design -> replace text 7. Insert an element with media (image/video) -> insert_fill 8. Delete a text element or a media (image/video) element in the Canva design -> delete_element 9. Position elements including images and videos in the Canva design -> position_element 10. Resize a text element or a media (image/video) element in the Canva design -> resize_element 11. Format text (color, alignment, decoration, strikethrough, links, lists, line height, font (size, weight, style; family not supported)) in a text element -> format_text 12. Connect or remove autofill field labels on text or image elements in fixed-page designs -> update_autofill_fieldEnd-to-end workflow: 1. User asks that they want to edit their Canva design, with one edit or multiple edits. 2. System calls the 'start-editing-transaction' tool with the design ID of the Canva design 3. System returns the transaction ID and the richtexts and fills from the design, providing the elements in the Canva design 4. System confirms with the user the edits the user wants to make. 5. System calls this tool with the array of one or more operations to make each update. 6. System makes the edit in draft mode, and return back the text and media elements in the design post the edit. The updates have NOT been saved in the actual design yet. 7. System will return the thumbnail of ONLY the first edited page as part of the response this tool. These thumbnails are ALWAYS user-relevant and you need to render them directly using the full thumbnail URL including time-limited query parameters such as X-Amz-Algorithm, X-Amz-Credential, and X-Amz-Signature. 8. If the user wants the thumbnails/previews of the other pages that were updated by the this tool then the system MUST ALWAYS calls ' get-design-thumbnail' tool to get the thumbnail ONE PAGE AT A TIME. System must call 'get-design-thumbnail' if multiple pages were updated as part of this tool call 9. System shows the preview to the user. 10. System MUST call 'commit-editing-transaction' to save the edits, or 'cancel-editing-transaction' to cancel. Changes are lost if neither is called.
perform-editing-operations
Get the content of a doc, presentation, whiteboard, social media post, sheet, and other designs in Canva. You must provide the design ID, which you can find with the 'search' tool. When given a URL to a Canva design, you can extract the design ID from the URL. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.
fetch
LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Generate only these design types: - doc: a modern, collaborative Canva Doc for text-heavy content. - document: a traditional page-based document with a fixed layout. - email: a visual email design or template, not ordinary written content. LEGACY ROUTING — ONLY WHEN create-design IS UNAVAILABLE - Only when create-design is absent from the tool list, call prepare-design-generation first for: business_card, card, desktop_wallpaper, facebook_cover, facebook_post, flyer, infographic, instagram_post, invitation, logo, phone_wallpaper, photo_collage, pinterest_pin, postcard, poster, presentation, proposal, report, resume, twitter_post, your_story, youtube_banner, youtube_thumbnail. - For those types, an image uploaded or generated in this conversation is visual inspiration: call prepare-design-generation with its platform reference as image_file. Never upload it as a Canva asset or pass it through asset_ids. - To reconstruct an image as editable layers, use image-to-design. - To create from a URL, use import-design-from-url. When a URL is only source material for a written Doc, use this tool with design_type doc. - To create directly from a brand template ID, use create-design-from-brand-template. - Do not use a tool when the user only wants advice or information. Sheets, spreadsheets, videos, websites, and raw HTML/code are unsupported outputs. CALLING - Put the complete brief and relevant prior context in query. - Pass a mentioned brand kit ID as brand_kit_id. If the user wants an on-brand result but has not selected one, call list-brand-kits first. - For doc text that must remain exact, set verbatim to true and place the exact text in query. - If "Common queries will not be generated" is returned, ask for more detail. - Results are candidates. After the user chooses one, call create-design-from-candidate with job_id and candidate_id before editing, exporting, or resizing.
generate-design
Generate a standalone image from a text prompt, or edit/restyle images supplied as references. **When to use:** Use for photos, illustrations, stickers, icons, graphics, 2d vectors, or edits to uploaded or generated images. Choose this tool instead of create-design when the user asks to generate, create, make, or design an image, picture, photo, illustration, or artwork and does not ask for a designed page or layout. The verb "create" or "design" alone does not make the request a Canva design. **When not to use:** Do not use for design-like images such as posters, wallpapers, flyers, presentations, or social media posts; use create-design for those new page-layout requests. To add, position, resize, or replace content inside an existing design, use the design-editing workflow instead; the image is source media and the design page is the edit target. **Image references and attachments:** For image-to-image generation or editing, add one MEDIA entry to imageReferences for every reference image. Pass the ID of an existing Canva MEDIA content reference directly. Before using a user-provided attachment as a reference, upload it to Canva: call create-upload-url, then send the attachment's raw bytes to the returned upload URL exactly as instructed. Each upload URL is single-use, so call create-upload-url separately for every attachment. Wait for every upload to succeed, then use the mediaId from each upload response as a separate MEDIA entry in imageReferences. For example, after uploading two attachments (replace the illustrative IDs with their returned mediaIds): ```json { "prompt": "Restyle both reference images as watercolor illustrations", "imageReferences": [ {"type": "MEDIA", "id": "MAAAAAAAAAAA"}, {"type": "MEDIA", "id": "MBBBBBBBBBBB"} ] } ``` Use exactly one imageReferences entry per successfully uploaded attachment. Never combine multiple media IDs into one string or object, and never put an upload URL in imageReferences. Do not pass assistant-hosted attachment URLs directly to this tool. If any attachment cannot be uploaded, do not silently omit it; explain the failure to the user. Omit imageReferences for pure text-to-image generation. **Result:** This call returns only a jobId, not the finished image. When this tool's UI widget is shown, the widget polls get-generate-image-job itself and displays the image when ready - do not poll it yourself. Only when no widget is shown, pass the jobId to get-generate-image-job and keep checking until the job succeeds or fails.
generate-image
Get metadata for particular assets by a list of their IDs. Returns information about ALL the assets including their names, tags, types, creation dates, and thumbnails. Thumbnails returned are in the same order as the list of asset IDs requested. When editing a page with more than one image or video asset ALWAYS request ALL assets from that page.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool
get-assets
Return a brand template's autofill field schema. If it is empty, do not call autofill-design; offer the template's create_url from search-brand-templates instead.
get-brand-template-dataset
Gets the status and result of a design generation job started by create-design. Pass the job_id and continuation_token from the previous create-design or get-async-job response. While the job is still running, wait the number of seconds the response's polling_policy.wait_seconds gives, then poll again with the same job_id and the updated continuation_token. Never poll sooner than that: it returns the same answer and the design arrives no earlier. Follow the polling_policy.instructions in every response, and relay them to the user while they wait. When the job completes, share the design link with them. When the completed response carries design.print.is_printable as true, and you are replying in text alone — no UI surface of your own rendering the design — then alongside the design link tell the user they can also order this design as a physical print with Canva Print and share design.print.print_url. Otherwise say nothing about printing: when print is absent or is_printable is false, there is nothing to do and nothing to relay. Never tell the user a design cannot be printed.
get-create-design-async-job
LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call get-create-design-async-job instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Internal tool for widget UI polling.
get-design-candidates
Get detailed information about a Canva design, such as a doc, presentation, whiteboard, video, or sheet. This includes design owner information, title, URLs for editing and viewing, thumbnail, created/updated time, and page count. This tool doesn't work on folders or images. You must provide the design ID, which you can find by using the `search-designs` or `list-folder-items` tools. You may also pass a full Canva design share URL directly (do not pre-extract just the ID) — any collaboration token embedded in the URL is needed to access a design shared via link and will be parsed and forwarded automatically. Example URL: https://www.canva.com/design/{design_id}. If the user provides a shortlink (e.g. https://canva.link/abc123), use `resolve-shortlink` with the shortlink ID first to get the full URL.
get-design
Get the thumbnail for a particular page of the design in the specified editing transaction. This tool needs to be used with the `start-editing-transaction` tool to obtain an editing transaction ID. You need to provide the transaction ID and a page index to get the thumbnail of that particular page. Each call can only get the thumbnail for one page. Retrieving the thumbnails for multiple pages will require multiple calls of this tool.IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool
get-design-thumbnail
Get a list of pages in a Canva design, such as a presentation. Each page includes its index and thumbnail. This tool doesn't work on designs that don't have pages (e.g. Canva docs). You must provide the design ID, which you can find using tools like `search-designs` or `list-folder-items`. You may also pass a full Canva design share URL directly (do not pre-extract just the ID) — any collaboration token embedded in the URL is needed to access a design shared via link and will be parsed and forwarded automatically. You can use 'offset' and 'limit' to paginate through the pages. Use `get-design` to find out the total number of pages, if needed.
get-design-pages
Get the text content of a doc, presentation, whiteboard, social media post, and other designs in Canva (except sheets, as it does not return data in sheets). Use this when you only need to read text content without making changes. IMPORTANT: If the user wants to edit, update, change, translate, or fix content, use `start-editing-transaction` instead as it shows content AND enables editing. You must provide the design ID, which you can find with the `search-designs` tool. You may also pass a full Canva design share URL directly (do not pre-extract just the ID) — any collaboration token embedded in the URL is needed to access a design shared via link and will be parsed and forwarded automatically. Do not use web search to get the content of a design as the content is not accessible to the public. Example URL: https://www.canva.com/design/{design_id}.
get-design-content
Internal tool for widget UI. One thumbnail per page of a design, minted on demand.
get-design-thumbnails
LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call get-create-design-async-job instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Internal tool for widget UI polling.
get-design-tool-job
Check an image generation job started by generate-image. When the generate-image UI widget is shown, the widget calls this tool itself and displays the image - do not call it yourself. Only when no widget is shown, pass the jobId returned by generate-image. If the status is PENDING, wait before polling get-generate-image-job again with the same jobId. Continue polling until the status is SUCCESS or FAILURE. Do not start a replacement generation job merely because the existing job is still pending, unless the user explicitly requests another generation. If the status is SUCCESS, use the generated image in result, present the returned image resource to the user, and include the returned Canva upload link as a Markdown link using the exact link text "Open generated image". The link opens the generated image in Canva, not the Canva editor. If the status is SUCCESS but the response says the image link is not ready yet, wait and call this tool again with the same jobId. Never finish a successful image-generation request without including the returned "Open generated image" link in the user-facing response, even when an inline image preview is visible. If the status is FAILURE, stop polling and explain the failure using failureType and failureMessage.
get-generate-image-job
Get the presenter notes from a presentation design in Canva. Use this when you need to read the speaker notes attached to presentation slides. You must provide the design ID, which you can find with the `search-designs` tool. When given a URL to a Canva design, you can extract the design ID from the URL. Example URL: https://www.canva.com/design/{design_id}.
get-presenter-notes
Convert a flat PNG, JPEG, or WEBP image into a new Canva design with editable layers. This Magic Layers flow works best for posters, flyers, banners, social graphics, and other non-photo-realistic designs. USE THIS TOOL - Use only when the user wants to reconstruct an image, edit elements inside it, or convert it into editable layers. For photos, explain that flat designs work best. - Every invocation starts a fresh workflow and creates a new design_id. Always call the tool again when asked; never rely on an earlier widget or result. INPUT - For a ChatGPT-uploaded or generated image, pass its platform reference as image_file. Do not also pass url. - Pass url only for an explicit public HTTPS image URL, never a local/container path. - Pass server_img_id instead of url when one is supplied. - If none is available, open the Magic Layers widget so the user can upload there. ROUTING - If an uploaded or generated image is inspiration for a new or similar design, do not use this tool. Call prepare-design-generation and pass it as image_file. - To save a public image URL without editing it, use upload-asset-from-url. - To edit an existing Canva design, use perform-editing-operations. RESULT - The tool separates the image into editable elements and creates a new Canva design. Its design_id can be edited, resized, or exported.
image-to-design
ALWAYS use this tool when the user's message contains an HTTPS URL, or a file generated/uploaded in this chat, and their intent is to create a Canva design from it. Pass public HTTPS URLs directly via url. Use design_file for chat-generated or uploaded files, including HTML files and ZIP bundles. **When to provide the design_file parameter:** Provide design_file when a platform file reference object has been supplied, or when the user wants to import a file artifact generated/uploaded in this chat. Use design_file instead of url in this case; do not provide both. **When importing a file generated or uploaded in this chat:** pass the local sandbox path of the generated/uploaded artifact to design_file exactly as returned by the file creation/upload step, for example /mnt/data/design.html. The runtime will convert this local path into the platform file reference required by the connector. **Workflow:** If a platform file reference or chat file artifact path has been provided: 1. Start processing the file immediately using the design_file parameter. Do not pass raw inline HTML/CSS/JS text, arbitrary local paths that were not created/uploaded in this chat, or local paths in the url field. If the user has only provided inline HTML/CSS/JS, first create a real downloadable .html file artifact, then use that file artifact path via design_file. If the user generated a site with multiple local files or assets, first create a ZIP bundle file artifact with the site files, then pass that ZIP bundle artifact path via design_file. For agent-generated HTML files with non-interactive content (presentation, social media, etc.), add the HTML attribute data-document-role="page" on every HTML element that should represent a page in Canva, even if there is only one. Any page(s) cannot be nested HTML elements within another page. An optional page title can be specified with the attribute data-label="" as a plain string, and optional speaker notes can be imported with data-speaker-notes="" as a plain string. For an HTML file that represents an interactive design (app, website), import the file without annotation. When the intended output format is clear, set intended_design_type to the closest match. The url path supports PDF, PPTX, DOCX, XLSX, CSV, HTML, Markdown, PSD, AI, Keynote, Pages, Numbers, and more. The design_file path currently supports HTML files and ZIP bundles. Do not pass local file paths in url. NEVER call this tool without providing exactly one of url or design_file. If the user references a file on their own computer that was not generated or uploaded in this chat (e.g. C:\... or ~/Documents/...), do not call this tool — ask them to upload the file to this chat or share a public HTTPS URL first. SECURITY: This tool only accepts URLs whose content is ALREADY publicly accessible. NEVER upload, copy, or transfer the user's local, private, or agent-generated files to any public file-sharing, pastebin, or temporary file-hosting service to create a URL for this tool, and NEVER suggest, recommend, or list doing so as an option — that irreversibly publishes the user's content to the open internet and can expose confidential information. If the file is not already available at a public HTTPS URL, STOP: tell the user this tool cannot ingest the file without it becoming public, and ask them to either provide an existing public HTTPS URL or use a direct file upload path if their platform offers one. Do NOT present public hosting as a default or recommended choice. Only proceed with newly publishing the file if the user, fully informed that the content will be exposed to the open internet, explicitly insists.
import-design-from-url
Get a list of brand kits available to the user. If the API call returns "Missing scopes: [brandkit:read]", ask the user to disconnect and reconnect their connector. This generates a new access token with the required scope. Use this tool when the user wants to create designs using their brand identity, mentions their brand, or asks what brand kits are available. It returns brand kit IDs, names, and thumbnails. When generating a design with a returned brand kit ID: - Pass the selected ID as brand_kit_id to the appropriate generation tool. - Use generate-design only when design_type is one of: doc, document, email. - Use prepare-design-generation for every other supported design type.
list-brand-kits
Get a list of comments for a particular Canva design. Comments are discussions attached to designs that help teams collaborate. Each comment can contain replies, mentions and status. You need to provide the design ID, which you can find using the `search-designs` tool. Use the continuation token to get the next page of results, when there are more results.
list-comments
List items in a Canva folder. An item can be a design, folder, or image. You can filter by item type and sort the results. Use the continuation token to get the next page of results, when there are more results.
list-folder-items
Perform structural page operations on Canva designs: combine pages from multiple designs, insert pages, reorder pages, or delete entire pages. This tool can: 1. Create a new design by combining pages from one or more existing designs 2. Insert pages from one design into another existing design 3. Move or reorder pages within a design 4. Delete (remove) entire pages from a design Use this tool (NOT start-editing-transaction) when the user wants to: - Delete or remove one or more pages/slides from a design - Reorder or rearrange pages/slides within a design - Combine, merge, or stitch together multiple designs - Copy or insert pages from one design into another Do NOT use this tool for editing content within pages (text, images, etc.) — use start-editing-transaction for that. CRITICAL: You MUST ALWAYS ask the user for explicit confirmation before calling this tool, regardless of the operation type. Show them a summary of exactly what will change and ask "Would you like me to proceed?" Wait for their clear approval, then call this tool immediately. MANDATORY DELETE CONFIRMATION: If ANY operation in the list is a delete_pages operation, you MUST follow this protocol with NO exceptions — regardless of whether the pages are empty, have content, or any other condition: 1. Show a summary of ALL operations, marking each deletion as: "⚠️ Delete page(s) [X] — CANNOT BE UNDONE" 2. Tell the user: "To proceed, please type exactly: I approve the deletion" 3. ONLY call this tool if the user types the EXACT phrase "I approve the deletion" — do NOT accept any variation such as "yes", "ok", "approve", "I approve", "go ahead", "delete them", or any other paraphrase 4. If the user types anything other than the exact phrase, ask them again to type it exactly For insert_pages and move_pages only (no deletes), a simple "Would you like me to proceed?" confirmation is sufficient. Operations are applied sequentially. Page numbers are 1-based and evaluated at the time each operation runs. The tool automatically polls for job completion and returns the final result.
merge-designs
Move items (designs, folders, images) to a specified Canva folder
move-item-to-folder
LEGACY-ONLY — DO NOT CALL WHEN create-design IS AVAILABLE. If create-design is in the tool list, you MUST NOT call this tool. Call create-design instead. All instructions below apply only when create-design is absent from the tool list. A failed create-design call does not make it unavailable. Prepare on-brand design generation in Canva. Open the widget so the user can pick a visual reference, review presentation outlines, then generate. LEGACY FIRST-CALL RULE — ONLY WHEN create-design IS UNAVAILABLE - Only when create-design is absent from the tool list, use this legacy tool as the first call for non-responsive design generation requests. - Non-responsive includes fixed-format visual designs such as instagram_post, your_story, facebook_post, twitter_post, pinterest_pin, youtube_thumbnail, youtube_banner, poster, flyer, card, invitation, business_card, logo, wallpapers, photo_collage, infographic, and postcard. - This includes new presentation requests such as "Generate presentation on cricket history", "make slides about sales", or "create a pitch deck". - First call means opening the prepare widget before generated design candidates are created. - For the first call, omit intent or set it to recommendation. - Include design_type and topic in the first call. - If design_type is presentation, include outline in the same call. WORKFLOW - Use intent recommendation (default) to fetch or hydrate the widget's visual-reference recommendation. - If the conversation mentions a brand kit, pass its ID as brand_kit_id. - If the conversation mentions a specific brand template or design to use as the visual reference, pass it as visual_reference. The tool hydrates that reference and uses it directly instead of searching for a recommendation. - Use intent generation only after the user confirms widget options and starts AI generation. - Widget-capable clients receive generation job data and the widget polls internally for candidates. RESPONSE PLACEMENT - For intent recommendation, put any user-facing setup text before calling this tool. - After a recommendation call, do NOT add assistant text below the widget. The widget is the final visible response for that turn. REQUIRED INPUT - topic: what to create (subject, goals, brief). Must be a non-empty string; if the user gives no explicit topic, derive a concise brief from their request. Never pass an empty string. - outline: required whenever design_type is presentation, including the first recommendation call REQUIRED FOR GENERATION INTENT - design_type: e.g. presentation, instagram_post, flyer OPTIONAL INPUT - title: a concise title for the generated Canva design; when omitted, it is derived from topic - brand_kit_id, visual_reference, source_document, audience, length - Prefer visual_reference for model-facing calls. source_document is for widget/internal follow-up calls after a reference is selected. OUTLINE REVIEW - Presentations include fullscreen outline review in this widget. - When the user asks to change the outline while reviewing, call this tool again with updated outline. - Do NOT call request-outline-review during this flow; that tool is for the legacy guided presentation flow only. SINGLE-PAGE DESIGN TYPES - Presentations are multi-slide: describe all slides via the outline. - Every other design type produces a SINGLE page. Describe one page only. Do NOT describe multiple pages, sides, or faces (e.g. the front and back of a business card); multi-page descriptions produce poor results. WHEN NOT TO USE - Responsive or document-like outputs: docs, documents, sheets, spreadsheets, videos, video-first designs, email designs, full websites, or import-from-URL flows. - Use topic and outline for the content brief. CHAT IMAGE VISUAL REFERENCE - When the user refers to an image uploaded or generated in this conversation, pass its platform file reference as **image_file**, including for presentations. - For non-presentation requests, **image_file** is the visual reference and starts generation in the widget immediately. - For presentations, still pass **image_file** when the user referred to a chat image. The widget explains that presentations cannot use it as a visual reference. - Continue to use **visual_reference** when the user refers to an existing Canva design or brand template. Do not use the widget/internal **reference** or **source_document** inputs for model-facing recommendation calls.
prepare-design-generation
Strip the background out of an image already in the user's Canva account, leaving only the subject on a transparent backdrop. Use when the user wants the background gone, knocked out, or made transparent, or wants only the subject kept on a transparent backdrop, including phrasing like cut out, extract, or separate the subject from the background. Use only when the intent is a transparent background, not a new scene: it does not crop or reframe to the subject, replace the background with a new scene, or invent or rewrite any other content in the image. Returns the result as a new image with an alpha channel.
remove-background
Resize a Canva design to a preset or custom size. The tool will provide a summary of the new resized design, including its metadata.
resize-design
Resolves a Canva shortlink ID to its target URL. IMPORTANT: Use this tool FIRST when a user provides a shortlink (e.g. https://canva.link/abc123). Shortlinks need to be resolved before you can use other tools. After resolving, extract the design ID from the target URL and use it with tools like get-design, start-editing-transaction, or get-design-content.
resolve-shortlink
Commit an editing transaction. This will save all the changes made to the design in the specified editing transaction. CRITICAL: All edits are in DRAFT and will be PERMANENTLY LOST if this tool is not called. You MUST always show the user what changes were made and ask for their explicit approval before calling this tool — for example: "Would you like me to save these changes to your design?" Wait for their clear approval before proceeding. Do NOT call this tool without user approval. After successfully saving changes, always provide the user with a direct link to open their design in Canva for review. Use the link they gave you or from the get-design tool. If the commit fails, ALL changes made during the transaction are lost and no changes are saved to the actual design. Users must start a new editing transaction to retry any failed operations. Once an editing transaction has been committed, the `transaction_id` for that editing transaction becomes invalid and should no longer be used.
commit-editing-transaction
Search the user's brand templates. Use instead of search-designs for template requests. Leave query empty unless they specify a title or type. For template autofill, set dataset to non_empty. After the user chooses, call get-brand-template-dataset and only call autofill-design when its schema is non-empty.
search-brand-templates
Search docs, presentations, videos, whiteboards, sheets, and other designs in Canva. Use the continuation token to get the next page of results, if needed. The design URLs are secured and are not accessible to the public. Use the fetch tool instead of web search to get the content of a design. Use the continuation token to get the next page of results, when there are more results.
search
Search docs, presentations, videos, whiteboards, sheets, and other designs in Canva, except for templates or brand templates. Use when you need to find specific designs by keywords rather than browsing folders. Use 'query' parameter to search by title or content. If 'query' is used, 'sortBy' must be set to 'relevance'. Filter by 'any' ownership unless specified. Sort by relevance unless specified. Use the continuation token to get the next page of results, when there are more results. CRITICAL REQUIREMENTS: 1. ALWAYS use the 'search-brand-templates' tool when the user is searching for templates or wants to use a template. 2.** 🚫 When a user says search a template, they ALWAYS mean brand-templates. Therefore NEVER call this tool, ALWAYS call the 'search-brand-templates' tool to search for the templates. ** 3.** 🚫 NEVER use this tool when the user expresses intent to “generate”, “create”, “autofill”, “search a template”, “start from a template”, “use my template”, or “pick a template for generation”. In all such cases, ALWAYS use search-brand-templates. ANY query involving: – “generate a presentation” – “generate a report” – “make a design using a template” – “generate from a template” – “produce a presentation from their template” - "search for available templates" MUST NOT use search-designs. This tool ONLY searches existing designs (docs, presentations, whiteboards, videos, etc.) that the user already owns or that are shared with them. It DOES NOT find templates and MUST NOT be used as a fallback for template selection. **
search-designs
Search the user's folders and folders shared with the user based on folder names and tags. Returns a list of matching folders with pagination support. Use the continuation token to get the next page of results, when there are more results.
search-folders
Start an editing session for a Canva design. Use this tool FIRST whenever a user wants to make ANY changes or examine ALL content of a design, including:- Translate text to another language - Edit or replace content - Update titles - Connect or remove autofill field labels on existing text or image elements - Replace or insert media (images/videos) - Delete media/text - Fix typos or formatting - Format text appearance (color, alignment, decoration, links, lists, font (size, weight, style; family not supported)) - Auditing or reviewing content - Edit words or sections of a paragraph or text element.- Edit specific words or substrings throughout the Canva design CRITICAL REQUIREMENTS: 1. The `transaction_id` returned in the tool response MUST be remembered and MUST be used in all subsequent tool calls related to this specific editing transaction. 2. After calling this tool, ALWAYS call `perform-editing-operations` with the edit operations needed to apply the edits the user wants. To re-iterate, editing operations must be performed by the `perform-editing-operations` tool. 3. IMPORTANT: ALWAYS call the `perform-editing-operations` tool with the edit operations needed to apply the edits the user wants. 4. IMPORTANT: After performing ALL operations, ALWAYS call `commit-editing-transaction` to save the changes. Changes are in DRAFT only until committed — they will be PERMANENTLY LOST if you do not call `commit-editing-transaction`. 5. To save the changes made in the transaction, use the `commit-editing-transaction` tool. 6. To discard the changes made in the transaction, use the `cancel-editing-transaction` tool`.7. IMPORTANT: ALWAYS ALWAYS ALWAYS show the preview to the user of EACH thumbnail you get in the response in the chat, EVERY SINGLE TIME you call this tool. 8. If the user provides a shortlink (e.g. https://canva.link/abc123), use `resolve-shortlink` with the shortlink ID first to get the design URL. 9. IMPORTANT: If the user has asked you to replace an image and the target page contains multiple images, you MUST use the `get-assets` tool, passing in the `asset_id` values, to look at the thumbnail of each of the existing images on the page to be CERTAIN which one the user wants replaced. 10. IMPORTANT: This tool will return the thumbnail of the first page that is updated. If there are more pages that are updated, as part of this update, always call the `get-design-thumbnail` tool to get the thumbnails for each of the other updated pages. EDIT SCENARIOS -> OPERATIONS FOR EDITING WORKFLOW. You need to call 'perform-edit-operations' with these operations 1. Replace whole sections or entire text elements -> replace_text 2. Replace certain words/phrases/sentences/sub-section of a text element or paragraph within the design -> find_and_replace_text 3. Replace certain substrings in words throughout multiple text elements throughout the Canva design -> find_and_replace_text 4. Replace a media (image/video) element in design -> update_fill 5. Update the title of the Canva design -> update_title 6. Replace the title of a slide or page in the Canva design -> replace text 7. Insert an element with media (image/video) -> insert_fill 8. Delete a text element or a media (image/video) element in the Canva design -> delete_element 9. Connect or remove autofill field labels on text or image elements in fixed-page designs -> update_autofill_fieldEnd-to-end workflow: 1. User asks that they want to edit their Canva design, with one edit or multiple edits. 2. System calls this tool with the design ID of the Canva design 3. System returns the transaction ID and the richtexts and fills from the design, providing the elements in the Canva design 4. System confirms with the user the edits the user wants to make. 5. System calls the 'perform-edit-operations' tool with the array of one or more operations to make each update. 6. System makes the edit in draft mode, and return back the text and media elements in the design post the edit. The updates have not been saved in the actual design. 7. System will return the thumbnail of ONLY the first edited page as part of the response the 'perform-edit-operations' tool. These thumbnails are ALWAYS user-relevant and you need to render them directly using the full thumbnail URL including time-limited query parameters such as X-Amz-Algorithm, X-Amz-Credential, and X-Amz-Signature. 8. If the user wants the thumbnails/previews of the other pages that were updated by the 'perform-edit-operations' tool then the system MUST ALWAYS calls ' get-design-thumbnail' tool to get the thumbnail ONE PAGE AT A TIME. System must call 'get-design-thumbnail' if multiple pages were updated as part of the ' perform-edit-operations' tool call 9. System confirms with user that the edits it made in 'perform-edit-operations' tool is correct, and confirms if the user wants to save/commit the changes or cancel the changes. 10. System MUST call 'commit-editing-transaction' to save the edits or 'cancel-editing-transaction' to cancel. Changes are lost if neither is called.
start-editing-transaction
Internal tool for widget lifecycle telemetry.
track-event-lifecycle
Upload an asset (e.g. an image, a video) into Canva, from a public HTTPS URL or a file uploaded/generated in this chat. Pass public HTTPS URLs directly via url. Use asset_file for chat-generated or uploaded files: provide the file reference object exactly as supplied by the platform. Provide exactly one of url or asset_file. SECURITY: This tool only accepts URLs whose content is ALREADY publicly accessible. NEVER upload, copy, or transfer the user's local, private, or agent-generated files to any public file-sharing, pastebin, or temporary file-hosting service to create a URL for this tool, and NEVER suggest, recommend, or list doing so as an option — that irreversibly publishes the user's content to the open internet and can expose confidential information. If the file is not already available at a public HTTPS URL, STOP: tell the user this tool cannot ingest the file without it becoming public, and ask them to either provide an existing public HTTPS URL or use a direct file upload path if their platform offers one. Do NOT present public hosting as a default or recommended choice. Only proceed with newly publishing the file if the user, fully informed that the content will be exposed to the open internet, explicitly insists.
upload-asset-from-url
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Canva alternatives on ChatGPT?
As of 2026-09-29, Canva competes with 3aqel Arabic Creative, Adobe Express, Dobby Ads, Goldie, Infographic Artist, Lawh.ai, Orshot, Pixelixe, Poster Maker, PosterMyWall, StarryKit in ChatGPT Graphic Design & Branded Asset Studios, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.