FluxBilling
Settings

AI Settings

Connect an AI service to your installation and set the standing instructions used for blog generation and for drafting or refining ticket replies.

Updated · 2026-09-03

What the AI tab is for

The AI settings tab connects your installation to an AI service and holds the house rules for how it writes. It exists to power exactly two things in the panel, and nothing else:

  • Blog writing. A Generate with AI button in the blog editor that drafts a full post from a topic, and an SEO helper that fills in the excerpt, meta title, meta description and keywords for a post you wrote yourself.
  • Ticket reply assistance. Two buttons above the reply box on a support ticket — AI draft, which proposes a reply based on the conversation so far, and Refine, which rewrites a draft you have already typed.

The AI never sends anything to a customer on its own. Both ticket buttons drop text into your reply box for a human to read, edit and send, and the panel says so each time: “AI draft inserted — review before sending.” Blog generation likewise produces a preview you choose to accept.

The page header reads AI Settings, described as “Configure AI providers for blog post generation and ticket reply assistance.”

How to reach it

Go to Settings in the admin panel, open the Integrations group and click AI. It sits alongside Plugins and Domain Search Widget.

Note: this tab keeps its configuration together with the blog module's settings, so the Blog module must be switched on for it to work. With Blog off, opening the tab reports that it could not load its settings and saving fails. Leave Blog enabled even if you never publish a post. See Modules & Feature Toggles.

What you must supply

FluxBilling does not include an AI subscription. You bring your own, in one of two ways:

A provider plugin
A plugin of the AI Provider type, installed and enabled on the Plugins tab. Enabled provider plugins appear automatically as buttons on this page, and their connection details — keys, endpoints, anything else they need — are entered in the plugin's own Config, not here.
A built-in integration with your own API key
Two integrations are built in and always offered by name: Claude (Anthropic) · built-in and OpenAI · built-in. For either one you paste an API key you obtained from that service directly. The key is stored encrypted and only ever shown back to you as the last few characters.

If no provider plugin is enabled, the page shows an amber note explaining that you can use one of the built-in integrations with your own key, or install a provider plugin under Plugins.

Choosing a provider

Under Default AI Provider is a grid of buttons: one for each enabled provider plugin first, then the two built-in buttons. Click one to select it; the selected button is tinted and everything below the grid changes to match.

When a plugin provider is selected

  • A Model dropdown appears listing the models that plugin publishes, with a note underneath naming the plugin they came from.
  • A blue panel reminds you that this provider is configured under Plugins → the plugin → Config, and that the API key and other connection settings are managed there.
  • No key fields are shown on this page for that provider.

When a built-in integration is selected

  • A key field appears — Anthropic API Key or OpenAI API Key — masked, with an eye icon to reveal what you are typing.
  • A model dropdown appears for that service: Claude Model or OpenAI Model, listing the model versions currently offered.

A key field also stays visible for a service that already has a key stored, even when you have selected a different provider, so you can see and replace it without switching back.

Entering and replacing a key

  1. Select the built-in provider you want.
  2. Paste the key into its field. Use the eye icon to check it before saving.
  3. Click Save Settings.
  4. The field clears and a green line appears above it reading Key configured followed by the masked value. From then on the placeholder reads Enter new key to replace.

Note: leaving a key field empty never erases the stored key — an empty field simply means “no change”. To replace a key, type the new one over the top and save.

Instructions: teaching it your voice

Two large text boxes hold standing instructions. Both are optional, and both are sent to the provider alongside every request of their kind.

Default AI Instructions
The standing brief for blog generation — described in the panel as the system prompt used when generating blog content. Put your tone, audience, length preferences and anything the writer should never claim here. It can be overridden for a single post from the generation dialog, where the same field appears marked (override default).
Ticket AI Instructions
Extra instructions for AI-drafted and AI-refined ticket replies, using the same provider you selected above. This is where support policy belongs — the panel's own example is “Always mention our 24/7 support, never promise refunds…”. Add anything a draft must never do: quote prices, commit to timescales, promise credits.

Nothing on this page saves by itself. Click Save Settings at the bottom; a confirmation appears when it succeeds.

Field reference

AI settings and what each control does
FieldWhat it does
Default AI ProviderWhich service handles blog generation and ticket assistance. Enabled provider plugins are listed first, then the two built-in integrations.
ModelShown for a plugin provider. Lists the models that plugin publishes.
Anthropic API KeyYour own key for the built-in Claude integration. Masked, with a reveal toggle. Stored encrypted.
Claude ModelWhich model version the built-in Claude integration uses.
OpenAI API KeyYour own key for the built-in OpenAI integration. Masked, with a reveal toggle. Stored encrypted.
OpenAI ModelWhich model version the built-in OpenAI integration uses.
Default AI InstructionsStanding brief for blog generation. Can be overridden for one post at generation time.
Ticket AI InstructionsStanding brief added to every AI-drafted and AI-refined ticket reply.
Save SettingsCommits every field on the page. Key fields left empty keep their stored value.

What changes in the panel once it is configured

Nothing appears or disappears — the AI buttons are always present in the blog editor and on tickets. What changes is whether they succeed.

In the blog editor

  1. Open Blog Editor and click Generate with AI in the top bar.
  2. Fill in Topic or Idea, optionally a Category, optionally a different AI Provider for this one run, and optionally Custom Instructions that override your default brief.
  3. Click Generate Blog Post. The button reports “Generating… (this may take 15-30 seconds)”.
  4. A preview shows the proposed title, excerpt and the beginning of the content. If the topic looks close to something you have already published, a Similar posts found warning lists them.
  5. Click Use This Content to drop it into the editor, or Regenerate to try again. The post is then yours to edit and publish as normal.

Posts produced this way are marked with a small icon in the blog list, so you can tell at a glance which were drafted by the AI. The SEO helper in the editor uses the same provider to fill the excerpt and meta fields for an existing post.

On a support ticket

  1. Open a ticket and look above the reply box for AI draft and Refine.
  2. AI draft reads the conversation and writes a proposed reply straight into the box. While it works the button reads Thinking….
  3. Refine is only usable once you have typed something; it rewrites your draft for grammar, tone and clarity.
  4. Edit what comes back and send it like any other reply. Your signature is added as usual — the draft does not include one.

What is sent to the provider

Decide this deliberately, because it involves customer data.

  • Blog generation sends your topic, the chosen category name and your instructions. No customer data is involved.
  • Ticket assistance sends the ticket's subject, priority, status, the customer's name and the recent conversation — including staff internal notes, clearly labelled as such, because they are context a good reply needs. Long messages are truncated and only the most recent part of a long thread is included.

Warning: if your support conversations routinely contain data you are not permitted to send to a third party, do not use the ticket buttons, and say so in your staff guidance. There is no per-ticket opt-out — the buttons are available on every ticket to any staff member who can reply to it.

What can go wrong

The tab reports it could not load its settings
The Blog module is switched off. Turn it on in Settings → General → Feature Toggles, save, and reopen the tab.
Blog generation fails and mentions API keys
No key is stored for the selected built-in provider, or the key was rejected. Re-enter it and save. If you meant to use a plugin provider, check it is enabled on the Plugins tab — only enabled plugins appear as buttons here.
“AI request failed” on a ticket
The same causes as above, plus a provider that timed out or refused the request. Try again; if it repeats, confirm the key is still valid with the provider.
A provider plugin is installed but not offered
The plugin must be of the AI provider type and its status must be Active. A plugin left in draft or disabled is not offered here.
The drafts read nothing like your team
That is what the two instruction boxes are for. Be specific: name the tone, the length, the things never to promise. Instructions are applied to every request from then on.
You want to stop using AI entirely
Clear both instruction boxes and remove the provider plugin, or leave the keys unset. The buttons remain in the interface but return an error; there is no separate switch that hides them.

Related articles

Blog · Blog Editor · Ticket Details · Managing Plugins · Modules & Feature Toggles · Admin Signatures