WP Manifestindependent plugin directory
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.zip

A 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 EXCURS code.
  • 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.log for 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

  1. Copy amelia-multi-sync.php into wp-content/plugins/amelia-multi-sync/ (or zip the folder and upload it via the WordPress admin Plugins screen).
  2. Activate Amelia ⇄ Multi Sync from the WordPress Plugins page.
  3. 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)
  4. 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_settings WordPress option and explicitly set to autoload = no since they include secrets.
  • The cron hook ami_multi_sync_cron runs on a custom every_15_minutes schedule, 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 embedded MultiAPI client for authenticating with and calling the MULTI API.