Marketplace Events | Pandium Docs

Emitted Events from the Pandium Marketplace

In addition to the multiple customization options and ways of implementing the Pandium Marketplace, we also support emitted events from the iframe that you can use to trigger additional custom actions or navigate outside of the iframe.

The Pandium Marketplace iframe communicates with your parent application using the browser's window.postMessage() API. When a user performs an action inside the iframe (installing, saving, navigating, etc.), Pandium sends a structured message to the parent window. Your application listens for these events using window.addEventListener('message', ...) and can respond accordingly. For example, closing a modal, navigating to another page, or showing a confirmation.

Each message contains a message field with the event name, and depending on the event, a tenant object with the tenant and integration IDs.

Example Listener

window.addEventListener('message', (event) => {
    // Always verify the origin in production
    // if (event.origin !== 'https://your-pandium-domain.com') return

const { message, tenant } = event.data

switch (message) {
        case 'pandium-install-cancel':
            console.log('User cancelled install for tenant:', tenant?.id)
            closeModal()
            break
        case 'pandium-save-sync':
            console.log('User saved and synced tenant:', tenant?.name)
            showSuccessNotification()
            break
        case 'pandium-content-height-change':
            // Resize the iframe to match content
            const iframe = document.getElementById('pandium-iframe')
            iframe.style.height = event.data.height + 'px'
            break
        default:
            console.log('Pandium event:', message, tenant)
    }
})

Tenant Payload Shape (When Included)

{
  "message": "pandium-install-save",
  "tenant": {
    "id": 123,
    "name": "tenant-name",
    "integration": {
      "id": 456,
      "name": "integration-name"
    }
  }
}

Supported Events

Event Screen Trigger Payload
pandium-install-cancel Install flow Cancel new install (deletes tenant) { tenant }
pandium-install-next Install flow Next button — advance to next tab { tenant }
pandium-install-back Install flow Back button — go to previous tab { tenant }
pandium-install-save Install flow Save without syncing { tenant }
pandium-save-sync Install flow Save & Sync Now — succeeded { tenant }
pandium-save-sync-error Install flow Save + Sync Now — sync failed { tenant }
pandium-connection-settings-cancel Connection Settings Settings Cancelled { tenant }
pandium-connection-settings-save Connection Settings Settings Saved { tenant }
pandium-uninstall Tenant Settings Uninstall Confirmed { tenant }
pandium-uninstall-cancel Tenant Settings Uninstall Cancelled { tenant }
pandium-connector-connect Connector auth Connector Connected { tenant }
pandium-connector-connect-cancel Connector auth Connect Cancelled { tenant }
pandium-connector-connect-next Connector auth Next in connect flow { tenant }
pandium-connector-connect-back Connector auth Back in connect flow { tenant }
pandium-connector-disconnect Connector Auth Connector Disconnected { tenant }
pandium-connector-disconnect-cancel Connector Auth Disconnect Cancelled { tenant }
pandium-content-height-change All iFrame content resizes { height }
pandium-connect-app Integration Show 'Connect' button clicked
pandium-all-integrations Integration Show "All Integrations" nav