Connect Iterable

Link Jule to your Iterable workspace with an API key. Once connected, every widget submission updates Iterable users and fires custom events in real time.

Get your Iterable API key

In Iterable, go to Settings → API Keys → Create API Key. Choose type Server-Side and enable these scopes:

  • users.read — lets Jule look up existing users before updating.
  • users.update — required to create and update user profiles.
  • events.track — required for the Track Custom Event action, page-level event fires, and coupon lifecycle events.
  • lists.subscribe — required if any of your widgets subscribe users to Iterable lists.
Keep this key private. Jule encrypts it at rest with AES-256-GCM. Never expose a server-side Iterable key in client-side code.

Add the key to Jule

Go to Settings → Integrations in Jule. Paste your API key into the Iterable API Key field and click Save. The status badge turns green (Active) once Jule successfully validates the key against Iterable.

HMAC Secret (recommended)

The HMAC Secret adds cryptographic verification to your hosted preference center. When a subscriber clicks your Iterable unsubscribe link, Jule verifies the identity hash before displaying the preference page — preventing spoofed unsubscribes.

  1. In Iterable, go to Settings → Hosted Unsubscribe and copy the HMAC Secret.
  2. Paste it into Settings → Integrations → HMAC Secret in Jule and click Save.

Without an HMAC Secret, the preference center falls back to email-only verification — it still works, but identity is weaker.

Hosted Unsubscribe URL

Jule provides a branded, fully-hosted unsubscribe page for each workspace. To activate it:

  1. In Jule, copy the Hosted Unsubscribe URL shown in Settings → Integrations.
  2. In Iterable, go to Settings → Unsubscribe Links and paste the URL as your custom unsubscribe handler.

Subscribers who click Unsubscribe in your Iterable emails will land on your Jule preference center instead of the generic Iterable page — letting them manage channel preferences rather than opting out entirely.

Verify the connection

Submit a test response from any published widget. Open Iterable and check:

  • Users — the test email should appear as a new or updated user.
  • Activity → Custom Events — if the widget has the Track Custom Event action enabled, an event with your configured name (default form_submission) should be visible with the mapped fields as properties.