Skip to main content

Landing Pages & Forms

A landing page is a public page you build in Joryio - in the same editor as your emails - and publish to its own address. Put a form on it and every submission updates a person's profile, subscribes them to lists and records an event that segments, funnels, triggered campaigns and journeys can use like any other.

Open Landing pages in the sidebar. The list works like the campaign and segment lists: All, Published, Drafts and Templates tabs, a search box, a tag filter and More filters (created by, last edited by), a Columns picker (views, submissions, conversion rate, published, created, last edited and by whom), a click on any column heading to sort the whole list, and a row menu with Edit, Open live page, Copy link, Duplicate, Save as template, History and Delete. The Address and domain button opens Settings -> Landing pages, where the Pages address and the Your domain card live. Tags are set in the page's Page & sharing section.

The address a page gets​

Every page of a workspace is served at:

https://<workspace id>.eu1.jrypages.com/<slug>

The first label is the workspace's own id - opaque, permanent, never chosen or renamed. The slug is unique in the workspace and derived from the page name unless you set one in Page settings. To serve pages on a subdomain you own, see Use your own domain.

Creating a page​

Select New page, or open the Templates tab and choose Use template on one of the five built-in templates - Newsletter signup, Event registration, Product waitlist, Giveaway, Coming soon - or on a template of your own (any page can be saved as a template from its menu).

A page opens as a hub with a rail on the left, grouped in the order you work: Build (Design, Form fields, After submit), Settings (Page & sharing, Tracking) and Results (Report, Submissions). The header shows the name, a Draft or Live pill, the page's address and the actions (Preview, Copy preview link, Save, Publish, Unpublish once live). A rail item with a problem gets an amber dot and a hint, and the rail ends with "N items need attention before publishing" or "Ready to publish". Nothing is saved until you select Save or Publish.

The Design card asks how you want to build the page:

  • Create with Drag & drop - the block editor: Hero, Section, Two columns and Three features under Page, the form blocks under Form.
  • Create with HTML - write or paste the markup yourself.
  • Or describe it and let the AI design it - a brief, optionally what the page is for, a posture (Bold, Editorial, Minimal, Product, Event) and how much brand colour to use. The AI plans the sections and writes the copy in your Brand Voice on your Brand Kit.

The editor opens full screen with Design, Form and Preview tabs; Done keeps the edits, Cancel discards them. Inside it, Tell the AI what to change on this page revises the whole document; a revision that drops the form or adds a script is refused. Direction follows the language: any right-to-left language (Hebrew, Arabic, Persian, Urdu and others) renders right-to-left, and the picker offers every language, not only the dashboard's.

Forms​

Drag a Signup form or single fields from the Form category: Email, Phone, Text field, Dropdown, Radio choice, Consent checkbox, Hidden field, Submit button. Each field has a Field key; the Form fields section says what a submission does with each: one row per field with its key, type and required pills, and the mapping beside it. A consent box with no subscription list shows an amber note with a Create a list link, because checking it would subscribe nobody.

FieldOn submit
Email, PhoneIdentifies the person and becomes their email or phone. A form needs one of them, at most one of each. A phone field can also subscribe a list (SMS).
Text, Number, Date, Dropdown, ChoiceSaves the answer to the attribute you pick or create.
CheckboxWhen ticked, subscribes the person to the list you choose; can also store yes/no as an attribute. Never pre-checked, never required when it subscribes a list.
CheckboxesSaves the ticked values as a list attribute.
SubscriptionsSubscribes the person to the lists the design offers.
HiddenSaves a fixed value, a UTM parameter, the referrer or the page path to an attribute.

After submit has two cards. What the visitor sees shows a message in place (with a live preview) or goes to a URL (https only). What gets recorded states that every submission records Landing Page Form Submitted, lets you fire an event of your own (Signed Up For Webinar, with the submitted values as properties) and set fixed attributes as attribute / value rows (lead_source = spring_sale). Both can also be set on the submit button in the design.

Double opt-in. A list that requires double opt-in is never subscribed straight from the form: the person is written, the event recorded, the page says to check the inbox, and one email in the page's language carries a confirmation link valid for seven days. The submission row shows those lists as pending; the review says which lists will ask.

Bot check. Turn on Bot check (Cloudflare Turnstile) to show a small widget before the submit button; a submission without a valid token is refused. Every form also carries a honeypot and a two-second minimum dwell.

Publishing and preview links​

Publish freezes the current design and serves it at the page's address, shown as Live at. Later edits are a draft until you select Publish changes. Unpublish takes the page down; unpublish before deleting, and the submissions stay.

Preview renders the current draft as the live page would look. Copy preview link gives a link to the draft that opens without a Joryio login - share it with reviewers; it is never cached or indexed and stops working when the page is unpublished.

Events and journeys​

Two platform events come with every page:

  • Landing Page Viewed - a known person opened the page.
  • Landing Page Form Submitted - a form was submitted and written to this person, with pageSlug, pageName, the field keys, listsSubscribed, referrer and UTM values, and the form's own email and phone with phoneUpdated when the form's phone differed from the person's (true when the profile now has it, false when it kept its own).

A form fills in the email and phone only when the profile has none: an anonymous visitor never changes the email or phone of an existing profile. A person who arrived from a link in your message (the link names them) can update their phone; the email is never changed by a form.

Both appear in every event picker. To start a journey from a submit, create a journey with the trigger send type, choose Event tracked and pick Landing Page Form Submitted; add a condition on pageSlug when you want one page only.

To link to a page from an email, SMS or WhatsApp message, use the landing_page_url Liquid filter with the slug:

{{ 'spring-sale' | landing_page_url }}
{{ 'spring-sale' | landing_page_url: 'utm_campaign=spring' }}

The link carries the recipient's token, so the view and the submission are written to that person even before they type an email.

The Web SDK and personalisation​

Two switches in Page settings:

  • Track visitors with the Joryio Web SDK (sdkEnabled) loads the workspace's Web SDK on the live page; it needs an active Web app under Settings > Apps. Every visitor gets a session and events, Landing Page Viewed is tracked for everyone, and a submitted form identifies the visitor, so what they did before merges into the profile. In-app messages for the Web app can show on the page.
  • Personalize for known visitors (personalized) renders the page's Liquid for a visitor who arrives from a Joryio message, as a message would: {{ user.firstName | default: "there" }}, attributes, landing_page_url. Everyone else sees the defaults. Personal renders are never cached.

Without the SDK, Landing Page Viewed is written only for visitors who arrive through a message link; the report still counts every view.

The report​

Before publishing, Report explains that counting starts at publish and offers a Publish page button. On a published page it shows views, submissions and conversion rate (each with its definition) for the last 7 days, 30 days or since publish, first-time visitors in the range, lifetime views and submissions, and a stacked bar per day (views, submissions on top; days in the workspace timezone). Submissions is a table (person, their answers, list opt-in, submitted at) with Export CSV (every submission: each answer, mapped to an attribute or not, the lists, referrer and UTM values) and Segment these people, which opens a new segment on the submit event narrowed to this page; personal data is masked unless you hold pii:view.

Launch Review for pages​

Before you publish lists what the review found, in the same shape as the campaign and journey Launch Review. Blocks publishing findings stop a publish until fixed: an empty page, fields with no form in the markup, no email or phone field, a required consent box, a redirect that is not https. Suggestions never block: no H1, a consent box with no text next to it, lists that will ask for a confirmation, missing browser title or description, http links or images, a page over 300 KB, and the accessibility findings below.

Accessibility​

Every field needs a label (or an aria-label) and every image alt text - the review flags each. The page's language sets the document language and direction for screen readers. Keep the consent text next to the box - it is what the person agrees to.

Use your own domain​

Instead of the pages address, a workspace can serve its pages on a subdomain it owns - https://pages.yourbrand.com/<slug>. This needs landing_pages:publish. In Settings -> Landing pages, in the Your domain card:

  1. Add the subdomain - one you own, such as pages.yourbrand.com (not a root domain, never a Joryio domain). Select Add domain; the domain appears as Pending with the DNS records to set.
  2. Add the DNS records at your DNS provider: a CNAME from the subdomain to the target shown, plus the certificate validation TXT records.
  3. Verify. Once the CNAME resolves, the certificate is issued within a few minutes and the status becomes Active; pending domains are also re-checked every five minutes. A validation that times out becomes Failed with the reason: fix the records and verify again, or remove and re-add the domain.

While the domain is active, every link Joryio writes - public URL, preview link, landing_page_url in messages - uses it; the pages address keeps serving the same pages. Remove turns the links back at once; the pages stay published.

A workspace has at most one domain, and an organisation has one landing-page domain across its workspaces by default. The card shows how many are used; at the limit it reads "contact us to add more" - ask us to raise the limit for more workspaces or brands.

Permissions​

  • landing_pages:read - view pages, forms, submissions and reports.
  • landing_pages:write - create and edit pages and forms, use AI design and revise.
  • landing_pages:publish - publish, take down, manage your own domain (admins and owners).

See Roles and permissions and, for the API, the Landing Pages API.