manifest / integrations / amelia-multi-sync
Amelia ⇄ Multi Sync
Two-way integration between Amelia and MULTI (Setsails) with settings page, service mappings, webhook, and cron sync.
by sandun / Encanto IT Solutions · github.com/sandunwijerathne/amelia-multi-sync
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sandunwijerathne/amelia-multi-sync/archive/refs/heads/main.zipA WordPress plugin that provides two-way synchronization between the Amelia booking plugin and the MULTI (Setsails) tour reservation system.
What it does
- Amelia → MULTI (webhook): When a booking is created in Amelia, a REST webhook pushes the reservation into MULTI, mapping the Amelia service to the correct MULTI
EXCURScode. - MULTI → Amelia (cron): Every 15 minutes (configurable), a cron job pulls the latest reservations from MULTI and creates matching appointments in Amelia via its API.
- Settings page: A WordPress admin screen (
Settings → Amelia ⇄ Multi Sync) for configuring MULTI OAuth credentials, the Amelia API endpoint/key, the cron fetch limit, and service-to-EXCURS mappings. - Manual sync trigger: A "Run MULTI → Amelia sync now" button for on-demand syncing outside the cron schedule.
- Webhook logging: Raw webhook payloads are logged to
wp-content/uploads/amelia-webhook.logfor diagnostics.
Requirements
- WordPress with the Amelia booking plugin installed and active
- PHP 7.4+
- A MULTI (Setsails) account with OAuth client credentials (
client_id/client_secret)
Installation
- Copy
amelia-multi-sync.phpintowp-content/plugins/amelia-multi-sync/(or zip the folder and upload it via the WordPress admin Plugins screen). - Activate Amelia ⇄ Multi Sync from the WordPress Plugins page.
- Go to Settings → Amelia ⇄ Multi Sync and configure:
- MULTI Client ID / Client Secret
- MULTI Base URL (defaults to
https://api.setsails.multi.software) - Amelia API URL and API Key
- Cron fetch limit (how many recent MULTI reservations to pull per run)
- Service ↔ EXCURS mappings (Amelia service ID to MULTI EXCURS code)
- Point Amelia's booking-created webhook at:
https://<your-site>/wp-json/ami/v1/booking-created
Configuration Notes
- Credentials are stored in the
ami_multi_settingsWordPress option and explicitly set toautoload = nosince they include secrets. - The cron hook
ami_multi_sync_cronruns on a customevery_15_minutesschedule, registered on plugin activation and cleared on deactivation. - If required settings (client ID/secret, base URL, Amelia URL/key) are missing, the cron sync aborts and logs a warning instead of failing silently.
File Structure
amelia-multi-sync.php— the entire plugin: settings UI, webhook handler, cron sync logic, and an embeddedMultiAPIclient for authenticating with and calling the MULTI API.