

Professional Joomla development for businesses, football clubs and charities across the UK. We don't just build Joomla sites — we build the tools that run them, including SE AI Chatbot and SE AI SEO, used on sites beyond our own. 16 years in, still hands-on."
SE AI App Builder lets you build database apps inside Joomla, such as bookings, members, fixtures or stock, by describing them to an AI or with a visual builder. Each app stores its records in real tables in your own Joomla database. Its public lists, record pages and forms appear on your site through ordinary menu items.
The main ideas
Where things are
In the administrator, go to Components › SE AI App Builder. The Apps list is the starting point. Open an app to reach its screens, shown as tabs along the top:
| Screen | What it's for |
|---|---|
| Builder | The app's entities and fields, AI changes, demo data |
| Records | Adding, editing, importing and exporting records |
| Dashboard | Charts and figures for the people running the app |
| Saved views | Named filters such as "Upcoming fixtures" |
| Appearance | How lists and record pages look on the site |
| Charts | Charts for the dashboard and the site |
| Comments | Comments and ratings waiting for approval (when switched on) |
| Translations | Labels in other site languages |
| Access | Who can see and change records, sign-ups |
| Automation | Rules that send emails, set fields, add records and call webhooks |
| Payments | Taking money through forms |
| Tools | Health check, AI troubleshooter, app export, embed codes |
Which tabs you see depends on your permissions. Backups, the AI log and your licence are reached from the Apps list.
SE AI App Builder needs Joomla 5.0 or later (Joomla 6 included), PHP 8.1 or later and MySQL or MariaDB. The installer checks these and stops with a message if one is missing.
The database user must be able to create, alter, rename and drop tables, because every entity is a real table. The installer tests this with a throwaway table and stops if it can't.
Installing
Scheduled task
Date-based and scheduled automation rules, and the clean-up of old backups, unused uploads and logs, run from Joomla's Scheduled Tasks. Go to System › Scheduled Tasks, add a new task of the type "SE AI App Builder: rules and housekeeping", and run it every 15 minutes. Make sure Joomla's scheduler runs: either the Lazy Scheduler is on, or a server cron job calls Joomla's CLI. The Tools screen's health check warns when the task is missing.
Updating
Install the new package over the old one, or use System › Update › Extensions. Updates through Joomla's updater need your licence key, free or Pro, saved on the Licence screen; it is passed to Joomla as the download key for you. Your apps, records and settings are kept.
Uninstalling
By default, uninstalling keeps every app, its tables and backups, ready for a reinstall. To remove everything, first turn on Remove all data on uninstall in Options, then uninstall. That permanently drops the app tables and backups.
Both editions have every feature. The only difference is how much you can store:
| Free | Pro | |
|---|---|---|
| Apps | 1 | Unlimited |
| Records | 10 of each entity | Unlimited |
| Every feature | Yes | Yes |
| Updates through Joomla | With a free licence key | Yes |
Trashed records don't count towards the ten. Nothing you've stored is ever hidden or locked. If a Pro licence lapses, everything stays readable and editable, but nothing new can be added past the free limits.
When a limit is reached
The licence key
Open the Apps list and click the Licence button in the toolbar (shown to people with the Options permission). Paste the key from your SE24 Media account and click Save and activate. The key is activated for this site's domain, then checked.
The AI features use your own account with an AI provider. Requests go straight from your site to the provider; nothing passes through SE24 Media, and the provider bills you for what you use. Everything else, including the manual builder, works without AI.
Choosing a provider
Go to Options › AI, pick a provider, paste its API key and save.
| Provider | Used when the Model box is empty | Where to get a key |
|---|---|---|
| OpenAI | gpt-4.1 | platform.openai.com |
| Anthropic (Claude) | claude-sonnet-5 | console.anthropic.com |
| Google Gemini | gemini-2.5-flash | aistudio.google.com |
| DeepSeek | deepseek-chat | platform.deepseek.com |
Providers rename models often, so you can type any current model name in the Model box.
Testing the connection
Open the AI log (from the component's menu) and click Test AI connection. It sends one tiny request with the saved provider, key and model. A success message names the provider and model. Otherwise it explains the problem: a rejected key, an unknown model, rate limiting, or a provider that can't be reached.
AI options
| Option | Default | What it does |
|---|---|---|
| Maximum reply length | 8000 tokens | Enough for apps of about 20 entities. Raise it if replies are cut off. |
| Temperature | 0.2 | Lower is more predictable. Ignored for OpenAI's newer models. |
| Repair attempts | 2 | When a proposal fails the checks, how many times the errors are sent back for the AI to fix. Each attempt is another paid request. |
| AI reply time limit | 300 seconds | How long to wait for one answer. Adding to a large app can take several minutes. Choices are 180, 300, 450 and 600. |
Long requests and hosting limits
AI requests run in the background while the page checks on progress, so a host that cuts web requests off after 30 to 60 seconds doesn't lose the work. If the server stops the request before the AI finishes, the page says so within about 20 seconds. You can then try again, ask for a smaller change, or ask your host about PHP time limits. Every request, its cost in tokens and any errors are listed in the AI log.
Free tiers
Some providers, including Google Gemini, have a free tier. It works, but it has low limits on requests per minute and per day. Google's terms also say only paid services may be used when serving users in the UK, the EEA or Switzerland, and on the free tier your requests may be used to improve Google's products and read by human reviewers. A paid key with a fast, cheap model is the safer choice for real use.
There are four ways to start an app. Whichever you use, the app starts as a draft: no tables are created until you review and apply it.
1. Describe it to the AI
2. Talk it through first
If you're not sure what you need, write a first idea and click Talk it through instead. The AI asks questions and builds up a plan with you, shown beside the conversation. When the plan is marked ready, click Build this plan to turn it into a proposal as above.
3. Start from a recipe
Click Recipes and import on the Apps list. Recipes are ready-made apps you can adapt: Fixtures and results, Junior section, Kit orders, Squad register, Volunteer rota, Courses and enrolments, Event bookings, Room and facility bookings, Mailing list, Membership register, Donations and Gift Aid, Sponsors and partners, Business directory, Contacts and enquiries, Testimonials, Vacancies and applications, Incident and accident log, Kit and equipment loans, Maintenance log, Projects and tasks, and Stock and inventory.
4. Build it by hand
Click New app, give it a title and description, and add entities and fields in the builder (next section).
Importing an app file
Apps can be exported from their Tools screen, including their records if you choose. To bring one in, use Import an app file on the Recipes and import screen. Tick Include the records, if the file has them to copy the records too. Importing always creates a new app; nothing existing is changed.
Changing an app with AI later
The builder has a box for asking the AI to change the app, for example "add a kit size to players". The result is a proposal showing exactly what changes. Using it replaces the app's draft; the live app and its records don't change until you apply.
The builder is where an app's entities and fields are defined. Changes are saved to the app's draft as you go and only reach the database when applied (see Reviewing and applying). Some changes need no database change at all and update the site straight away: field order, labels, help text, choice labels and list columns.
Entities
Each entity has a label (Venue), a plural label (Venues), a key used in the database and codes (venue), and a Title field, shown as each record's name in lists and links. Also show in links adds up to two more details after the title wherever the record is picked or linked, for example "FIX-0001 · Home team · Opponent".
Field types
| Type | Use it for | Notes |
|---|---|---|
| Short text | Names, codes, towns | Set a maximum length |
| Long text | Descriptions, notes | Optionally formatted (below) |
| Formatted text | Text with bold, lists, links, headings | Uses Joomla's editor |
| Whole number | Places, ages, squad numbers | Can show as a 1 to 5 star rating |
| Decimal number | Prices, weights | Set total digits and decimals |
| Yes/No | Paid, Accessible, Featured | |
| Date | Birthdays, start dates | Default can be "today" |
| Date and time | Kick-off, appointments | Default can be "now" |
| Time of day | Opening times | |
| Single choice | Level, Status | Dropdown or radio buttons |
| Multiple choice | Facilities, Tags | |
| Email address | Contact email | Checked as an email |
| Web address | Websites | |
| Phone number | Mobile, landline | |
| File / Several files | Brochures, forms | Allowed types and size in Options |
| Image / Several images | Photos | Must be a real image; SVG never allowed |
| Joomla user | Booked by, Manager | Links to a site account |
| Link to another entity | An enrolment's Course | One record of another entity |
| Links to several records | A course's Tags | Many records of another entity |
| Location (map point) | Venues on a map | Can be found from address fields |
| Reference number | FIX-0001, ORD-0042 | Given automatically, never typed |
Field settings
Rules
Under Rules a field can also have:
[A-Z]{3} for three capital letters.Show only when
A field can appear only when a condition about the record's other fields is met, for example under_18 or membership_type = 'Family'. When the condition isn't met, the field is hidden, not required, and left empty. Conditions use the same language as saved views and automation:
= != < <= > >=, contains, in ['a', 'b'], is empty, is not empty.and, or, not and brackets. Put text in quotes.parent.field reads a field of the record the rows belong to.Calculated fields
Tick Calculated to work a value out instead of typing it, for example quantity * item.price or round(total * 0.2, 2). You can use + - * /, brackets, round, min, max, abs, ifempty(field, 0), days_between(a, b) and years_between(a, b). A formula can read a linked record's fields (item.price). The value is worked out whenever the record is saved. A calculated field can't be required, and can't use another calculated field.
Links between entities
Repeat groups
On the entity that others link to, Edit inside this form lets those linked records be added and edited as rows on its form, like an order's lines or a booking's attendees. Rows are saved as their own records and deleted with their parent. You can set a minimum and maximum number of rows.
Reference numbers
A reference number field gives each new record the next number: a prefix plus the number padded to the digits you choose, such as ORD-0001. Records already there are numbered, oldest first, when the field is added.
Locations
A location field can be found from address fields: choose up to six short text fields (street, town, postcode). When a record is saved with an address and no location, the location is looked up, using OpenStreetMap's Nominatim unless Options name another service. Site forms then don't ask for the location.
Nothing in your database changes until you review a draft and apply it. When a draft is waiting, the builder shows a Draft badge and a Review button.
The Review screen
The Review screen lists every step applying will take, in the order it will run, each marked with a risk level:
| Label | Meaning | Examples |
|---|---|---|
| Safe | Can't lose or hide data | New entity, new field, a longer maximum length |
| Check | Data is kept but moves or disappears from view | Renaming, removing a field or entity |
| Converts data | A conversion that could change values | Short text to whole number |
Changes that only touch labels and settings say so, and don't touch the database. Show SQL reveals the exact statements for anyone who wants to see them.
Warnings about existing records
The Review screen warns when a change affects records already stored, and says how many. The records are kept as they are. It warns when:
Conversions
When a conversion can't convert every value, the Review screen says how many can't, with sample record IDs. Apply is refused until you either tick Clear these values and convert the rest, or change the draft.
Applying
Steps marked Check or Converts data need you to type the app's key to confirm. Applying needs the Apply schema changes permission. Anyone without it can still build drafts for someone else to apply.
Backups and undo
Before any change that converts data, every affected table is backed up. The app's most recent change can be undone from Backups while all its backups exist. Undoing replaces the affected tables with their backups. Records added or edited in those tables since the change are lost, and any unapplied draft is discarded. Old backups are deleted by the scheduled task after the number of days set in Options (30 by default), except those of each app's latest change.
Removed items
Removing a field or an entity doesn't delete its data. It moves to Removed items in the builder. Restoring one puts it back in the live app straight away. Deleting it there removes its data permanently, which needs the Delete data permanently permission.
Open an app and click Records to see an entity's records. Use the entity switcher to move between entities.
The records list
Saved views
A saved view is a named list, such as "Loans due this week" or "Pending bookings". Create them on the Saved views screen with:
today and now, for example due <= today + 7 and not returned;Pick a view above the records list, show it on the site through a List of records menu item, or use it in a module or embed code.
Importing a CSV file
Click Import CSV on the records list. You can add up to 5,000 rows at a time.
The importer understands choices written as their label or value; yes/no as Yes, No, Y, N, True, False, 1 or 0; dates as 2026-10-14 or 14/10/2026 (day first), with an optional time; amounts with £ and commas; and links as the linked record's title or ID. Excel's CSV export works as it is. Files and images can't be imported. Rows with problems are skipped and listed by line, with one message per problem. Past imports are listed on the same screen.
Exporting
Export CSV downloads the list as it's currently filtered, up to 50,000 rows. It needs permission to edit the entity's records. Values that start with =, +, - or @ are protected, so spreadsheets don't run them as formulas.
Demo data
The builder's Demo data panel fills the live app with sample records, so you can see lists, forms and links working. Emails use example.com and phone numbers use a range reserved for fiction. With AI set up, the AI can write realistic values; otherwise built-in samples are used. Remove demo data deletes only the records it added, and keeps any that real records link to.
Uploads
File and image fields check every upload: allowed types (set in Options), size (5 MB by default), and Joomla's own unsafe-file scan. Images must be real, complete images, and SVG is never allowed. Files are stored under images/seaiappbuilder with random names. Uploads no record uses are deleted by the scheduled task after 7 days.
Apps appear on your site through ordinary Joomla menu items, so they use your template, menus and access levels. Only entities in the live app can be chosen.
List of records menu item
Go to Menus, add a new item, and choose SE AI App Builder › List of records. Under Records of, pick the app and entity. Options:
The layout (table, cards, compact list, image grid, calendar or map) is set for each entity on the Appearance screen. Fields marked Hide on the public site never appear. Long lists page with numbered links that follow your template's colours and shrink to fit phones.
Submission form menu item
Choose SE AI App Builder › Submission form, then the app and entity. Options:
Forms follow the entity's settings: fields marked Staff only are left out, rules and Show only when work as in the administrator, dependent dropdowns refill as choices change, and repeat groups appear as rows.
Multi-page forms
In the builder, use New page here on the field a page should start with, and give each page a title. Visitors see one page at a time, with "Page 1 of 3", Back and Next, and each page is checked before they move on.
Editing on the site
People with Edit, or Edit Own for their own records, see an Edit button on record pages. Saving checks everything the administrator form checks. With Owners can trash their own records switched on (Access screen), owners can also remove their own records.
Showing records anywhere
{seaiappbuilder list app="lb01" entity="loan" view="Overdue" limit="5" layout="cards" more="1"}, {seaiappbuilder form item="123"} (the form's menu item ID) and {seaiappbuilder chart app="lb01" id="c_ab12cd34"}. Ready-made codes for each app are on its Tools screen.Smart Search
Tick Include in site search (Smart Search) for an entity on the Appearance screen, and its published records appear in Joomla's site search, linking to their record pages. It needs a List of records menu item for that entity with Record pages on, and the Smart Search plugin switched on. Nothing is indexed until you tick it.
The Appearance screen sets how an app's lists and record pages look on the site. Changes go live straight away and are recorded in the app's history; database tables aren't touched. A preview shows the result with your own records (add demo data if there are none yet).
Style (the whole app)
By default, apps take their fonts, link colours and button colours from your template. That's been checked with Cassiopeia, Helix Ultimate and Gantry 5. Page numbers, searchable dropdowns and form spacing are drawn by the app itself, so they look right whichever template you use.
Lists (for each entity)
Record pages and fields
For each field: Show as (as entered, a coloured badge for choices, and so on), Hide label, Hide when empty, and the order fields appear in.
Comments and ratings
Comments and star ratings can be switched on for each entity here. See Access and people.
Style with AI
Describe the look you want, for example "Show matches as cards with the kick-off time as the subtitle, a green badge for home games and a grey one for away games", and click Suggest a style. The suggestion appears in the preview first; nothing changes until you click Apply suggestion.
Custom CSS
For designers. Every rule is scoped to this app's pages automatically, so it can't affect the rest of the site. For full control of the HTML, use Joomla template overrides of the component's layouts.
The Access screen sets who can see and change each entity's records. Site settings affect menu item pages; permissions apply everywhere, in the administrator and on the site.
On the site (for each entity)
Permissions (for each entity)
For each user group: Create, Edit, Edit Own, Publish and trash and Delete. Inherited follows the component's permissions in Options. Edit Own lets people change records they created, on the site too; Edit allows any record. Delete means permanently, from the trash. Changing permissions needs the Configure permission.
The component's own permissions, in Options › Permissions, also include:
| Permission | Allows |
|---|---|
| Apply schema changes | Applying reviewed drafts, undoing changes, restoring removed items |
| Manage automation | Creating and changing automation rules, which can send emails and call other websites |
| Delete data permanently | Deleting removed fields and entities, backups and trashed apps for good |
People who open a page they aren't allowed to use are sent back to the app's builder with a message, rather than to Joomla's error page.
Sign-up forms
Under Sign-up form on the Access screen, tick Create a user account when the site form is sent and choose the Name field, the Email field (also the username), and optionally a Joomla user field to fill with the new account. Visitors who aren't logged in then also choose a password on the form. Joomla creates the account with your site's registration settings (Users: Options): the new-user group, password rules, and activation by email or by an administrator. The new member owns the record they submitted.
When the form also takes payment, the payment is started first. If it can't start, no account is made and the submission goes to the trash, so the visitor can simply try again.
Comments and ratings
Switch them on for an entity under Comments and ratings on the Appearance screen:
They show on record pages to people who can see the records, and ratings also show as stars on cards and compact rows. Approve, hide and delete them on the app's Comments screen, which shows how many are waiting.
A site form can take a one-off payment through Stripe or PayPal: a course booking, a kit order, a donation. Recurring billing isn't included.
1. Connect a provider (Options › Payments)
2. Switch payment on for an entity (the app's Payments screen)
The Payments screen tells you if anything stops payments being taken, such as missing keys.
What the visitor sees
When a payment arrives
The record is published (if the form publishes submissions) and the Paid field is ticked. Automation rules for that change run as usual, so a rule such as "when Paid changes to Yes, email the booker" works.
Managing payments
The Payments screen lists every payment with its status: pending, paid, failed or cancelled. Staff can mark a payment as paid by hand (the record shows who did). If the amount paid doesn't match what was asked, the payment is flagged so you can check it with the provider before accepting it.
Automation rules do things when records change or dates come round: email the office about a new booking, remind people the day before, set a status, add a follow-up record, or tell another service. Rules are set on the app's Automation screen and need the Manage automation permission.
A rule has three parts
Triggers
| Trigger | Example |
|---|---|
| A record is added | Email the office about a new booking |
| A record is changed | Note who changed it |
| A record is published | Tell the applicant they're accepted |
| A field changes, or changes to a value | When Status becomes "Approved" |
| A date comes round: on a date field, or a number of days before or after it, at a set time | 1 day before Starts, at 09:00 |
| On a schedule: every day, every week on a day, or a day of every month, at a set time | Every Monday at 08:00 |
Date and schedule rules run from the scheduled task (see Installation).
Conditions
The same language as Show only when: compare fields with = != < <= > >=, contains, in ['a', 'b'], is empty or is not empty, and combine with and, or, not and brackets. For example venue = 'home' and not featured, or starts >= today. Linked records' fields work too, like member.email.
Actions
{{records}} in the message.Placeholders
Subjects, messages and values can use the record's fields as {{field_key}}, plus {{id}}, {{entity}}, {{app}}, {{today}}, {{now}}, {{record_url}} and {{admin_url}}. The rule editor lists every placeholder for the entity.
Off, Test and Live
Each rule has a log of what it did, or would have done. A rule stops sending once it reaches the Emails per rule per hour limit in Options (50 by default), so a mistake can't flood inboxes.
Automate with AI
Describe the rule, for example "When a volunteer signs up, email them a welcome message and email the rota manager at rota@example.org", and click Suggest a rule. You see the rule before it's saved, and it's saved in Test mode.
A saved view is a named list, such as "Loans due this week" or "Pending bookings". It has a condition, written in the same language as Show only when, and an order. Saved views can compare fields with values, with other fields, and with today and now. For multiple-choice fields use contains, as in tags contains 'urgent'.
You can use a saved view in four ways:
If you delete a view, menu items that used it show all records instead.
Every app has a dashboard for the people running it. It shows:
Charts appear on the site. Open Charts for the app, then choose:
| Setting | Choices |
|---|---|
| Records | Which entity to chart |
| Chart | Bars across (to compare groups), Columns (counts over time), Line (a trend over time) |
| Group by | A field, or when the record was added |
| Show | Number of records, or the total, average, lowest or highest of a number field |
| Only records in | All published records, or a saved view |
| For dates, one bar per | Month or year |
| At most | How many groups to show (the rest go into "Other") or how many months or years |
Charts only count published records, and they can only use fields that are shown on the site. Under each chart, Show the numbers opens the figures as a table. When you save a chart it goes on the site straight away, and the change is recorded in History.
To put a chart on a page, paste its embed code into an article or a Custom module, or use the SE AI App Builder module:
{seaiappbuilder chart app="club" id="3"}
The content plugin also shows lists and forms the same way:
{seaiappbuilder list app="club" entity="fixture" limit="5" more="1"}
{seaiappbuilder list app="club" entity="fixture" view="Next fixtures" limit="5"}
Each screen shows the exact code for its own app, so you can copy it from there.
On a multilingual site, visitors see your app's labels in their own language. Install a second site language first (System > Install > Languages). Then open Translations for the app, pick a language, and fill in the boxes for:
Anything you leave empty shows the original wording.
Translate the empty ones with AI fills the empty boxes with suggestions marked "Suggested by AI: not saved yet". Check them, then click Save. Menu titles are translated in Joomla's menus as usual. Rule emails are written separately for each rule.
Each app's Tools screen gathers the things you need when something isn't right, or when you want to move the app.
The health check looks over the whole app and lists anything that needs attention. Each item is graded Problem, Check or Note, and has a Go there link to the screen that fixes it.
| Area | Example findings |
|---|---|
| App | The app is unpublished, has no entities, or has builder changes that haven't been applied |
| Saved views | A view can't run any more |
| Automation | A rule can't run, rules are still in Test, a rule failed recently, or the scheduled task is missing, disabled or hasn't run for two days |
| Records | Links to records that no longer exist; required fields left empty |
| Site | No menu item shows the app; a menu item shows a removed entity; a missing access level; a required field the site form can't ask for |
| Payments | No provider set up, settings that can't charge, no Stripe webhook secret, simulated payments still on, or payments that are waiting or don't match |
Run it after any big change, and before you go live.
Describe what isn't working, for example "The booking confirmation emails aren't arriving", and click Ask AI. The AI looks at the app's structure, settings, the health check and recent automation. It replies with Likely causes and What to do, and sometimes a Suggested change to the app. Click Open in the builder and the builder's AI drafts that change for you to review. The troubleshooter itself never changes anything.
Only the app's structure, settings and counts are sent to the AI, never the contents of records.
The AI log lists every AI request on the site: what was asked, what came of it, and the tokens it used. Open a request to see its proposal. It's the first place to look when the AI gives a strange answer, and it helps you keep an eye on what your provider is charging you.
Backups are kept for 30 days by default (Options > Automation). The scheduled task clears old ones.
Export without records or Export with N records downloads the app as a .json file. Use it to:
To bring an app file in, go to Apps > Recipes and import, choose the file, and decide whether to include its records. Importing always creates a new app, so nothing already on the site changes.
What an app file includes
Open Options from the toolbar of any SE AI App Builder screen, or go to System > Global Configuration > SE AI App Builder.
| Option | Default | What it does |
|---|---|---|
| AI provider | None | OpenAI, Anthropic (Claude), Google Gemini or DeepSeek |
| API key and model | Empty | Set for each provider. Test connection checks them. |
| Maximum reply length | 8000 | The most tokens the AI may use in one reply. Raise it if large apps come back cut short. |
| Temperature | 0.2 | Lower values give more consistent answers |
| Repair attempts | 2 | How many times the AI is asked to fix a proposal that fails the checks |
| AI reply time limit | 300 seconds | Choose 180, 300, 450 or 600. Slow models and large apps need more time. |
| Option | Default | What it does |
|---|---|---|
| Large table warning | 50000 | Above this many records, Review warns that a change may take a while |
| Option | Default |
|---|---|
| Image types | jpg, jpeg, png, gif, webp |
| File types | pdf, doc, docx, xls, xlsx, ppt, pptx, odt, ods, csv, txt, zip, jpg, jpeg, png |
| Maximum upload size | 5 MB (the server's PHP limits also apply) |
| Option | Default | What it does |
|---|---|---|
| Emails per rule per hour | 50 | A rule stops sending once it reaches this |
| Keep backups for | 30 days | Older backups are deleted by the scheduled task |
| Delete unused uploads | On | Removes uploaded files that no record uses any more |
| after | 7 days | How long an unused upload is kept first |
| Option | Default | What it does |
|---|---|---|
| Mode | Test | Test uses the providers' test keys. Live takes real money. |
| Simulated payments | Off | Lets payments go through with no provider at all, for trying forms out. Turn it off before going live. |
| Currency | GBP | Used for every payment |
| Stripe | Empty | Test and live secret keys, and the webhook signing secret |
| PayPal | Empty | Sandbox and live client IDs and secrets |
| Option | Default | What it does |
|---|---|---|
| Tile server address | Empty (OpenStreetMap) | Use another tile service if you have one |
| Map credit | OpenStreetMap credit | The attribution shown on the map; required by most tile services |
| Map height | 400 px | |
| Address lookup service | Nominatim | Turns addresses into map positions |
| Contact email | Empty | Nominatim's usage policy asks for one |
The licence key isn't kept in Options. Enter it on the Licence screen (see Free and Pro).
| Option | Default | What it does |
|---|---|---|
| Remove all data on uninstall | Off | When this is off, uninstalling keeps your apps and records so a reinstall picks them up again. When it's on, uninstalling deletes every app table. |
The standard Joomla permissions for the whole component. You can also set them for each app and record type (see Permissions and access).
Start with the app's Tools > Health check. Most problems show up there with a link to the fix. If that doesn't explain it, describe the problem to Ask AI what's wrong.
Test connection fails. Check that the key belongs to the provider you picked, that the model name is right, and that the account has credit or a free allowance. Some hosts block outgoing connections, so ask your host to allow HTTPS to your provider.
"The AI's reply wasn't usable" or the reply was cut short. Raise Maximum reply length in Options, or describe the app in smaller steps. The AI log shows the full reply.
The AI times out on large apps, or says the server stopped the request. Raise AI reply time limit to 450 or 600 seconds, choose a faster model, or ask for the change in smaller steps. If it keeps happening, ask your host whether long PHP requests are being cut off.
Can I use the Gemini free tier? Yes. It has low rate limits, so a large app may take a couple of attempts. Google may also use free-tier requests to improve its products, so think about that before describing anything sensitive.
Does anything go through SE24 Media? No. AI requests go straight from your site to your provider. The only call to SE24 Media is the daily licence check.
A new record is refused with "holds 10 …". That's the Free edition limit. Trash records you don't need, or enter a Pro key. Trashed records don't count, but restoring one from the trash counts again.
The site form says it isn't taking new entries. That record type has reached the Free limit. Visitors only see a neutral message, never anything about upgrading.
A field doesn't appear on the site form. Check whether it's hidden on the site, staff-only, left off forms, or hidden by a Show only when condition. The health check warns when a required field can't be asked for.
Uploads fail. Check the file types and the maximum size in Options, and the PHP upload_max_filesize and post_max_size settings on your server.
Imported CSV rows are skipped. The import result lists every bad cell with its row and column. Fix those rows, then import just them again.
A rule does nothing. Is it in Test? Test only writes to the log. Is the app published? Does the condition match? Open the rule's log to see what it did with each record.
Date and schedule rules never run. Enable the scheduled task SE AI App Builder: rules and housekeeping under System > Scheduled Tasks. Joomla only runs tasks when the site gets visits, so on a quiet site set up a cron job that calls Joomla's scheduler.
Emails don't arrive. Check System > Global Configuration > Server > Mail, and send a test mail from there. Also check that the rule isn't over its hourly limit.
A webhook fails. The address must be public, because addresses inside your own network are refused. PHP's curl extension must also be installed.
Payments stay pending. Add the Stripe webhook signing secret, so that payments are confirmed even when the payer doesn't come back to the site. Use Check with provider on the Payments screen for any payment stuck as pending.
Payments go through but no money arrives. Simulated payments is still on, or Mode is set to Test.
The app doesn't match my template. Apps take their fonts and colours from the template. If your template styles tables, buttons or pagination unusually, add overrides to your template's custom CSS. Every element has a seab- class to target, for example .seab-pager__link.
I entered a Pro key but I'm still on Free. The key must belong to SE AI App Builder and its plan must include Pro. A free download key is valid, but it doesn't unlock Pro. Click Check now on the Licence screen after changing your plan.
What happens if the licence server is down? Pro stays on. If the server can't be reached for 30 days in a row, the site goes back to the Free limits until the next successful check. Nothing is deleted or hidden.
Updates don't show. The update site needs your key. Saving it on the Licence screen adds it for you. Then run System > Update > Extensions > Check for updates.
What happens to my data if I uninstall? It's kept, unless Remove all data on uninstall is switched on in Options.
When you contact SE24 Media, include: