The AI composer popup
There is one AI dialog on Onflow Ads, and it opens from the post composer on all three engines. It holds every AI writing mode at once β write from scratch, improve what you have, or make an image β and shows your remaining allowance while you work. Whatever you produce in it waits in a preview: nothing reaches your post until you press Apply to my post.
One dialog, three doorsβ
The button that opens it, the heading it wears and the tabs it offers are the only things that change from engine to engine, because each engine hands the dialog the endpoints it actually has.
| Where | The button | The dialog is headed | Tabs |
|---|---|---|---|
| Paid Promotions β Book a placement | Draft with AI | Draft your ad post | Generate, Image |
| Cross-Promotion β a campaign | Write with AI | Draft your cross-promotion post | Generate, Refine, Image |
| Subscriber Exchange β ad builder | Write my ad with AI | Draft your exchange ad | Generate, Image |
The button sits inside the composer panel itself, under a field headed Write it with AI with the note Describe the ad and let Onflow draft it. You can edit anything it writes.
Everything below β the fields, the meters, the footer buttons, the lock panel, the messages β is identical on all three. The walkthrough uses a cross-promotion because it is the only one with all three tabs.
Before you startβ
- A composer open. The dialog is part of the post composer, so you reach it from whatever you are writing: a booking, a campaign, or an exchange ad.
- For Paid Promotions: a listing loaded. The button is not drawn at all until you have opened the booking page from a real channel, because the draft is written against that channel's rules.
- For Cross-Promotion: a campaign with a partner. The composer only appears once someone has joined your code, because the draft is written to run in their channel to their audience.
- For the Image tab on a cross-promotion: a campaign created on the website. A campaign started in Telegram answers This campaign is managed in Telegram. when you try to generate an image for it.
- For the Image tab: Master or Ultimate. Every other tab works on every plan, including Free.
Step by stepβ
- Open the composer β here, Cross-Promotion β My campaigns, a confirmed campaign, Posts & delivery, then the Your cross-promotion post block.
- Press Write with AI. A dialog opens titled Draft your cross-promotion post, with a Close button. It first reads your plan and shows Checking what your plan includesβ¦
- Pick a tab β Generate, Refine or Image. The tab strip only shows the tabs this engine offers, and the Image tab shows a lock panel below Master.
- Fill in the one field the tab asks for, then press Generate (or Generate image). The status line reads Writing⦠or Creating your image⦠while it runs.
- Read the result in the Preview block. The status line changes to Have a look. Nothing changes until you apply it. Your post is still untouched.
- Press Regenerate for a different attempt, or Apply to my post to accept it. Applying closes the dialog and drops the result into the composer. There is no confirmation message β the post box and the live preview simply now hold it.
- Edit the draft, then save it the way that engine saves: Save post on a cross-promotion, Continue through the exchange builder, Add to cart on a booking. The AI result is not stored until you do.
Apply to my post puts the draft into the editor and nothing more β for text and for an image alike. If you navigate away without saving the post, both are lost. Regenerating also costs a fresh action, so save a draft you like before experimenting.
The three tabsβ
| Tab | The field it asks for | Length limit | What it is for |
|---|---|---|---|
| Generate | What should the post say? β a textarea, placeholder e.g. invite people to a daily book-recommendations channel | 600 characters typed; how many reach the model depends on the engine β 300 on a cross-promotion, 400 on the other two | A brand-new post, written for whoever will be reading it |
| Refine | Copy to improve, pre-filled with what is in your post, plus an optional How should it change? line | 2,000 and 300 characters | Tightening, fixing grammar, sharpening a hook you already wrote. Cross-Promotion only |
| Image | Describe the image β a textarea, placeholder e.g. a warm flat-lay of open books on a desk, soft morning light | 400 characters | An original promo graphic for this post |
The Generate tab is headed What should the post say? and carries the book-recommendations placeholder on every engine, including a Paid Promotions booking. It is one dialog, and its wording is written once.
The brief is a steer, not the whole input, and what is added to it depends on which engine opened the dialog:
- Cross-Promotion sends both channels' own facts β your title, handle, description and subscriber count, and the same for your partner β and asks for the post that promotes your channel to their audience. The brief is optional here; an empty one still produces something usable.
- Paid Promotions sends the listing's stated rules: whether links are allowed, whether the owner asks posts to be marked as sponsored, and the prohibited-topics list.
- The Subscriber Exchange sends nothing but your brief. The topic you picked for the ad is not passed through the dialog, so name your subject in the brief itself.
Reading the metersβ
A meter strip sits under the fields. It is drawn from your live allowance, and it updates after every generation.
| What you see | What it means |
|---|---|
| Text today with a bar and N left | Text actions remaining right now. This is the smaller of your daily and monthly headroom, so it can read 0 left even on a fresh day if the month is spent |
| Images this month with a bar and N left | Image allowance remaining. Shown only when your plan actually allows images |
| The word unlimited instead of a bar | An account the team has flagged for testing. Not a bug |
| No image meter at all | Your plan grants no AI images, so there is nothing to count |
The footer buttonsβ
| Button | When it appears | What it does |
|---|---|---|
| Cancel | Always | Closes the dialog. Nothing is applied |
| Generate / Generate image | Always, unless the Image tab is locked | Runs the tab, spending one action |
| Regenerate | Only after a result | Runs again from the same field, spending another action |
| Apply to my post | Only after a result | Writes the result into the composer and closes the dialog |
| β¬ Download image | Only after an image result | Saves a copy to your device. The hint under it says Saves a copy to this device. Applying it to the post does not depend on downloading. |
Pressing Escape, clicking the backdrop, or pressing Close closes the dialog without applying anything.
The Image tab below Masterβ
On Free, Referral Premium, Lite, Plus and Elite the Image tab renders a lock panel instead of a prompt field, reading:
AI images unlock on Master.
with a See plans button that takes you to the pricing page. No generate button is drawn at all, so there is nothing to press and nothing to spend. See Generating ad images.
The lock panel is drawn whenever images are unavailable to you right now β which includes a Master or Ultimate account whose reliability has dropped below Fair (5.0), or one with an open review. The wording still names Master, so check your reliability score before concluding your plan is wrong. See AI quotas and limits.
What the composer writesβ
Text results come back in Telegram's own formatting subset β bold, italic and links, and nothing else β and the preview renders them rather than showing you raw tags. Every link in the output has had its address checked, and anything that is not an ordinary web, Telegram or email address is stripped rather than shown as clickable. See What powers the AI.
In practice the two text tabs differ in what they hand back:
- Refine returns formatted copy, so bold, italic and links land in your post as formatting.
- Generate returns the visible words. A drafted post arrives unformatted on all three engines; add the emphasis and the links yourself in the editor afterwards.
Images come back as a real photo already stored against the thing you are making β this campaign and your side of it, or your saved ad post. Applying attaches it; the other side cannot use it.
The counter under the post box usually stops 33 characters short of Telegram's limit, to leave room for the advertisement via onflowads.com line. The dialog trims a long result to the full limit rather than to that lower ceiling, so a very long draft can land in the box already over the counter. If the counter turns red after you apply, trim the post β the server enforces the lower number. See the reserve.
If something goes wrongβ
| What you see | What it means | What to do |
|---|---|---|
| Checking what your plan includes⦠and nothing else | The dialog is still reading your allowance | Wait a moment. It clears on its own |
| Could not read your AI allowance - you can still try. | The meter could not be read | Press Generate anyway. The server enforces the real limit either way |
| Tell the AI what the post is about first. | The brief is under three characters | Write a sentence describing the channel and the invite |
| There is no copy to improve yet. | The Refine tab found nothing in your post | Write or paste something first, then reopen the popup |
| Describe the image you want. | The image prompt is under three characters | Describe the scene, not the product |
| Have a look. Nothing changes until you apply it. | Success. The draft is waiting | Read it, then Apply to my post β or Regenerate |
| The AI returned nothing - nothing was used. | An empty result | Try again. No action was spent |
| The AI returned no image - nothing was used. | The image came back empty | Try again with a simpler scene. No image was spent |
| Network error - please try again. | The request never reached us | Check your connection and retry. Nothing was spent |
| You've used today's AI actions. or You've used this month's AI actions. (with the reset time) | Your daily or your monthly text allowance is finished β the message names which | See AI quotas and limits |
| That request breaks our content policy. | The prompt was declined before anything ran | Rephrase. See Content rules for AI |
| The composer is still loading β try again in a moment. | The page's scripts had not finished loading | Wait two seconds and press the button again |
| No AI button in the panel at all | On a booking, no listing is loaded. On a Blitz, there is no AI button by design | Open the booking page from a channel in the marketplace |
Relatedβ
- Drafting a post from a brief β the Generate tab in detail, on all three engines.
- Refining copy you already have β what Refine will and will not change.
- Generating ad images β the plan that unlocks images, and both image paths.
- Posts and delivery β building, approving and saving a cross-promotion post.