Automatic Release

Licence keys without a server: the key format, what happens on create, suspend and terminate, the client area card, the e-mail merge fields and troubleshooting.

Automatic Release is the provisioning module for things you sell that need no server: software licences, serial numbers, digital downloads, vouchers. When an order is accepted it makes a licence key, keeps it with the service, shows it to the client in the client area and offers it to e-mails as a merge field. It is a free module that needs no server and no outside account. How services and the service page work in general is in Services and servers.

The module only makes and keeps the key. Nothing in it checks a key for your software; your software or website has to learn the valid keys in your own way.

Switching it on

  1. Setup → Addon Modules: Automatic Release is built in. If it is off, press Activate.
  2. Setup → Products / Services: open the product, tab Module Settings, choose Automatic Release. There is no server to pick.
  3. Fill in the two product settings and save.
  4. Add the key to the product's welcome e-mail (below).

Product settings

SettingMeaning
Key formatThe pattern of the key. Default XXXX-XXXX-XXXX-XXXX.
Downloads noteA text shown with the key in the client area and available to the welcome e-mail, for example where to download the software.

In the key format:

CharacterBecomes
XA random capital letter or digit. The letters I and O and the digits 0 and 1 are left out so that keys are easy to read aloud.
9A random digit.
aA random lowercase letter.
anything elseKept as it is (dashes, prefixes).

PRO-XXXXX-9999 gives something like PRO-K7MQ2-4821.

What each command does

CommandEffect
Create (on accept or payment, as the product's Automatic Setup says)Makes a key in the format, if the service has none yet, and stores it with the service together with the time it was made. The licence status is Active. The downloads note is kept with it. Pressing Create again keeps the existing key.
SuspendSets the licence status to Suspended.
UnsuspendSets it back to Active.
TerminateSets it to Terminated.

The key is never deleted by these commands. There is no password, no domain name and no username needed.

Where the key shows

  • Admin: on the service page the card shows the key and the status. Before it exists the card says No licence key has been made yet. It is made when the order is accepted.
  • Client area: the client's service page shows a Licence key card with the key (easy to copy), the status and the downloads note.
  • E-mail: the merge fields {$service_licence_key} and {$service_downloads_note} are filled for services that have a key. The default welcome e-mails do not contain them, so add them yourself. In Setup → Email Templates open the welcome e-mail your product uses (set on the product's Details tab as Welcome Email), and add for example:
{if $service_licence_key}
<p>Your licence key: <b>{$service_licence_key}</b></p>
<p>{$service_downloads_note}</p>
{/if}

See Settings for e-mail templates and merge fields.

Typical workflow

  1. You make a product "My Software, 1 year" with a recurring price and choose Automatic Release with the format MYSW-XXXX-XXXX-XXXX.
  2. A client orders and pays. The key is made at once (when Automatic Setup is on payment) and the welcome e-mail carries it.
  3. The client can open the service at any time and copy the key and read the downloads note.
  4. If the renewal is not paid, the cron suspends the service and the licence status shows Suspended to the client. When it is paid, the status is Active again.
  5. When you terminate the service the status becomes Terminated.

Testing

Order the product as a test client, pay the invoice with Add Payment, and open the service in the admin area: the key must be there. Open the client area as that client (Login as client on the client page) and look for the Licence key card. Then try Suspend and Unsuspend and watch the status.

Troubleshooting

  • No key after the payment: the product's Automatic Setup is on manual or never, or the module is not chosen on the product. Press Create on the service page.
  • The e-mail has no key: the template does not contain {$service_licence_key}; add it as shown above.
  • A different key than you expected: the format characters are case-sensitive (X, 9, a).
  • The module calls no server, so the Module Log shows only the local actions (module autorelease).

More in Troubleshooting.

Was this helpful?

Updated 2026-11-03