{"id":31502,"date":"2023-05-10T15:45:03","date_gmt":"2023-05-10T22:45:03","guid":{"rendered":"https:\/\/salesforcedevops.net\/?p=31502"},"modified":"2023-05-10T15:53:03","modified_gmt":"2023-05-10T22:53:03","slug":"how-to-use-chatgpt-for-salesforce-generative-coding","status":"publish","type":"post","link":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/","title":{"rendered":"How To Use ChatGPT for Salesforce Generative Coding"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">In this how-to article, I aim to first clarify what Generative Coding entails. Then I will explain OpenAI and ChatGPT, how to sign up, and how to keep your data private. Next, I will take you through my technique for using ChatGPT to accomplish repetitive Apex development. I will also share my prompts used to generate unit tests, perform Salesforce devops market research, generate test classes, and generate devops glue code. By the end of this article, you should be able to use these techniques to refactor, generate tests, and extend your current org more efficiently than ever.<\/p>\n\n\n\n<div class=\"wp-block-yoast-seo-table-of-contents yoast-table-of-contents\"><h2>Table of Contents<\/h2><ul><li><a href=\"#h-what-is-generative-coding\" data-level=\"2\">What is Generative Coding?<\/a><\/li><li><a href=\"#h-who-is-openai-and-what-is-chatgpt\" data-level=\"2\">Who is OpenAI and What is ChatGPT?<\/a><\/li><li><a href=\"#h-how-to-sign-up-for-chatgpt-and-openai-platform\" data-level=\"2\">How to Sign Up for ChatGPT and OpenAI Platform<\/a><\/li><li><a href=\"#h-generating-salesforce-apex-classes\" data-level=\"2\">Generating Salesforce Apex Classes<\/a><ul><li><a href=\"#h-chatgpt-4-solution\" data-level=\"3\">ChatGPT-4 Solution<\/a><\/li><li><a href=\"#h-engineering-analysis\" data-level=\"3\">Engineering Analysis<\/a><\/li><li><a href=\"#h-tip-give-it-time\" data-level=\"3\">Tip: Give It Time<\/a><\/li><\/ul><\/li><li><a href=\"#h-salesforce-devops-market-research\" data-level=\"2\">Salesforce Devops Market Research<\/a><ul><li><a href=\"#h-beware-of-unreproducible-results-and-hallucinations\" data-level=\"3\">Beware of Unreproducible Results and Hallucinations<\/a><\/li><\/ul><\/li><li><a href=\"#h-two-more-examples\" data-level=\"2\">Two More Examples<\/a><ul><li><a href=\"#h-glue-code-github-actions-plus-jira\" data-level=\"3\">Glue Code \u2013 GitHub Actions plus Jira<\/a><\/li><li><a href=\"#h-unit-test-class-generation\" data-level=\"3\">Unit Test Class Generation<\/a><\/li><\/ul><\/li><li><a href=\"#h-thank-you-provar\" data-level=\"2\">Thank You Provar<\/a><\/li><li><a href=\"#h-generative-coding-takes-off\" data-level=\"2\">Generative Coding Takes Off<\/a><\/li><\/ul><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-generative-coding\">What is Generative Coding?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For me, Generative Coding is the practice of using an AI to assist in any kind of software development project. The size of the organization doesn\u2019t matter, if you\u2019re using ChatGPT or GitHub Copilot to check your code, explain it, or create new code based on English descriptions, then you are using Generative Coding.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The significance of this term lies in the imminent proliferation of Generative Coding offerings and systems. All these systems will be based on OpenAI or other AI technology company offerings, but they will have specialized interfaces designed for coders and architects.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this post, we\u2019ll be using ChatGPT-4 as it currently exists, but I expect there soon to be official plugins and other systems to bring the ChatGPT-4 experience into VS Code. Plus, we are expecting <a href=\"https:\/\/github.com\/features\/preview\/copilot-x\">GitHub Copilot X<\/a> to work more like the conversational experience I\u2019ll be showing here. And, we have yet to see any form of engineering collaboration work here. Perhaps, ChatGPT for Slack will let teams have a conversation with an AI instead of individuals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In essence, Generative Coding represents an important product category that every engineering manager should explore in the coming months. Our profession is about to be shaken in substantial and unpredictable ways, so please don\u2019t get blindsided by putting your head in the sand.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-who-is-openai-and-what-is-chatgpt\">Who is OpenAI and What is ChatGPT?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/openai.com\/\">OpenAI<\/a> is the leading developer and vendor of a new technology platform known as a large language model (LLM). In recent years, the company has grown so much it appears to on its way to joining Google, Netflix, Facebook, Salesforce, and Oracle as a Silicon Valley titan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An LLM is a type of artificial intelligence that can understand and generate human-like text based on a vast amount of data. These models are designed to learn patterns and relationships in language, enabling an LLM to create coherent and contextually relevant content. OpenAI has published papers demonstrating that GPT-3, a 175 billion parameter LLM, can perform tasks across various domains, languages, and modalities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But there is something different about ChatGPT-4, whose parameter size has been estimated at nearly one trillion. It is so powerful that GPT-4 may have made prior efforts at building vertical-industry AI systems obsolete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is because high-parameter LLMs possess emergent properties that surpass those of vertical LLMs, enabling them to excel in a broader range of tasks and applications. Their increased capacity to learn and adapt allows them to understand and generate content across multiple computer languages. This adaptability makes high-parameter LLMs more versatile and powerful, as they can provide more accurate results and facilitate seamless collaboration between different programming languages and platforms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-to-sign-up-for-chatgpt-and-openai-platform\">How to Sign Up for ChatGPT and OpenAI Platform<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">That\u2019s a lot of power. Fortunately, it\u2019s easy to enlist ChatGPT-4 as your new Salesforce software engineering consultant. All you need to do is <a href=\"https:\/\/chat.openai.com\/\">sign up<\/a>, and then optionally upgrade your account to use ChatGPT-4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First, a quick note about data privacy and ChatGPT-4. By default, ChatGPT-4 will save your conversations in a permanent thread, and that thread may be reviewed by OpenAI or ingested into the model. I find the saved thread feature particularly useful as it retains conversations across various topics. But I can see how the way OpenAI treats most user data will make compliance officers freak out.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenAI says they are introducing a Business account with better data safety, and no data from the API will be used for training. In the meantime, you have several options to maintain privacy. For instance, you have the option to navigate to the settings in ChatGPT and choose not to save your conversations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Another option is to use the OpenAI API by using the <a href=\"https:\/\/platform.openai.com\/playground?mode=chat\">OpenAI API Playground<\/a> to do chats. There are some additional advantages of using the Playground, such as specifying System message and adjusting your parameters. I imagine some organizations could put together simple front ends to OpenAI API to regulate usage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-generating-salesforce-apex-classes\">Generating Salesforce Apex Classes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let&#8217;s delve into my experience with OpenAI and a new Salesforce org that I have developed. I have been developing a new content and knowledge management system for my subscribers and clients. In this project, I use a Salesforce org as my source-of-truth. I also keep an ephemeral MySQL database to support a Next.js website built in TypeScript and React. To implement the project there are about 30 custom objects. I\u2019m sure I made this thing way too complicated!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When I add a new object in this architecture, I need several new Apex classes to implement CRUD functions for a custom Salesforce REST API. So, in this How-To I will show you how I consistently create new implementations of the following types of Apex classes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Service Class Wrapper<\/li>\n\n\n\n<li>Trigger Handler Class and Trigger<\/li>\n\n\n\n<li>Static Service Functions<\/li>\n\n\n\n<li>Response Wrapper Class<\/li>\n\n\n\n<li>REST Handers<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-chatgpt-4-solution\">ChatGPT-4 Solution<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When working with ChatGPT-4 I find it helpful to keep track of my prompts and GPT responses in a Markdown file stored in a shared file repository. Why Markdown? It seemed natural to me because GPT-4 generates responses in Markdown, and you can request it reprint output \u201cin escaped markdown in a code window\u201d. This makes saving tables and other specialized Markdown output a lot easier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Also, GPT-4 has a limited memory. It can only keep about 2,000 \u201ctokens\u201d in its active memory, so sometimes you need to re-enter your prompt. Even if you don\u2019t want to use VS Code and Markdown, use Google Keep or something to keep track of your prompts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I&#8217;m certain that some of you might consider that I could have accomplished all of this simply by copy-pasting and then performing a Search\/Replace in my existing file. But I like AI cloning significantly more because ChatGPT-4 automatically handles the different uses of plurals, and special English cases like adding an \u201cs\u201d to a name that ends in \u201cy\u201d. Plus, as I show in the script, you can paste in object metadata to customize the output with new custom fields.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here is the Markdown script I generated for replicating the needed classes.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/2e340ca2f6f2c5e72f42c788db36f0cf.js\"><\/script>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-engineering-analysis\">Engineering Analysis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Having a code workhorse at your disposal is one thing, but possessing a software engineering consultant who comprehends all the available literature on computer science and has analyzed millions of practical applications is a completely different matter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s the part the blew me away. After I had finished using all these prompts to construct all the Apex classes needed for a new REST endpoint, I wondered how good a developer I was in its eyes. So, I asked ChatGPT-4 this:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Analyze available literature for patterns used by Apex developers. See if you can classify the patterns we&#8217;ve been using with any of those patterns. Suggest ways to use a better strategy based on your literature research.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">I won\u2019t reprint the result here (check the GPT conversation above), but it gave me back six Salesforce architectural techniques I could use to make my code better. One of them was to create a Selector Layer to concentrate all the SOQL into one class. So, I asked ChatGPT-4 to \u201crefactor available code to implement a Selector Layer for the ResearchProject object.\u201d And, of course, it spit out a new Selector class and then rewrote the Data Access Object and Service Layer classes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This kind of advisory service seems like it would be invaluable for engineering managers and Salesforce devops practitioners. You now have an on-demand software engineering consultant who is merging knowledge from all fields of engineering to service your problem-solving needs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tip-give-it-time\">Tip: Give It Time<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Before moving on to the next example, look again at that last prompt. I\u2019ve got three separate actions in there, and they are related. OpenAI calls this technique \u201cgiving it time,\u201d which means that you have encouraged the AI to think about the problem in pieces. I understand this translates into making the OpenAI cloud service consume more resources to respond to those prompts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-salesforce-devops-market-research\">Salesforce Devops Market Research<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Besides generative coding, ChatGPT comes in handy for market research. Your prompt wording and making the system take its time counts here too. In this case I asked ChatGPT-4 the following:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>System:<\/strong> You are a market researcher in Salesforce devops.<br><strong>User:<\/strong> I am a technical manager who is searching for a testing solution. Analyze the primary factors used to make this selection and summarize the choices in a table with the top 5 competitors by factors.<\/p>\n<\/blockquote>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/34e40fc67ec161ccb6b713044dad9a34.js\"><\/script>\n\n\n\n<p class=\"wp-block-paragraph\">This example shows how you can use a System prompt to restrict the AI\u2019s scope of a search, or to have certain analytical characteristics. You can start your prompt in ChatGPT-4 with a system prompt, or you can do it explicitly in the OpenAPI Platform Playground.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-beware-of-unreproducible-results-and-hallucinations\">Beware of Unreproducible Results and Hallucinations<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ChatGPT is an amazing way to get started on a research project, but I have found some significant limitations. Take the example I used here. I have been using the same prompt over time, or even multiple times on the same day, and the answers have changed. And not always for the better. Sometimes it will put a company into competition, and they don\u2019t do Salesforce testing at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two problems are coming to light here. First, the OpenAI crawl of the Internet for ChatGPT ceased back in 2021, so ChatGPT does not have the latest information from the Internet. And LLMs feel compelled to create answers, so sometimes it will fabricate a response that sounds good. AI researchers refer to this activity as AI hallucinations. Yes, that is as bad as it sounds so it\u2019s always best to check results from LLMs for the time being.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-two-more-examples\">Two More Examples<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">It seems like I could write a whole book on this stuff! Well, for now let\u2019s get this post over with. I\u2019ll quickly describe two other examples I have ready to share.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-glue-code-github-actions-plus-jira\">Glue Code \u2013 GitHub Actions plus Jira<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Given the wide training and knowledge of scripting and open-source packages, ChatGPT is excellent at generating system integration solutions. This comes up frequently in constructing devops pipelines.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In this example I ask ChatGPT-4 to create an integration between GitHub Actions and a Jira instance. It started out with a Python solution, and then I guided it to make a Node\/TypeScript version. It\u2019s quite fascinating how proactive it is in its responses.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/f4113543817a3a5f96c317e4e6700d69.js\"><\/script>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-unit-test-class-generation\">Unit Test Class Generation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">This is an extensive recording of a session where I get ChatGPT to generate test factory classes for me. I go round about where I ask it to do some research on the best unit testing patterns, and then we start making factories.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">About halfway through this example, I paste in field names to generate a new class, like I did in the first example. In the first example I used Custom Field XML files I downloaded using sfdx force:source:retrieve. In this example I make that even easier by just copying and pasting in the Fields page from Object setup.<\/p>\n\n\n\n<script src=\"https:\/\/gist.github.com\/vkeenan\/9a3dddbdb9030bcbbd0b0d093a7b1ad2.js\"><\/script>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-thank-you-provar\">Thank You Provar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before finishing up this post, I wanted to thank <a href=\"https:\/\/provartesting.com\/\">Provar<\/a> for putting together a wonderful webinar today where <a href=\"https:\/\/www.linkedin.com\/in\/richclark808\/\">Richard Clark<\/a>, <a href=\"https:\/\/www.linkedin.com\/in\/samuelarroyo\/\">Sam Arroyo<\/a>, and I did an hour-long extravaganza on Generative Code. I understand the webinar was well attended. I expect companies like Provar to get a significant boost with OpenAI integration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-generative-coding-takes-off\">Generative Coding Takes Off<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The advent of Generative Coding and AI tools like ChatGPT-4 is transforming the landscape of software development. The ability to generate code, advise on best practices, conduct in-depth research, and even interact with other software ecosystems demonstrate the immense potential of AI in numerous fields.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, it&#8217;s essential to remember that the use of AI also brings with it certain limitations, including outdated data and the potential for inaccurate or fabricated results. Therefore, while harnessing the power of AI can lead to increased productivity and new insights, it&#8217;s crucial to cross-check the results and ensure data privacy. As we progress, the key lies in striking a balance between leveraging AI&#8217;s strengths and mitigating its limitations.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There will be lots of fun over the next year or so. I\u2019ll be watching this Cambrian Explosion of new software carefully, so be sure to stay in touch!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this how-to article, I aim to first clarify what Generative Coding entails. Then I will explain OpenAI and ChatGPT, how to sign up, and how to keep your data&hellip;<\/p>\n","protected":false},"author":1,"featured_media":31507,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","footnotes":""},"categories":[7],"tags":[1444,319,52],"post_series":[],"class_list":["post-31502","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to","tag-generative-coding","tag-provar","tag-salesforce-devops","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.2 (Yoast SEO v22.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net\" \/>\n<meta property=\"og:description\" content=\"In this how-to article, I aim to first clarify what Generative Coding entails. Then I will explain OpenAI and ChatGPT, how to sign up, and how to keep your data&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\" \/>\n<meta property=\"og:site_name\" content=\"SalesforceDevops.net\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/salesforcedevopsnet\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-10T22:45:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-10T22:53:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Vernon Keenan\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:site\" content=\"@salesforcedevop\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Vernon Keenan\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\"},\"author\":{\"name\":\"Vernon Keenan\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/ac094823465a60be4f47d7321ed7ce04\"},\"headline\":\"How To Use ChatGPT for Salesforce Generative Coding\",\"datePublished\":\"2023-05-10T22:45:03+00:00\",\"dateModified\":\"2023-05-10T22:53:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\"},\"wordCount\":2210,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/#organization\"},\"image\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png\",\"keywords\":[\"Generative Coding\",\"Provar\",\"Salesforce Devops\"],\"articleSection\":[\"How To\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#respond\"]}],\"copyrightYear\":\"2023\",\"copyrightHolder\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/#organization\"},\"accessibilityFeature\":[\"tableOfContents\"]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\",\"url\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\",\"name\":\"How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net\",\"isPartOf\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png\",\"datePublished\":\"2023-05-10T22:45:03+00:00\",\"dateModified\":\"2023-05-10T22:53:03+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage\",\"url\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png\",\"contentUrl\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png\",\"width\":1200,\"height\":675,\"caption\":\"How To Use ChatGPT for Salesforce Generative Coding\"},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#website\",\"url\":\"https:\/\/cms.salesforcedevops.net\/\",\"name\":\"SalesforceDevops.net\",\"description\":\"Elevating Salesforce Devops with Insights and Innovation\",\"publisher\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cms.salesforcedevops.net\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#organization\",\"name\":\"SalesforceDevops.net\",\"url\":\"https:\/\/cms.salesforcedevops.net\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/origin.salesforcedevops.net\/wp-content\/uploads\/2021\/04\/logo-horiz-325.jpg\",\"contentUrl\":\"https:\/\/origin.salesforcedevops.net\/wp-content\/uploads\/2021\/04\/logo-horiz-325.jpg\",\"width\":325,\"height\":101,\"caption\":\"SalesforceDevops.net\"},\"image\":{\"@id\":\"https:\/\/cms.salesforcedevops.net\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/salesforcedevopsnet\",\"https:\/\/twitter.com\/salesforcedevop\",\"https:\/\/www.linkedin.com\/in\/vernonkeenan\",\"https:\/\/www.youtube.com\/channel\/UCOgOn9rD5gyXSOmV7-Q0n7g\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/ac094823465a60be4f47d7321ed7ce04\",\"name\":\"Vernon Keenan\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/wphb-cache\/gravatar\/09b\/09bd30f3ca2e049fbd8b9313ef5a41aex96.jpg\",\"contentUrl\":\"https:\/\/cms.salesforcedevops.net\/wp-content\/wphb-cache\/gravatar\/09b\/09bd30f3ca2e049fbd8b9313ef5a41aex96.jpg\",\"caption\":\"Vernon Keenan\"},\"description\":\"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.\",\"sameAs\":[\"https:\/\/ceres-gw.tnxs.net\",\"https:\/\/linkedin.com\/in\/vernonkeenan\",\"https:\/\/twitter.com\/salesforcedevop\"],\"url\":\"https:\/\/cms.salesforcedevops.net\/index.php\/author\/vern\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/","og_locale":"en_US","og_type":"article","og_title":"How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net","og_description":"In this how-to article, I aim to first clarify what Generative Coding entails. Then I will explain OpenAI and ChatGPT, how to sign up, and how to keep your data&hellip;","og_url":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/","og_site_name":"SalesforceDevops.net","article_publisher":"https:\/\/www.facebook.com\/salesforcedevopsnet","article_published_time":"2023-05-10T22:45:03+00:00","article_modified_time":"2023-05-10T22:53:03+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png","type":"image\/png"}],"author":"Vernon Keenan","twitter_card":"summary_large_image","twitter_creator":"@salesforcedevop","twitter_site":"@salesforcedevop","twitter_misc":{"Written by":"Vernon Keenan","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#article","isPartOf":{"@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/"},"author":{"name":"Vernon Keenan","@id":"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/ac094823465a60be4f47d7321ed7ce04"},"headline":"How To Use ChatGPT for Salesforce Generative Coding","datePublished":"2023-05-10T22:45:03+00:00","dateModified":"2023-05-10T22:53:03+00:00","mainEntityOfPage":{"@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/"},"wordCount":2210,"commentCount":4,"publisher":{"@id":"https:\/\/cms.salesforcedevops.net\/#organization"},"image":{"@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage"},"thumbnailUrl":"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png","keywords":["Generative Coding","Provar","Salesforce Devops"],"articleSection":["How To"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#respond"]}],"copyrightYear":"2023","copyrightHolder":{"@id":"https:\/\/cms.salesforcedevops.net\/#organization"},"accessibilityFeature":["tableOfContents"]},{"@type":"WebPage","@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/","url":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/","name":"How To Use ChatGPT for Salesforce Generative Coding - SalesforceDevops.net","isPartOf":{"@id":"https:\/\/cms.salesforcedevops.net\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage"},"image":{"@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage"},"thumbnailUrl":"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png","datePublished":"2023-05-10T22:45:03+00:00","dateModified":"2023-05-10T22:53:03+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cms.salesforcedevops.net\/index.php\/2023\/05\/10\/how-to-use-chatgpt-for-salesforce-generative-coding\/#primaryimage","url":"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png","contentUrl":"https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png","width":1200,"height":675,"caption":"How To Use ChatGPT for Salesforce Generative Coding"},{"@type":"WebSite","@id":"https:\/\/cms.salesforcedevops.net\/#website","url":"https:\/\/cms.salesforcedevops.net\/","name":"SalesforceDevops.net","description":"Elevating Salesforce Devops with Insights and Innovation","publisher":{"@id":"https:\/\/cms.salesforcedevops.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cms.salesforcedevops.net\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cms.salesforcedevops.net\/#organization","name":"SalesforceDevops.net","url":"https:\/\/cms.salesforcedevops.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cms.salesforcedevops.net\/#\/schema\/logo\/image\/","url":"https:\/\/origin.salesforcedevops.net\/wp-content\/uploads\/2021\/04\/logo-horiz-325.jpg","contentUrl":"https:\/\/origin.salesforcedevops.net\/wp-content\/uploads\/2021\/04\/logo-horiz-325.jpg","width":325,"height":101,"caption":"SalesforceDevops.net"},"image":{"@id":"https:\/\/cms.salesforcedevops.net\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/salesforcedevopsnet","https:\/\/twitter.com\/salesforcedevop","https:\/\/www.linkedin.com\/in\/vernonkeenan","https:\/\/www.youtube.com\/channel\/UCOgOn9rD5gyXSOmV7-Q0n7g"]},{"@type":"Person","@id":"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/ac094823465a60be4f47d7321ed7ce04","name":"Vernon Keenan","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cms.salesforcedevops.net\/#\/schema\/person\/image\/","url":"https:\/\/cms.salesforcedevops.net\/wp-content\/wphb-cache\/gravatar\/09b\/09bd30f3ca2e049fbd8b9313ef5a41aex96.jpg","contentUrl":"https:\/\/cms.salesforcedevops.net\/wp-content\/wphb-cache\/gravatar\/09b\/09bd30f3ca2e049fbd8b9313ef5a41aex96.jpg","caption":"Vernon Keenan"},"description":"Vernon Keenan (LinkedIn) works as a senior information technology industry consultant based in Oakland, California. He earned his B.Sc. in Biomedical Engineering at Northwestern University where he programmed a PDP-8 with punched paper tape. In his 34-year-long career he has been a teacher, SPSS programmer, database administrator, clinical researcher, technology journalist, product marketing manager, market researcher, management consultant, and industry analyst. Most recently he is a telecom operator, cloud architect, Go devops engineer and Salesforce Developer\/Architect. For inquiries about Salesforce strategy briefings or solution architect work please contact Vern directly at +1-510-679-1900 or vern@vernonkeenan.com.","sameAs":["https:\/\/ceres-gw.tnxs.net","https:\/\/linkedin.com\/in\/vernonkeenan","https:\/\/twitter.com\/salesforcedevop"],"url":"https:\/\/cms.salesforcedevops.net\/index.php\/author\/vern\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false],"thumbnail":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-150x150.png",150,150,true],"medium":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-300x169.png",300,169,true],"medium_large":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-768x432.png",768,432,true],"large":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-1024x576.png",980,551,true],"1536x1536":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-1536x864.png",1536,864,true],"2048x2048":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false],"lightbox":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false],"search_results":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76-125x125.png",125,125,true],"blog_entry":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",750,422,false],"blog_post":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",750,422,false],"blog_post_full":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false],"blog_related":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false],"gallery":["https:\/\/cms.salesforcedevops.net\/wp-content\/uploads\/2023\/05\/presentation_slide_16_91920x1080-rid_a7b91d95-c34e-44ec-97ca-dbbb063bbe76.png",1200,675,false]},"uagb_author_info":{"display_name":"Vernon Keenan","author_link":"https:\/\/cms.salesforcedevops.net\/index.php\/author\/vern\/"},"uagb_comment_info":4,"uagb_excerpt":"In this how-to article, I aim to first clarify what Generative Coding entails. Then I will explain OpenAI and ChatGPT, how to sign up, and how to keep your data&hellip;","_links":{"self":[{"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/31502","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/comments?post=31502"}],"version-history":[{"count":5,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/31502\/revisions"}],"predecessor-version":[{"id":31510,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/posts\/31502\/revisions\/31510"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media\/31507"}],"wp:attachment":[{"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/media?parent=31502"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/categories?post=31502"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/tags?post=31502"},{"taxonomy":"post_series","embeddable":true,"href":"https:\/\/cms.salesforcedevops.net\/index.php\/wp-json\/wp\/v2\/post_series?post=31502"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}