Contents
Overview
Article Generator (pkg_artigen) is a Joomla extension package that uses AI to create complete, research-backed articles. It grounds the AI in the brief's Sources URLs or web-search results, generates well-structured Joomla articles with auto-rendered banner images, and surfaces a vertical Status stepper so admin always sees where each brief is in the pipeline — all from within your Joomla admin.
The package includes a component for article management and a scheduled-task plugin (plg_task_artigentasks) that runs the unified Article Generator routine — one cron-driven loop covering Hopper discovery, unattended article generation, auto-publish, and on-demand batch jobs.
Article Generator is open source software released under the GNU General Public License v3 (GPL-3.0-or-later).
AI Article Creation
Generate complete articles using OpenAI GPT or Anthropic Claude with configurable tone, reading level, target word count, content structure and citation mode. Truncated runs can be resumed with one click via Continue generation.
Source-Grounded
Paste URLs into the brief's Sources field and the pipeline fetches them and uses the bodies as grounding material — available on every tier. External web search (Serper, Tavily, Google Custom Search) is also available on every paid tier.
Hopper — topic + cadence
A Hopper is a curated list of source URLs on a topic. The scheduled task runs each Hopper on its configured cadence (daily / weekly variants) and creates one brief per run from the Good sources. Optional auto-generate + auto-publish make it fully unattended.
Installation
Step 1: Install the Package
- Download the latest
pkg_artigenpackage from the extensions directory or from Multizone Limited - Log into your Joomla Administrator
- Navigate to Extensions > Install > Install from File
- Upload the
pkg_artigen_vx.x.x.zipfile and click Install
Step 2: Verify Installation
- Go to Extensions > Manage > Manage
- Search for “Article Generator”
- Ensure the component and the Tasks - Article Generator plugin are both installed and enabled
Step 3: Configure API Keys
- Navigate to Components > Article Generator
- Click Options in the toolbar
- Pick your AI provider (OpenAI or Anthropic Claude) and paste the API key — required for article generation
- Optionally enter a search-provider API key (Serper, Tavily, or Google Custom Search) for automatic web research — available on every paid tier from 3.5.26 onward
- Pick a default banner theme and icon on the Article Banner tab
- Click Save & Close
Step 4: Create the Scheduled Task (recommended)
- Go to System > Scheduled Tasks > New
- Pick the Article Generator task type
- Set it to run every 5 minutes (recommended — covers all four phases with room to spare)
- Save
Without the scheduled task, Hoppers with a cadence are documented but won't fire, and auto-generate / auto-publish settings stay dormant. Manual Run Now still works regardless.
Getting Started
There are two ways to drive article generation: one-off briefs, or Hoppers that produce briefs on a cadence.
Path A — one-off briefs
Create an Article Brief
Navigate to Article Briefs and click New. The Brief tab carries the inputs the AI uses: write a title and topic description, paste any authoritative source URLs, and pick a banner icon + theme. More options exposes tone, reading level, target word count, content structure and citation mode.
Generate the Article
Click Generate Article in the toolbar. The pipeline gathers research (Sources URLs and, if configured, web-search), generates the body, attaches a fresh banner, and creates the Joomla article. The browser drives the tick pipeline — each step bounded under 90s so shared-host timeouts can't swallow a stage silently.
If the AI cuts off mid-article, click Continue generation to append the rest. Click Regenerate to wipe the body, banner and images, and run the whole pipeline fresh.
Review and Publish
Click View Article on the brief's sidebar to open the generated Joomla article. Review the body, make any editorial adjustments, set the publish state when you're happy.
Need a different banner? Use the Banners submenu — every article with a banner is listed, with inline theme + icon pickers and a one-click regenerate.
Path B — Hoppers for recurring topics Premium
A Hopper watches a topic, builds a curated list of source URLs, and produces one brief per cadence cycle. See the Hoppers section below for the full setup, or jump to the dedicated Hopper setup guide.
Your Article Generator Subscription
Article Generator uses a tiered subscription model. It is freely available as a trial; paid subscriptions raise the monthly article allowance and unlock a few workflow-scale features. Gates are applied at render time and never on save — if your tier changes, no data is lost.
3.5.26 tier restructure: every paid tier now gets the full single-article feature set including external web search, Article Refresh, banners, curated CC images, and Article Integrity. Tiers differentiate on volume and on the recurring-workflow features (Hopper, advanced campaign types).
Trial
- 15 articles / month
- Source URLs in the brief
- External web search
- Manual banner regenerate
Standard
- 200 articles / month
- External web search + Article Refresh
- Batch processing (up to 10)
- 3 permitted domains
- Email support
Premium
- 1,500 articles / month
- Hoppers (curated source list + cadenced briefs)
- Advanced Campaign Types (Content Calendar, NPI)
- Batch up to 50, 10 domains
- Priority support
Enterprise
- Unlimited articles
- All Premium features
- Unlimited domains
- Premium support
API Keys & Service Providers
AI Provider (Required)
An AI provider key is required to generate article bodies. Pick the one that matches your account — both can be configured side-by-side and selected per brief.
- OpenAI — Sign up at platform.openai.com. GPT-4o Mini is the balanced default; GPT-4o for richer copy.
- Anthropic Claude — Sign up at console.anthropic.com. Claude Sonnet is a strong long-form alternative.
Source URLs (free, default)
Every brief carries a Sources field. URLs you paste here are fetched server-side and used as research material. No API key, no extra cost — the recommended way to ground articles when you already know the references.
External Search Providers (every paid tier)
When you want the AI to find its own references, configure a web-search provider. From 3.5.26 onward this is available on every paid tier — previously a Premium-only feature.
- Serper (recommended) — Google search results via API. Free tier at serper.dev. Hoppers prefer Serper because it also exposes a separate news endpoint.
- Tavily — AI-optimised search. Free tier at tavily.com.
- Google Custom Search — Direct Google API; requires a Google Cloud project and a Custom Search Engine ID.
Campaign Types
Every brief picks a Campaign Type. The type tells the pipeline how to research, structure, and (for the advanced types) spawn child briefs.
Built-in types
- Single Article — one brief, one article. Default for ad-hoc posts.
- Topic Brief — one brief, one article, source-grounded; tuned for explainer / cornerstone content.
- Competitive Marketing — one brief, one article; comparison-structure preset.
- Content Calendar Premium — spawns N child briefs spaced across a date range.
- New Product Introduction (NPI) Premium — staged sequence (Announce / Explain / Case Study) anchored to a launch date.
Workflow expander (Content Calendar, NPI)
Picking Content Calendar or NPI opens the Workflow expander on the Brief tab. Configure start/end dates and target count (Content Calendar), or launch date (NPI). The parent brief stays as the source of truth; child briefs are spawned with parent links so the relationship is visible on the Briefs list.
Hoppers — Curated Source List & Cadenced Briefs
A Hopper is “a curated list of source URLs on a topic, plus a scheduled brief from them”. It supersedes News Beat (removed in 3.5.56) and adds explicit verification + per-row curation. The full setup is in the Hopper setup guide — the summary below is the headline shape.
Lifecycle
- Create a Hopper at Components > Article Generator > Hoppers > New. Fill in the topic, keywords, editorial defaults (tone, reading level, word count etc.), and pick a watch type: Search query, RSS feed, or URL set.
- Open the Candidates tab and click Generate candidates. The watch type is dispatched to the appropriate handler (search provider / RSS parser / URL set) and each result is verified inline — the page is fetched and its body checked against the snippet to drop parasite-SEO and cached-spam URLs before they reach the table.
- Curate. Each row's Status badge reads Good (verifier OK or admin override), Bad (verifier or admin marked it bad), or Unverified. Bulk actions: Mark good, Mark bad, Delete, Verify. The Good rows are the Hopper's source list.
- Run Now creates ONE brief whose sources are every Good URL. The article-gen pipeline researches across them and writes a single piece that cross-references the publishers. You land on the new brief, ready to hit Generate Article.
- Or pick a cadence — daily / 3x weekly / 2x weekly / weekly — plus a time-of-day. The scheduled task runs the Hopper at that time each cycle, producing one brief per run.
Unattended end-to-end (optional)
Two switches on the Hopper edit form make the loop fully unattended:
- Auto-generate articles — when on, the scheduled task drives every brief emitted from this Hopper through the article-gen pipeline without admin intervention.
- Final article state — Draft (admin reviews before publishing) or Published (article goes live as soon as it's generated). Routed through Joomla's standard article state, so any workflow you have configured still applies.
Time of day uses your Joomla site timezone. Daily fires AT the configured time each day; weekly variants use it as a not-before floor on the gap. The scheduled task itself must be running at or before the configured time of day — every 5 minutes is the recommended cadence.
Article Generator Scheduled Task
One scheduled task drives the whole unattended loop. Create it once at System > Scheduled Tasks > New and pick the Article Generator task type. Recommended cadence: every 5 minutes.
What the task does on each tick
Four phases run in order, each wall-clock-budgeted so a stuck phase can't starve the rest:
- Hopper discovery — for every published Hopper whose cadence is due, calls produceBriefs() — one brief out per Hopper, sources = every Good URL on the Hopper. Manual-cadence Hoppers are skipped (they fire from the Run Now button on the Candidates tab).
- Auto-generation — picks draft briefs whose parent Hopper has Auto-generate articles on, and ticks each one forward through the article-gen pipeline one step at a time. The same step machine the browser drives, just headless.
- Auto-publish — for briefs that have completed generation with the Hopper's Final article state set to Published, flips the resulting Joomla article's state to live.
- Batch queue — services on-demand jobs queued by the Generate All Steps button on the Briefs list.
artigen.batch_queue, artigen.news_beat, or artigen.hopper_sweep become no-ops on upgrade. Delete them and recreate one scheduled task with the new Article Generator type.Logs
Per-task logs live at administrator/logs/task_{id}.log.php. Phase-level events also mirror to administrator/logs/com_artigen.error.php so you can trace what happened on a quiet site without enabling Joomla's individual-task logs.
Banners Gallery
Every generated article gets a procedurally-rendered banner image. The Banners submenu lists every article that has one, with a category filter at the top, an inline preview thumbnail per row, and inline pickers for icon + theme.
- Banner Icon — the Font Awesome icon name (e.g.
joomla,apple). Two icons can be combined by separating them with a comma (e.g.joomla,bolt). - Banner Theme — one of roughly 140 named CSS colours plus a curated Computing Classics palette. Text colour is selected automatically by luminance so dark themes get white text and light themes get black text.
- Use Default — pre-filled with the component default colour swatch so you can see at a glance what “default” means on this site.
- Regenerate — toolbar button on each row re-renders the banner with the current icon + theme. Available on every tier.
Setup & Tips
The Setup & Tips submenu is the at-a-glance health page for your install. Use it after configuration or whenever generation is misbehaving.
- API key status — live check of OpenAI, Claude, and the configured search provider. Shows set, missing, or from environment variable per slot.
- Completeness Tips — checklist of common readiness items: default category, banner theme, image upload path, scheduled task created.
- Research Quality alerts — warns when briefs are running without source URLs and without an external search provider (i.e. the AI is operating from training data only).
Troubleshooting
claude_max_tokens to 4000 if you see “Server returned a non-JSON response (HTTP 500)” — the PHP-FPM termination timeout is capping the call. If the AI cuts off mid-article, use the Continue generation button on the brief to append the rest. The 3.5.23 tick pipeline bounds every step under 90s — if you see a step stuck longer than that, the watchdog will surface a “Retry from this step” affordance.Three things have to be true:
- The Article Generator scheduled task exists at System > Scheduled Tasks. The Hopper edit form shows a yellow warning if it's missing, with a one-click link to create it.
- The scheduled task is published AND running often enough to hit the Hopper's Time of day. Every 5 minutes is the recommended cadence.
- The Hopper has at least one Good candidate row. Click Generate candidates on the Candidates tab, verify them, then mark the ones you want to source from.
Hopper is a Premium feature; on lower tiers it's hidden from the menu and the scheduled task's Hopper-discovery phase silently no-ops.
completed AND the inherited auto_publish_state is published. Briefs created before 3.5.56 inherit nothing — set the value on the Hopper, regenerate the brief, and the auto-publish phase will catch it on the next tick.com_artigen.error.php — check there for “0 results” or HTTP error lines.Article Generator uses the standard Joomla update system. Check for updates via Extensions > Update in your Joomla administrator.
If updates are not appearing, verify your server can reach the Multizone update server. If the update site is missing, reinstall the package to restore it.
Get support
Contact us
Questions, bug reports, feature requests — get in touch.
- Website: multizone.co.uk
- Email:
This email address is being protected from spambots. You need JavaScript enabled to view it. - In-app help: Each Multizone component has a setup checklist on its dashboard and contextual descriptions on every form field.
What support covers
All Multizone extensions are freely downloadable as trials.
- Trial — community support via the documentation and changelog.
- Standard / Premium / Enterprise — direct email support; response priority and depth scale with tier.
Documentation and changelogs for every extension live at multizone.co.uk/extensions.