Journey AI · a story told scene by scene

Manage web and mobile content together.

Journey AI removes problems web teams know well: a half-finished page in front of visitors, a campaign that has to start at midnight, form messages that never arrive… Scroll down: next to each problem you'll see how Journey AI solves it.

Start with the first scene
Red: the problemBlue: the solution with Journey AIEach problem appears next to its solution.
Three parts

Why does changing a headline take three days?

Marketing writes the text, a developer changes the code and someone else handles the release. Even a small fix turns into a long email chain.

Problem · today
Inbox — "Home page headline" (14 replies)
EditorMon 09:12Can you change the headline on the home page? Just one sentence.
DeveloperWed 16:40I've put it in the next release. No release date yet.
EditorUrgentThe site still shows the old headline. The campaign started today.
Up nextWhat if the page is one solid block of text with everything copied into it?
With Journey AI

Everyone does their own job in their own place.

Journey AI is made of three parts. The editor prepares content in the admin panel. The Delivery API serves published content as JSON, by language and path. The Next.js site turns that JSON into components.

A headline is a content field you edit in the panel. You don't have to wait for a software release to change it.

With Journey AI
Admin panelThe editor prepares content; a user with approval permission publishes it.
Delivery APIServes published content as JSON, by language and path.
Next.js siteTurns the component tree in the JSON into React components.
Preview site
Shows preview copies and uses no cache.
Live site
Shows only what's published.
Component tree

Do you have to change a menu link on every page one by one?

If every page is one big text box, the header and menu sit on each page as a separate copy. Forget to update one and the pages show different menus.

Problem · copies
Menu: About · Products · Contact
Home
Menu: About · Products · Contact
Products
Menu: About · Contact
Careers · old menu
Menu: About · Products · Contact
About
Menu: Products · Contact
Press · old menu
Menu: About · Products · Contact
Contact
The same menu sits on every page as a separate copy2 pages out of date
Up nextWhat if visitors see the page half-finished while you edit the tree?
With Journey AI

A page is a tree of nested components.

Hero, Section and Text Block are building blocks you can nest as deep as you like. The header, footer and navigation are kept in a template. A change approved in the template appears on every page that uses it.

Recurring content such as news, announcements and team members is managed with lists.

With Journey AI
Component tree · tap a part
Hero is the component at the top of the page. Its content belongs to this page only; the same component can carry different text on another page.
Preview copy

Visitors see the page before it's finished.

If every save goes straight to the live site, half sentences and placeholder text stay in front of everyone.

Problem · live
www.ornek.com/en/aboutLIVE

HEADLINE GOES HERE

Lorem ipsum dolor sit amet, consectetur adipiscing… Örnek Şirket helps organisations run their web

image-final-v3.jpg failed to load
Visitors are seeing this version right now
Up nextSo who approves that copy? Anyone?
With Journey AI

The live site never shows a half-finished change.

On a published page, the first time you press Save a preview copy is created. Every later save is written to that copy; the published record stays as it is.

When the change is approved, the two records swap: the approved copy goes live and the old record becomes the new preview copy. You can try it with the button in the scene.

With Journey AI
Published · live site
Record A
About us

We have stood by organisations for more than twenty years.

Preview copy · preview site
Record B · being edited
About us

Örnek Şirket helps organisations manage their websites quickly and securely.

Record B is the preview copy created the first time Save was pressed. The live site still shows Record A.
Approval

Anyone can press the publish button.

An unchecked price, a wrong date or a typo in a campaign headline is already live by the time someone notices.

Problem · unchecked
www.ornek.com/campaign
November deals: 50% dicount on all plans
Last day: November 31
PublishIt's live, but nobody reviewed it.
Up nextWhat if the approved campaign has to go live at exactly midnight?
With Journey AI

Publishing needs its own permission.

The editor sends the page for review with Send for approval. A user with approval permission sees the changes colour-coded, then clicks Approve or Reject.

A rejected page moves to Changes requested; the editor fixes it and sends it again. You can try both decisions in the scene.

With Journey AI
DraftAwaiting approvalApprovedPublishedUnpublishedChanges requested
Approver
a user with approval permission
The editor clicked Send for approval
Text Block · changed– Fill in the form with your questions; we'll get back to you within one business day.+ Fill in the form with your questions; our team will get back to you as soon as possible.
The approver decides. Changes are shown colour-coded.
Scheduled publishing

The campaign starts at 00:00. Nobody on the team is awake.

Someone has to set an alarm and publish the page at midnight. At the end of the month, someone also has to remember to take it down.

Problem · 23:58
Saturday, 31 October
23:58
Alarm · 00:00Put the November campaign live. Don't forget!
Reminder · 30 NovemberTake the campaign page down, redirect visitors.
Up nextWhat if the campaign has no English page at all?
With Journey AI

The campaign goes live at midnight on its own.

In the Publishing section of the page settings you enter the Publish Start and Publish End dates. A task that runs every minute publishes the approved page on its start date and takes it down on its end date.

The Redirect when publishing ends option sends visitors who arrive after publishing ends to another address. The dates also show up in the Agenda. The live site shows the change within 5 minutes at most.

With Journey AI
November CampaignApproved
Page settings · Publishing
Publish Start
1 Nov 2026, 00:00
Publish EndSet an end date
30 Nov 2026, 23:59
1 November30 November
RedirectRedirect when publishing ends → /kampanyalar
31 Oct, 23:59
The task runs every minute. The start date hasn't arrived yet; the page is approved and waiting.
Languages

The page went live without its translation.

The Turkish page is ready, but the English one was forgotten. A visitor who clicks EN in the language switcher sees an error page and leaves the site.

Problem · /en
www.ornek.com/en/…TREN
404
Page not found
The English version of this page was never created. Nobody noticed.
Up nextWhat if the page is ready in every language but nobody can find it?
With Journey AI

A missing language is spotted before publishing.

If a page has no variant in an active site language, the panel shows the Missing language warning. From the Language Variants section you create a new variant: With components copies every component, Without components opens an empty page.

Once the translation is done, you can send all of the page's languages for approval in one go.

With Journey AI
Contact · Language VariantsMissing language
TRContactPublished
ENNo variant in this languageMissing
Create New Language Variant · EN
The panel warns because an active site language has no variant.
SEO and GEO

Your page shows up as "Untitled" in search results.

The page has no description and no structured data. Someone who asks an AI assistant about your company gets a vague answer, too.

Problem · invisible
www.ornek.com › page
Untitled
No information is available for this page.
What does Örnek Şirket do?
I couldn't find reliable information about this company.
Up nextWhat if a visitor found you and filled in the form, but the message never arrived?
With Journey AI

Every page has three layers for each language.

Meta carries what appears in search results, Schema (JSON-LD) the page type, and Entity (GEO) the description AI systems read. These layers are published independently of page approval.

AI (OpenAI or Gemini) can suggest content for all three layers. Its output always stays a suggestion and never blocks publishing.

With Journey AI
Home · SEOTREN
Meta Title
Örnek Şirket | Digital solutions
AI suggestion · Meta Description
A suggestion is ready. Use it or ignore it.
The suggestion never blocks publishing.
Meta · publishedSchema · draftGEO · draftLayers are published independently of page approval.
Forms

"Your message has been received." Received by whom?

The form thanks the visitor, but the message goes to an address nobody checks anymore. On top of that, bots fill the form with spam.

Problem · lost message
Contact form
We'd like a quote…
Your message has been received.
?
old-address@… · nobody reads it
Spam submissions pile up
asdf asdf · bit.ly/xxxx · "cheap deals"
qwerty · http://… · "SEO services"
Up nextWhat if the developer wiring all this to the site has to guess how the content is structured?
With Journey AI

Every submission goes through a defined flow.

Submissions collect in the Inbox and can be exported to Excel. The Submission Flow is made of email and webhook steps. Steps can run on a condition, and there are 16 themes for emails.

Against spam you can use reCAPTCHA or Cloudflare Turnstile. You can start from ready-made forms: Contact, Newsletter and Meeting Request.

With Journey AI
Contact Form · Submission FlowTurnstile on
Form submitted · spam checkreCAPTCHA / Turnstile
Inbox12 submissions
Email · Mail to teamone of 16 themes
Conditional step · Webhookexample condition
Export to Excel
Every submission lands in the Inbox first, then the steps of the flow run.
For developers

You have to guess how the content is structured.

The fields aren't documented and every page comes back with a different structure. When your guess is wrong, the site shows a blank white screen.

Problem · guesswork
const res = await fetch(url).then(r => r.json());
// what was the field called? content or blocks?
const title = res.content.blocks[0].text;
TypeError: Cannot read properties of undefined (reading 'blocks')
www.ornek.com/kampanya · blank screen
Every problem solved. Now see them all together.
With Journey AI

The Delivery API gives you a clear component tree.

Published content arrives as JSON, by language and path. You map the component slugs from the panel to your own components. An unmatched slug shows a blue debug card on the site, so you see what's missing right away.

The preview site uses no cache. The live site updates with ISR (300 s) and with revalidation triggered by the panel; you can also do it by hand with Refresh Cache.

With Journey AI
GET /api/v1/page/detail/tr?path=kampanya
{
  "data": {
    "title": "Kasım fırsatları",
    "path": "kampanya",
    "components": [{
      "uniqueId": 4711,
      "slug": "hero-banner",
      "children": [{
        "slug": "title",
        "data": "Kasım fırsatları"
      }]
    }, {
      "slug": "geri-sayim"
    }]
  }
}
Example response
Component mapping · slug → component
hero-bannerHeroBanner
markdown-contentMarkdownContent
formFormContainer
geri-sayimno match
Blue debug card
slug: "geri-sayim" · all fields shown here
Preview: no cacheLive: ISR 300 s+ revalidation from the panelRefresh Cache

All part of the same system.

Each solution you just saw comes from a part of Journey AI. Put them together and you get a system in three parts.

Delivery API

Serves published content as JSON, by language and path.

Three partsEveryone in their own place

Next.js site

Turns the component tree into its own components. It runs as two separate sites: one for preview, one live.

Component mappingISR and Refresh Cache