<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Zeynep Aslı Erhan</title>
    <description>The latest articles on DEV Community by Zeynep Aslı Erhan (@zeynepaslierhan).</description>
    <link>https://dev.to/zeynepaslierhan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4228765%2Feed9f741-1f87-4c1a-b4c6-08b15f1f54fb.jpg</url>
      <title>DEV Community: Zeynep Aslı Erhan</title>
      <link>https://dev.to/zeynepaslierhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zeynepaslierhan"/>
    <language>en</language>
    <item>
      <title>OpenAI is shutting down prompt objects on Nov 30: how to move your prompts into code</title>
      <dc:creator>Zeynep Aslı Erhan</dc:creator>
      <pubDate>Thu, 05 Nov 2026 14:28:24 +0000</pubDate>
      <link>https://dev.to/zeynepaslierhan/openai-is-shutting-down-prompt-objects-on-nov-30-how-to-move-your-prompts-into-code-4fim</link>
      <guid>https://dev.to/zeynepaslierhan/openai-is-shutting-down-prompt-objects-on-nov-30-how-to-move-your-prompts-into-code-4fim</guid>
      <description>&lt;p&gt;If you use reusable prompts in the OpenAI platform dashboard, there is a date to put in your calendar: &lt;strong&gt;November 30, 2026&lt;/strong&gt;. According to OpenAI's &lt;a href="https://developers.openai.com/api/docs/deprecations.md" rel="noopener noreferrer"&gt;deprecations page&lt;/a&gt;, the &lt;code&gt;v1/prompts&lt;/code&gt; API and reusable prompt objects are scheduled to shut down that day. Deprecation was announced on June 3, 2026.&lt;/p&gt;

&lt;p&gt;OpenAI's own migration advice is short: move the prompt content out of the managed &lt;code&gt;prompt&lt;/code&gt; object and into your application code (&lt;a href="https://developers.openai.com/api/docs/guides/prompting/migrate-from-prompt-object.md" rel="noopener noreferrer"&gt;Migrate from prompt objects&lt;/a&gt;). Here is what that looks like in practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before: a prompt object
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pmpt_123&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;variables&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;customer_name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Acme&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;issue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;billing question&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  After: the prompt lives in your code
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-6-astra&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a helpful support assistant. Be concise, accurate, and friendly.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Customer name: Acme. Issue: billing question. Write a response to the customer.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;(Both snippets are adapted from OpenAI's guide.)&lt;/p&gt;

&lt;h2&gt;
  
  
  A practical checklist
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;List every prompt you use.&lt;/strong&gt; Open the dashboard and write down each prompt object ID your code calls (search your repos for &lt;code&gt;pmpt_&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Copy the text out while you can still reach it.&lt;/strong&gt; I did not find a bulk export in OpenAI's migration guide, so this step is manual.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn variables into function arguments.&lt;/strong&gt; The &lt;code&gt;variables&lt;/code&gt; map becomes parameters of a function that builds your messages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep versions somewhere reviewable.&lt;/strong&gt; The dashboard gave you a &lt;code&gt;version&lt;/code&gt; field. In code, that is git history, or any tool that keeps versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test before you ship.&lt;/strong&gt; Moving text is not the same as moving behavior; run your normal checks against the new calls.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  A small helper (disclosure: I made it)
&lt;/h2&gt;

&lt;p&gt;I built a free page, &lt;a href="https://promptlikeengineer.com/migrate/openai" rel="noopener noreferrer"&gt;promptlikeengineer.com/migrate/openai&lt;/a&gt;, for the tedious part after you have copied the text. You paste each prompt, and it generates a TypeScript module and an import file. &lt;code&gt;{{name}}&lt;/code&gt; variables become typed string arguments. Your text stays in your browser: the page sends it nowhere. It does not fetch anything from OpenAI and it does not test the output, so check the generated code before you ship it.&lt;/p&gt;

&lt;p&gt;Whatever tool you use, the deadline is the same. If you have prompts only in the dashboard, copy them out now.&lt;/p&gt;

</description>
      <category>openai</category>
      <category>llm</category>
      <category>typescript</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
