QuillJet

What syncs where

When a Webflow event fires, QuillJet builds one contact from it and pushes that contact into your email tool. This page shows exactly what goes into that contact: where the email comes from, where the name comes from, which order fields are added for you, and how your own field mappings fit in.

The contact QuillJet builds

Every sync produces one contact made of:

  • An email address (required: no email means nothing is synced).
  • A first and last name when QuillJet can find or derive one.
  • Fields: any order fields added automatically, plus whatever you map yourself, plus any constants.
  • Tags from the rule.

That contact is then upserted into the list or audience your sync rule points to. See subscribers and contacts for what it looks like once it lands.

Where the email comes from

QuillJet looks for the email in the known locations for each Webflow trigger type first: the order customer's email on ecommerce orders, and common email fields on form submissions and CMS items. If none of those match (Webflow form fields can use any label), QuillJet scans the event's values and takes the first email-shaped string it finds.

If no email can be found anywhere in the event, the delivery is marked failed with no_email_in_payload. Nothing is sent, and the miss is visible in the event log.

Where the name comes from

QuillJet resolves the name in this order:

  1. Explicit first and last fields. QuillJet recognizes name fields in several languages (for example firstname, voornaam, prenom for the first name, and lastname, achternaam, nom for the last name).
  2. A known full-name field, such as the order's customer full name, split into first and last.
  3. A scan for a name-ish field (name, fullname, naam, and similar), also split into first and last.

When only a single name value is available, QuillJet splits it: the first word becomes the first name and the rest becomes the last name. If nothing name-like exists, the contact simply has no name, which is fine.

Order fields added automatically

For ecommerce orders, QuillJet adds two order fields to the contact automatically when they are present in the event:

  • ORDER_ID, from the order's id.
  • ORDER_TOTAL, from the amount the customer paid (or the net amount when that is what the event carries).

You do not need to map these yourself. If you want them under different names, add your own mapping (see below): explicit mappings override the automatic name, and constants override everything.

The field-by-field map

This table shows the standard sources QuillJet reads and what each becomes on the contact. Form and CMS fields use whatever labels your site uses, so those you map yourself in the rule editor.

Webflow source path What it becomes on the contact
customerInfo.email The contact's email (matched, deduplicated)
customerInfo.fullName Split into first name and last name
orderId ORDER_ID field (added automatically when present)
customerPaid.value or netAmount.value ORDER_TOTAL field (added automatically when present)
Form fields under data.* Whatever target field you map them to
CMS fields under fieldData.* Whatever target field you map them to

Tip: Constants always win, and an explicit mapping to a target overrides the automatically added value for that target. Use this when you want full control over a field's name or value.

Form submissions and CMS items

Ecommerce orders have a predictable shape, but form submissions and CMS items do not: their fields carry whatever labels you gave them in Webflow. QuillJet still finds the email and name using the recognition and scanning described above, and everything else is up to your mappings.

In the rule editor, the source picker lists the actual fields from a real event so you can point each one at the right merge field, attribute, or custom field in your email tool. Add conditions if you only want some submissions or items to sync (for example, only orders above a certain total).