Branded image templates with each recipient's name, photo and personal code (QR or code box).
Send them from the inbox, put them in a campaign's image header, or generate a whole list as a ZIP.
This is a template/layout tool — not an AI image generator.
1. Copy this folder to addons/personalized-image/.
2. Platform admin → Add-ons → enable *Personalized Image* (runs the migrations), or run php artisan migrate.
3. Make sure the cron line for php artisan schedule:run is active (batches render in mesvilo:work).
Requirements: PHP GD with FreeType (standard on most hosts) and ZipArchive. No external services.
{first_name}, {last_name}, {name}, {phone}, {email}, {code}, {date}, {field.your_field}),*Photo* (uploaded per contact from the inbox card, otherwise an image URL stored in a contact field, otherwise initials)
and *Code* (QR code or styled code box) layers. Drag to move, use the corner handle to resize. The live preview is the
exact server render for the chosen contact.
rendered while sending and given to Meta through a signed public link that expires after 7 days.
index.csv).{code} is a stable, unique code per template + contact (optional prefix, e.g. INV-7K3Q9P).
Files are stored in storage/app/private/personalized-image/<workspace_id>/. Cached renders older than 8 days are pruned automatically.
Fonts: Inter (OFL 1.1) and Plus Jakarta Sans (OFL 1.1) — licences in resources/fonts/.
Other add-ons can call app(\Addons\PersonalizedImage\Services\Renderer::class)->publicUrl($template, $contact).
Mesvilo core documentation: mesvilo.com/docs · Support: mesvilo.com/contact