Custom GPT to Plugin Migration Guide
A practical, non-technical guide for moving your existing Custom GPTs into ChatGPT Plugins, Skills, reference files, and connected apps.
What is changing?
Custom GPTs are being retired. OpenAI is moving reusable workflows into Plugins, which can package instructions, reference files, and connected apps together.
The goal is similar, but the structure is more modular and easier to reuse across ChatGPT and supported Codex workflows.
What should I do first?
Start by identifying the GPTs your team actually relies on, then decide whether each one should be migrated, combined with others, or retired.
Do not wait until the retirement date. Leave time to test the replacement before switching users.
1. Understand the new structure
The easiest way to think about the migration is to map the parts of your current Custom GPT to their new equivalent.
2. Use this four-step migration process
Inventory
List the GPTs you rely on, who owns them, what they do, and whether they use files, apps, or custom actions.
Consolidate
Decide whether similar GPTs should become separate Skills inside one Plugin instead of separate Plugins.
Build
Use the built-in migration, create plugin files manually, or ask Plugin Creator to repackage the workflow.
Validate
Test familiar prompts, one harder prompt, files, output formats, app access, and sharing before rollout.
3. Pre-migration checklist
- Review and clean up the GPT instructions.
- Remove outdated or duplicate knowledge files.
- Confirm which apps or external services it uses.
- Identify any Custom Actions that will need rebuilding.
- Save 5–10 real prompts your team uses today.
- Include at least one difficult or edge-case prompt.
- Publish the latest version before migrating.
- Confirm who will need access to the replacement.
4. Decide what each GPT should become
| Example | Recommended approach | Complexity |
|---|---|---|
| Schema Generator | Skill inside an SEO Plugin | Low |
| SEO Audit Assistant with templates | Skill + reference files | Low |
| SEO performance workflow using connected apps | Skill + apps inside a Plugin | Medium |
| GPT using a custom API Action | Plugin + rebuilt integration / MCP | High |
| Blog Post Writer with a brand voice guide | Content Writing Skill + brand voice and editorial reference files | Low |
| SEO Content Brief Builder with a brief template | Content Brief Skill + template, audience notes, and examples | Low |
| Multilingual Content Localizer | Localization Skill + language guides and terminology references; review output with a native-language editor | Medium |
| Social Post Repurposer that reads approved content | Repurposing Skill + channel rules and approved source material; add an app only if it needs to fetch or publish content | Medium |
These are starting points. Choose a separate Plugin when a content workflow needs different owners, permissions, or integrations. Review factual claims, brand fit, and publication readiness before sharing generated content.
5. Create the replacement: choose a path
Use the built-in conversion for a GPT you own when it is available. If you want to reorganize several GPTs into one plugin, choose the manual or AI-assisted build. Those create a new plugin; they do not migrate the original GPT in place.
A · Use the built-in “Migrate to plugin” option
- Finish and publish your edits. In the GPT builder, review instructions and knowledge files, then publish the latest version. It does not have to be shared publicly.
- Start the conversion. Open My GPTs → Created by me, select the GPT, and choose Migrate to plugin. Follow the on-screen review and creation steps.
- Review the result. Check the new skill instructions, copied knowledge/reference files, and connected apps. The selected model and Custom Actions do not transfer; rebuild any required Action separately.
- Install and test privately. Find the plugin under Customize → Plugins where available, install it if prompted, then test familiar and difficult tasks in a new conversation.
- Share after validation. Give intended users access and ask one colleague to install and try it. Existing GPT sharing permissions do not carry over.
If you cannot see the migration option, check the account/workspace where the GPT was created, that it is published, and that plugins are enabled; availability can vary.
B · Create the plugin files and folders manually
Example: turn an “SEO Content Brief” GPT into a plugin containing one skill. This path uses a local folder and a portable plugin manifest. You can edit the files in any plain-text editor.
- Create the folder structure shown below. Copy any approved brand guide and brief template into
references/. Create another folder underskills/for each distinct workflow. - Write
plugin.json. Place it at the root of the plugin folder; use a stable lowercase name with hyphens. - Write
SKILL.md. Give it YAML frontmatter withnameanddescription. In the body, adapt the GPT's purpose, trigger, required inputs, steps, output format, and missing-information rules. Point to each reference file by its relative path. - Handle integrations separately. A skill can describe when to use an available app, but text alone does not connect it. Configure an approved app or MCP connection and test its permissions. A GPT Custom Action requires its own replacement.
- Add the local plugin to a marketplace and install it. Ask
@plugin-creatorto register this existing folder in a personal marketplace, or follow the manual marketplace instructions. Restart the desktop app if necessary, find the plugin in the Plugins Directory, install it, and test it in a new chat. Local marketplace distribution and workspace-wide sharing are separate steps.
seo-content-plugin/
plugin.json
skills/
seo-content-brief/
SKILL.md
references/
brief-template.md
brand-voice.md
{
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
"name": "seo-content-plugin",
"version": "1.0.0",
"description": "Reusable SEO content brief workflow"
}
---
name: seo-content-brief
description: Create an SEO content brief from a keyword, audience, and source material. Use when a user asks for a brief; do not publish content.
---
# SEO content brief
1. Ask for the target keyword, audience, and page goal if missing.
2. Review references/brief-template.md and references/brand-voice.md.
3. Draft search intent, outline, questions to answer, and CTA guidance.
4. Use the template headings. Flag unsupported claims for review.
5. Return a draft for a human editor to check before use.
The portable manifest discovers skills in the root skills/ folder. These example reference files are placeholders: copy in your real approved files. If Plugin Creator scaffolds .codex-plugin/plugin.json instead, that is a supported compatibility layout; follow the file paths it generates rather than mixing the two layouts.
C · Use AI to repackage the GPT
Use this path when you want help turning existing instructions and files into a clean plugin. You still need to supply the GPT configuration and original knowledge files. AI cannot infer what is in a file it has not been given.
- Gather the inputs. Copy the GPT's published instructions into a text file. Download or locate the original knowledge documents. Save example outputs and test prompts, plus a list of apps and Custom Actions.
- Start Plugin Creator. In ChatGPT Chat or Work, type
@and select Plugin Creator if your workspace offers it. For a local development workflow in Codex, use the available@plugin-creatoror$plugin-creatorskill as shown in your environment. - Attach the source material and paste the brief below. Ask it to separate stable workflow instructions from supporting references, to show the proposed structure, and to flag integrations it cannot transfer.
- Inspect the draft. Confirm the skill description triggers for the right request, the full instructions preserve critical rules, reference files are included, and any dependencies are actually configured. Revise with follow-up prompts.
- Finish, install, and test. Follow Plugin Creator's prompts to create the plugin, install it if prompted, and compare the results with your saved GPT examples. Share only after another intended user can use it.
Create a private plugin to replace my existing "SEO Content Brief" Custom GPT.
I am attaching its published instructions, original knowledge files,
one example output, and several test prompts.
Please:
1. Make a reusable skill for creating SEO content briefs.
2. Put the lasting process, inputs, output format, and review rules in
the skill instructions. Keep the approved brief template and brand
voice guide as reference files.
3. Show me the proposed skill name, description, file structure,
and a list of what was copied, rewritten, or omitted.
4. List every connected app and Custom Action separately. Do not
claim an integration is working until it has been connected and tested.
5. Ask me about any missing source file or unclear instruction.
6. Keep it private while we run the attached test prompts.
Do not invent facts, brand guidance, or permissions that are absent
from the source materials.
For a manual file package assisted by AI, replace the first line with: “Create a local, portable plugin folder with a root plugin.json, skills/<name>/SKILL.md, and the original supporting files in references/. Show me the files before any installation.” Have a person review the generated files before they are installed.
6. Test the replacement before rollout
A migrated Plugin may not behave exactly like the original GPT, so use the same prompts before and after migration and compare the results.
- Does it select the correct Skill?
- Does it follow the original instructions?
- Does it use the expected reference files?
- Does it produce the expected format or file?
- Do connected apps still work as expected?
- Do rebuilt integrations return the right data?
- Does a difficult prompt still produce a usable result?
- Can another intended user access and use it?
7. Sharing and rollout
Migration does not automatically carry over your existing GPT sharing settings. A migrated Plugin starts private, and users may need the Plugin shared with them and installed before they can use it.
A simple rollout flow is: migrate → test → share → have users install → confirm access → switch the team over.
8. Recommended inventory sheet
For teams with multiple GPTs, track the migration in a simple spreadsheet using columns like these:
| Column | What to capture |
|---|---|
| GPT Name | Name of the existing Custom GPT. |
| Owner | Person responsible for maintaining it. |
| Purpose | What business task it supports. |
| Knowledge Files | Templates, SOPs, reports, or reference documents. |
| Apps / Actions | Connected apps or Custom Actions currently in use. |
| Users | Who relies on it today. |
| Decision | Standalone Plugin, Skill in a larger Plugin, or retire. |
| Migration Complexity | Low, Medium, or High. |
| Status | Not started, Migrated, Testing, Ready, Retired. |
9. Dates to plan around
| Date | Milestone |
|---|---|
| October 26, 2026 | Planned end of new Custom GPT creation for affected Enterprise workspaces. Existing unmigrated GPTs can still be edited. |
| December 11, 2026 | Standard scheduled retirement date for Custom GPTs. |
| February 11, 2027 | Retirement date for qualifying Enterprise workspaces with an approved deferral. |
Dates and availability can vary by account or workspace. Follow your in-product notice and workspace-specific guidance.
Quick summary
Instructions become Skills. Knowledge files become reference files. Connected apps can be included in Plugins. Custom Actions need special attention because they do not automatically transfer.
For most teams, the best approach is to inventory what you have, combine similar GPTs where it makes sense, migrate the important ones, and run side-by-side testing before asking users to switch.
Official OpenAI references
Custom GPT retirement and migration FAQ
Moving your custom GPT workflows to plugins
Build plugins with Plugin Creator
Package your plugin: files, manifests, and local marketplaces
Want more guides like this?
I write THE LATHAM every week: what I'm building with AI, what's working, and what the human still has to do. No fluff, no faceless content.