
GoHighLevel AI Image Generation: Personalized Email Images
GoHighLevel AI image generation just moved into workflows, and it changes what a marketing email can do. Instead of every contact getting the same stock graphic, a workflow can now generate a unique image for each person on the fly, store it, and hand you the URL to drop into an email, an SMS, or a live chat message. The demo in the video is a latte with the contact's first name written in the foam. Every contact who runs through the workflow gets their own.
Until now, personalized images in emails meant paying for a third-party service and wiring it in from outside. The new AI Image Generation action does it natively inside your AlphaBlossom CRM or any standard HighLevel (GHL) account, using the same models you would reach for anywhere else, including GPT Image 2 and Google's Nano Banana family.
In this guide I will build the whole workflow from scratch, show you the prompt and the reference image setup, walk through how the generated image gets into the email as a custom value, cover what it costs as a premium action, and explain the one gotcha that stops the image from working in templates outside the workflow, along with the workaround that fixes it.
GoHighLevel AI Image Generation: Personalized Email Images
What Is the AI Image Generation Action in GoHighLevel?
How to Set Up a Workflow That Generates a Personalized Image
A Quick Word on Reference Images
How to Insert the Generated Image Into Your Email
Testing the Workflow and Checking the Result
Why the Image Will Not Work in Templates Outside the Workflow
The Update Contact Field Workaround
Watch "GoHighLevel Can Write Your Contact's Name Inside an Image (New AI Action)" on Youtube
What Is the AI Image Generation Action in GoHighLevel?
GoHighLevel AI image generation has been available in a few places in the platform for a while, but the new AI Image Generation action is the first time it runs as a workflow step. It takes a text prompt, optionally a reference image, and generates a picture using the AI model you choose. The finished image is saved to your Media Storage and the action returns the image as an Image URL variable that later steps in the same workflow can use.
At the time of recording you can choose from four models: GPT Image 2, Gemini 2.5 Flash Image (Nano Banana), Nano Banana 2, and Nano Banana Pro. They are all very good. The Nano Banana models are excellent, and these days my personal favorite for this kind of work is the GPT image model, so that is what I use in the video. The official announcement on the HighLevel changelog has the full model list and notes on how the image URL can be used.
Because the prompt can include contact fields, the image is different for every contact. That is the whole point. A first name, a city, a company name, anything on the contact record can be written into the picture itself.
How to Set Up a Workflow That Generates a Personalized Image
Start with a new workflow from scratch. In the video I call mine Custom Latte with Name Email.
Choose your trigger. Contact created, form submitted, tag added, whatever fits the campaign. For the demo I left it blank and tested manually.
Click the plus, type AI, and select AI Image Generation.
Pick your image model. I went with GPT Image 2.
Give the action a name, and give the image a name. I used Latte with First Name. The image name matters later, because it is how you find the image in the custom values picker.
Write your prompt. Mine was: Using the attached reference image, create a delicious looking cup of latte with {{contact.first_name}} inside a big heart on the latte surface. To insert the first name, click the tag icon and choose Contact First Name. You can pull in full name, email, city, or any other field, and you can combine them.
Add a reference image. Drag and drop was not cooperating for me, so I used the upload button. You can also pull from the Media Library or paste a URL.
Open Advanced Settings and set the size and format. For email I used landscape so the image fills the width. PNG is usually the largest file, and JPEG or WebP will be lighter. WebP is widely supported now.
Optionally apply a Design Kit or Brand Voice. Both influence the style of the output. I left them blank.
Click Enhance Prompt if you want the platform to rewrite your prompt into something richer. Mine came back as a close-up of a delicious latte with intricate latte art and a large heart shape, creamy and inviting with warm lighting. Much nicer than what I typed.
Save the action.
A Quick Word on Reference Images
Use images you have the right to use. The reference image in the video is a latte I photographed myself. If you feed the model a copyrighted image and the output comes back looking very close to something protected, you are taking on risk you do not need.
How to Insert the Generated Image Into Your Email
Before the email step, I add a Wait action of about 30 seconds. Image generation takes a moment, and I like to give it room so nothing arrives out of sync. You can also set a maximum window on the wait if you want to cap how long the workflow sits.
Then add a Send Email action. Set your from name and from email, write a subject (mine was Join Our Office Hours), and use Quick Compose for a simple message. Mine reads: Hey {{contact.first_name}}, look forward to seeing you at our next office hours. Tracking, tags, and preference categories all work as usual here.
Now the part that catches people. When you insert an image into the email, you will see a field for an image URL, but the custom value for your AI image will not appear in the picker yet. Here is the order that works:
Save the workflow first. The AI image custom values only show up after the action has been saved. You may need to refresh the page too.
Open Custom Values, scroll to AI Image Generation, and you will see a dropdown of every image generated in this workflow. Pick yours and choose Image URL.
Copy that custom value, insert an image into the email, and paste the custom value into the URL field.
Add alt text (I used cup latte), add a link if you want the image to be clickable, and leave width and height on auto for now.
Save the action.
One thing that will drive you a little crazy: the email preview shows a broken image with the alt text. There is no workaround for that today. It is just how the preview behaves when the URL is a custom value that has not resolved yet. The real send works fine, so set it aside and move on.
Testing the Workflow and Checking the Result
Give your email step a proper name, especially if the workflow has more than one email in it, then use Test Workflow, search for yourself as the contact, and run it. Wait out the 30 seconds and check your inbox.
In my test the email came through with a large latte image and my name written into the foam. The AI generated the name as part of the picture, not as an overlay. It is a strikingly personal touch for something that took a few minutes to set up, and it is the moment GoHighLevel AI image generation stops being a novelty and starts being a marketing tool.
The image arrived huge, because I left the dimensions on auto. Go back into the email, edit the image, and set a width and height so it sits nicely in the layout. That is a one-time fix.
Why the Image Will Not Work in Templates Outside the Workflow
This is the important limitation. If you build a real email template in the Smart Builder and paste the AI Image URL custom value into it, that template will work inside this workflow, because the value references the action that generated the image. It will not work if you use the same template for a broadcast or anywhere else outside the workflow, because the AI image custom values do not exist there.
The Update Contact Field Workaround
The fix is to store the generated image on the contact record so any template can reference it.
After the AI Image Generation step, add an Update Contact Field action.
Choose a custom field on the contact. I created one called Latte with First Name.
Set the value to the Image URL from the AI Image Generation custom values.
In your template, insert an image and set its URL to the contact custom field instead of the AI action value.
The template preview will still not show the image, because the preview is not tied to a real contact, but it will render on send. There is a nice side benefit here too. Once the image is saved to the contact, you can reuse it in future emails without generating it again, which means you are not paying the AI cost every time you message that person. The only downside is that it will be the exact same image each time, so if you want variety, generate fresh.
What GoHighLevel AI Image Generation Costs
This is a premium action. Each image you generate has a cost, typically a few cents depending on the model and quality you pick. That is nothing for a welcome email. It is not nothing if you send 10,000 emails and generate 10,000 images. As of this recording the Unlimited AI plan is around $150 a month, and I believe it covers image generation, but confirm that in your own account before you build something at scale. The Update Contact Field workaround above is also a cost control, because a saved image can be reused for free.
Where Personalized AI Images Make Sense
Email is the obvious one, and it is where I would start. The same Image URL works in SMS and live chat messages, so a text with a picture that has the recipient's name in it is a few clicks away. Any campaign where you want a contact to feel personally welcomed is a candidate: new lead follow-up, appointment confirmations, event invites, and re-engagement.
It stacks well with the rest of your automation too. If you are building out a proper nurture flow, GoHighLevel email sequences can carry the saved contact field image through every message in the series. And if you want the experience to continue after the click, make the landing page greet them by name as well using URL parameters. For the big picture on how these pieces fit together, start with The Ultimate Guide to HighLevel Automation.
This is the new AI in the platform, including Google's Nano Banana models and GPT Image 2, and it means you can create quality, personalized images throughout your account without leaving it. I am excited to see what comes next.
Related Links
Related Videos
Video Transcript
[0:00] Hey there! Welcome back to my YouTube channel. In this short video I got a really cool feature to show you that's just been added into our AlphaBlossom CRM. Or if you're a HighLevel user you're going to see it in your GHL account as well. And that is the ability to send out personalized images. Via your Emails SMS. Things like that. I'm going to show you how to do it for sure with emails today. And then you can just carry that over. If you want to send personalized SMS images. Or in the live chat things like that. It's a really cool feature. In the past you would have had to use a paid service, maybe like a Cloudinary or there's some other services like that.
[0:32] And I'm sure you've seen the emails where you get the email it's going to look just like what you see right here on the screen. Where you get the email and it shows your name on there. your name on there. And you're like how do they do that? Well HighLevel has added that recently. And we’re going to just show you how to do it. So let's just jump straight into it. Before we do. Make sure you subscribe to the channel. Like this video. And leave a comment. And I'll be happy to reply to every comment. So let's jump into it. And I'll see you on the other side. So we're just going to create a new workflow.
[1:06] Start from scratch. And I'm going to call it. "Custom Latte with Name Email" And then the trigger is going to be whatever you want it to be. It could be welcoming. You know if a new contact is added. Contact is created. I'm just going to leave it blank for this purpose. But whatever you're going to use to trigger this workflow, and then it's going to send an email that might be if somebody submits a new form, it might be if a new contact is created. You might have it go out. Based on tags added and things like that. So. But for the purpose of this, we don't need that because I'm just going to show you.
[1:38] I'm just going to test the workflow here. So we're going to come in here and I'm going to go click the plus. And then I'm going to type AI. And you can see down here we've got AI image generation. And so what this does is it's going to use AI to generate an image on the fly. And you can see the different image models that have been added. ChatGPT image 2.5 flare. Sunburst. Even image two. They're all very very good. The nano banana pros are also very good. But these days my favorite image generator is the ChatGPT image. So I'm just going to go sunburst. And then I'm going to say. Image generation. And I'm going to say "AI Image generation - Latte with First Name" So I'm just going to add my custom prompt.
[2:23] And it's just using the attached reference image. Create a delicious looking cup of latte with (contact first name) Inside a big heart as a latte surface art. So to get the contact first name tag. If you're not sure how to get that. You just click this little tag icon here and then you go Contact. First Name. It can be whatever you want. It can be full name. Email. City. So if you're targeting somebody in specific city, you can have their city on there. You can combine them. But in our case we just want to have the first name. And then I'm going to upload an image. I'm just going to drag this image here. So you can see the image I dragged is a latte that I made.
[3:00] You know, I was just like to remind people people have copyright image protection and things like that. So don't get yourself in trouble using images as you're not supposed to. Even with the AI. Maybe the likelihood is very, very close to something that’s protected out there. And you just don't want to risk yourself getting a lawsuit. So we've got the system upload here. So we uploaded that. You can also pull from the media library. Browse the media library. Or you can just enter a URL here to get to your reference image. But we just uploaded it here. You got some advanced settings here. What size you want. I'm going to go landscape. So since it's for my email I just wanted to fill the width of the email.
[3:34] And then what format. PNG is going to be the largest of the three here typically. It also depends on what's in the image. So I would go JPEG or WebP. WebP is probably going to be the lightest, but it's widely supported now. So I'm going to use a WebP. If you have design kit set up like you're branding and things like that. You can select that here and that will influence the style as well as your brand voice. I’m just going to leave those blank. And then one more thing we can do is you can come up here and enhance the prompt. So I'm going to do that. And just automatically improve my prompt. So now it says a close up of a delicious latte and a featuring intricate latte art on the surface with large heart shape.
[4:09] I want to read the whole thing to you, but it's just a much nicer prompt. The latte looks creamy and inviting with warm lighting, and so yeah, it's super nice. And then one more thing I should mention is this is a premium action. You know, anytime you have image generations. There’s cost to that. It's probably going to be a few cents to generate each image. So imagine you know keep that in mind. If you're sending 10,000 emails and you're generating an image for each one of those emails, those costs are going to add up. And if you're doing things like that, you probably want to be on the unlimited AI. I believe it covers image generation as of this recording.
[4:38] Just make sure of that. Because again, if you're sending a 10,000 emails and you're being charged to generate those images, there's some cost involved in So I believe if you have the unlimited AI package, probably going to be around $100-150 a month. And that lets you just generate unlimited AI throughout the platform with a few exceptions. Then that would more than pay for itself in those kind of cases if you're a heavy users. So I'm just going to save the action here. And the next thing we want to do is we're just going send an email. So I like to add a little weight step here. I'm going to say wait 30s. Just sometimes things don't seem to sync up exactly as they should.
[5:13] So we'll just say wait 30s. And if you want to do Advanced window you can. If you only want this to go out between certain times or whatever you can do that. And then next we're going to do we're going to send an email. So I'm going to scroll down here and send my email. And you can have your defaults here. From name email things like that. Subject is going to be Join our Office Hours. And then we're not going to do the preview header. I would recommend using that though. And then we're going to just do a quick compose. So I'm going to be “Hey” Let's go Custom Value. “Well look forward to seeing you at our next office hours”.
[5:53] Now this is if you're going to use the simple quick compose here. And I'll show you something that's a really important. Let's just come in here and say “Thank you Tony”. You can use a custom values through here. I've got a lot of videos on that. Also while I'm here I'm going track these UTM tracking. If you want to add a tag based on different actions people do, you can do that here. And if you have preferences for unsubscribing and things adding this to different categories. If you've already got those set up, they'll show here. If they're not set up, they won't show. So to add the image, what we're going to do is we're going to just before I select Add Image.
[6:25] You can see I have the option to add a URL here. But there's no way for me to grab custom values here. So before I do that, I need to know what my custom value is for this AI image. I'm going to come here to custom values. I'm going to scroll down to. Actually I need to save this first in order for this to show. So let me save this action. Let's the workflow is showed. So now I can come back in here. And it should. I may have to refresh the page also. But let's see if it shows here. Yeah there we go. So. yeah you do have to save it after you add this.
[6:56] So now we're going to select AI Image Generation. And it's going to give us a dropdown of which image. If you have more than one image then you can select those here. And that's going to be only what's in this workflow here. So let's just grab that. We're going to go with the image URL. And so now you can see I've got that URL here. I'm going to copy that. I'm going to delete it. And now I'm going to insert my image. And I'm going to add my image URL here. And then I'm going to say “Cup of Latte”. For the alt text. You want to add that. if you want any links, if somebody clicks on the image you can add that here.
[7:28] And we're just going to leave the width and height as auto. And so yeah, you just add the URL here we'll save that. And we'll save this action here. Now one thing that drives me a little crazy is you can see in the preview it shows a broken image. With the alt tag. Really not a great workaround for that. That's just how it is. So if it drives you crazy like it does with me. You'll just have to put that aside. It'd be nice if they had like a little placeholder or some way to better visualize that here. But let's just save that. And then now we're going to come up here. And I'm going to test this workflow.
[7:57] I would name this also. Of course, you know, what's your email. Give it a better name. Especially if you have more than one email on here. But I'm going to test the workflow. I'm going to search for my self here. And then run the test. And I have a 30s wait step here. So it's going to take a little bit of time for this to come through. Again you can test it without it. I usually like to add these here. For things like this. Just to make sure everything syncs up. And I'm not missing any actions. So let's go check my email. Okay. So you can see the email came through during our office hours.
[8:26] And now if we come in here and click on the email. You see I've got this huge picture and it's got my name written on there. So the AI has actually generated my name as part of the image. A really cool way to personalize your emails. Now this is not formatted very nicely. So you may want to format a different or reduce the size of the image in the setting. So if you come back. Into your workflow. And you want to edit your image here. You can set width and a height on there. So that it won't be so huge. So you can definitely do that. The other thing you can do is if you wanted to, let's just copy this.
[9:08] Here. Now If you wanted to you can use a smart builder. Or you could select an existing template. So the Smart Builder will let you create your own template here. And build it how you want. Now one thing about this that's very important is if you add the image here. And if you're creating this as a real template and you add your image URL here. It’s going to work inside of the workflow. Because it's referencing the AI. But it's not going to work if you're just using this as a standard template to send broadcast. I don't think it's going to work because the AI images are not showing up here as a custom value. So I don't think that's going to work if you do it that way outside of a workflow.
[9:48] So that's very important to note. The one workaround you could do for that is. When you get your image generated you could save it to a custom value. So update contact field. And then if you have a contact field. Let's say Latte With First Name. And then you could. Update the image generation URL there. So what that's going to do. Let's just save that. Update contact field. Which is AI Latte. Whatever the name of the contact field you put there. Latte with the first name. Let's just update that. “Latte With First Name”. So now if you do that. When the image is generated it's going to update the contact field. And then if you're inside of here.
[10:41] Inside of your smart builder. Now you can add your image here. And then for the URL you can actually use your custom fields now. So custom field. And it's going to be latte. So it's not going to show there because it's not associated with the contact yet. But if you're going to be sending these using a template outside of a workflow. You could possibly do this. This is kind of just safety measure. So if you're creating a template somewhere else. But if it's being sent through this workflow, then it should be no problem. And you should be good to go. But doing it the way I just showed you would allow you to use a workflow to create that AI image.
[11:30] And then it's saved to the contact permanently. So you could always reference that without having to use AI over and over again. So if you want to use the exact same image you can just do that over and over again. Instead of having to pay every time you send out an email to the person. So the only downside is it will be the exact same image. So if you want to change your images up then that's not going to work. But I thought I'd give you another alternative here. For some of you here that might be a great use case. So all right well that's it. This is the new AI. Including Google Nano banana.
[11:57] ChatGPT images 2.5. Really amazing. Now we can create quality images throughout the platform and just excited to see what's coming next. So there you have it. So that is an awesome way to personalize your emails or your other messages and be able to send those to contacts. So really cool that you can do that. And I look forward to seeing you guys in the next one. If you're new to HighLevel I've got a free community down below. You can join. Where I am happy to help support people. I share all kinds of tips and things with HighLevel. I also have a free 30 day trial to HighLevel down below. You get a free 30 day account with HighLevel.
[12:34] And also a free onboarding bootcamp. So that's it for now. Make sure to subscribe to the channel if you're not already. Like this video. Leave a comment. And I will see you in the next one.
