Frequently asked questions
The most common questions about the publishing workflow, pages, users and the Delivery API.
General
Journey AI is a multilingual content management platform for managing the pages, menus, forms, images and SEO data of corporate sites without writing code. Content isn't stored as HTML but as component trees. Every change goes through approval and can be seen on a separate preview site before it goes live.
The system has three parts:
- Admin panel: The web app where editors, users with approval permission and administrators work.
- API: Stores content, applies business rules and serves it to the sites.
- Site template: Turns the content into the web pages visitors see.
Each installation has its own API, database, file storage and two sites (preview and live). No data is shared between installations.
Details: Introduction
Both are separate copies of the same site code; only the content they show and their caching differ.
- The preview site shows the pages' preview copies and doesn't use a cache. It's the site you see on the right in the component editor. The Inspector is only enabled here.
- The live site shows only published content and keeps pages in its cache. Pages are refreshed in the background at least every five minutes, and also immediately when the panel requests it on save.
Because the preview isn't an imitation, you see how a change will look live before it's approved.
Details: Architecture
There's no built-in "Approver" role; Journey AI has no fixed roles. Permissions are given to roles, and roles are assigned to users. What a user can do is the combination of the permissions in their active roles.
"Approver" is just a name for a user who has the Approve permission in the Page management group. You can create your own role with that name if you like. Sending for approval and approving are separate permissions, so you can give them to different people.
Details: Users and roles
Each status shows where the page is in the publishing workflow and who takes the next step:
- Draft: A page that has never been published and is being edited. The editor moves it on with Send for approval.
- Awaiting approval: Waiting for a user with approval permission to choose Approve or Reject.
- Awaiting edits: The change was rejected; the page shows in the Rejected tab. The editor fixes it and sends it again.
- Approved: Approved, but the start date is in the future; the page is scheduled. The system publishes it when the date arrives.
- Live: Visible on the live site. If there's an end date, the system unpublishes it once the date passes.
- Unpublished: Taken off the live site. If a redirect is set, visitors go to the target address.
If a live page has a pending change, it still shows as a single row in the page list; the note under the status badge says whether the change is in approval, rejected or not sent yet.
Details: Publishing workflow
No, there's no instant e-mail for approval requests or rejections. When a page is sent for approval, it appears under the bell in the panel and in the Notifications list as Sent for approval. This notification goes to everyone with the page list permission, not only to approvers.
You can see the whole approval queue in the Page awaiting approval row of the Waiting for you card on the Dashboard screen. To also hear about it by e-mail, turn on the Daily summary e-mail switch at the top right of the Notifications screen. The switch is off by default; the summary arrives roughly every 24 hours and has no fixed sending time.
Details: Agenda and notifications
Pages and publishing
No. Every live page has two records: the live record the live site shows, and the preview copy you edit.
- The first Save creates the preview copy and the editor switches to it. The live record doesn't change.
- Later saves also go to the preview copy. The preview site shows this copy, so you see the result right away.
- When the change is approved, the two records swap: the approved copy becomes the live record and shows on the live site.
Details: Publishing workflow
A live page has no separate send step, so the button doesn't appear. As soon as you click Save, the preview copy goes to approval and the page becomes Awaiting approval. Users with approval permission see the work in the panel and in notifications.
To see the changes you sent, click Review Changes in the component editor; added, deleted, changed and moved components are marked in color. Send for approval only appears in the settings of pages that have never been published.
Details: 5.2 · Publishing
Pending work shows up in three places: the Waiting for you card on the Dashboard screen, the Awaiting approval tab on the Pages screen, and notifications. Before deciding, open Review Changes in the page's component editor; component differences and Page Field Changes appear together. The Side by Side tab shows the preview and the live page next to each other.
- To approve: In the Review Changes window, click Approve and publish. If the start date is in the future, the button shows as Approve and schedule. A progress window then shows the approval, cache refresh and publishing step by step.
- To reject: In the Pages › Awaiting approval tab, click the Reject button on the row and choose Reject in the confirmation window. The page becomes Awaiting edits and goes back to the editor; its content isn't deleted.
The reject window has no reason field; send your feedback to the editor separately.
Details: 5.2 · Publishing
No, a rejected page doesn't return to approval on save. You need to send it again:
- On the Pages screen, open the Rejected tab and click Go to fix on the row.
- Make the changes and click Save.
- Click Send for approval again in the page settings.
The page goes back to Awaiting approval and joins the queue of users with approval permission.
Details: 5.2 · Publishing
Dates only work on approved pages. A page in Draft or Awaiting approval doesn't go live even after its date passes. Check the page's status first.
A background task that runs every minute publishes approved pages whose start date has arrived. You can track scheduled pages with the Scheduled filter on the Pages screen or on the Agenda screen.
Details: Publishing workflow
If the approved copy changes, its approval is dropped and the page must be approved again. So if you use a start or end date, set the dates before you send the page for approval; dates take effect after approval.
Changing the date of a live page is also a content change. The new date is written to the preview copy and goes live after approval.
Details: 5.2 · Publishing
Yes. When more than one language of the page is ready to send, the Send all languages button appears in the page settings. It sends all ready languages for approval in one go. You can also send each language separately as it becomes ready.
Approval, however, is done separately for each language. This way the approver reviews each language's changes one by one.
Details: 5.2 · Publishing
Yes. The redirect only works if there's an end date; without one, the panel shows a warning. In the page settings:
- In the Publishing section, turn on Set end date in the Publish End field and enter the date.
- In the Redirect section, turn on Redirect when publishing ends.
- Enter the address visitors should go to in the Target field and save.
The page shows its own content until the end date, then redirects visitors to the target. Publishing dates take effect after approval, so make these settings before you send the page for approval.
Details: 5.2 · Publishing
Language, Page, Adding components and Publishing are required. Template, List and Form are optional.
- If you don't define the target language, you can't prepare templates and forms in it; that's why language comes first.
- If you don't choose a template, the page uses its language's default template.
- Lists and forms are only needed if the page uses them.
- The page doesn't go live until the approval workflow is complete.
Following the steps in this order means everything you need is ready at each step.
Details: Editor documentation
Content
The Template field in the page form only lists approved templates in the page's language. Check two things:
- Is the template Approved? A newly saved template is created as Draft; it must be sent with Send for approval and approved.
- Is the template in the same language as the page? If needed, move the template to another language with Change Language on its card.
If you don't choose a template, the page uses its language's default template; the default template is marked with the Default hint in the list.
Details: 2 · Create a template
Yes. A page stays linked to the template it uses; the template isn't copied into the page. So an approved template change appears on every page that uses that template.
Templates have their own approval workflow (Draft, Awaiting approval, Awaiting changes, Approved), and the preview copy model applies to templates too. Before editing a template, consider which pages will be affected.
Details: 2 · Create a template
No. Changes on the Page layout screen or in the Parent page field in page settings are written to both the live record and the preview copy right away. The page doesn't enter the approval queue, and content changes awaiting approval keep waiting as they are. Subpages move together with the page you move.
Because nobody approves layout changes, check the To be saved summary carefully before saving. The exception is the Order field in the page settings: it's written to the preview copy and goes live once approved. To change the order right away, use the Page layout screen.
Details: Page layout
Moving only changes the page's place in the hierarchy; its path stays the same and no redirect is created. For example, if you move /hakkimizda/ekip under Kurumsal, its address stays /hakkimizda/ekip.
- To change the address, open the Change path window with the chain icon on the card. If you leave Redirect from the old path checked, the old address redirects to the new one. Subpage addresses change too, and this can't be undone. The Fix path button on the Attention card does the same.
- For the top menu: In the standard site template, top menu links come from the menu component in the template, not from the page hierarchy. Edit them on the Templates screen. If you're not sure where your site's menu comes from, ask your development team.
Details: Page layout
You translate a page by creating its variant in that language:
- In the Language Variants section of the Edit Page screen, click Create New Language Variant. The button only appears if there's still a language without a variant for this page.
- Fill in Target Language, Title and Path. The title, path, template and parent page are prefilled from the source page.
- Create with components copies the source page's components and you translate the content. Create without components creates an empty page.
- Click Create, translate the content in the new page's component tree and send it for approval.
Prepare the SEO data for each language separately. If the target language isn't defined on the site yet, add the language first.
Details: Translate a page
SEO is independent of the page's approval workflow and has its own draft and publish cycle. Save only creates a draft. To take it live, click Publish at the top right of the SEO screen; all draft layers go live without waiting for approval.
Each tab shows its layer's state: Published, Draft or Empty. If the meta form has unsaved changes, the button becomes Save and Publish and saves first, then publishes. To discard the draft, use Delete Draft.
Details: SEO and GEO
Publish on a list only publishes the order of the pages. Field values such as Summary go live through each page's own approval workflow.
If you changed an article's summary, the change on that page must be approved. Once it's approved, the new summary shows on the live site.
Details: 3 · Create a list
A form is a Form component whose children are form fields. For it to work live, it must be placed on a page and that page must be live.
If you chose a page while creating the form, the form is added to that page's preview copy; that's why it shows in preview but not live. Send the page with the form for approval. Once the change is approved and the page is live, the form works on the live site.
Details: 4 · Build a form
The file's type or size may be outside the allowed limits. Every uploaded file is checked by type and content; file types that aren't allowed are rejected.
Your administrator sets the limits on the Settings › Media screen, separately for Photo, Video and Document:
- Allowed extensions: If no extension is selected for a type, uploads of that type are turned off.
- Largest file, MB: The limit for a single file. The defaults are 10 MB for photos, 50 MB for videos and 20 MB for documents.
Details: Media management
Users and settings
No, this is expected. Sending for approval and approving are separate permissions, so the person who prepares the work and the person who approves it can be different.
If the user needs to approve pages, assign a role that includes the Approve permission in the Page management group. Approving templates is a separate permission in the Template management group. You can see which permissions the user ends up with in the user details opened with View on their row.
Details: Users and roles
First check that the role is active. A user can only use the permissions in their active roles. An inactive role isn't removed from the user, but its permissions don't count.
The user details show which roles are inactive and therefore not counted. To activate a role again, use the Role Status switch in the Edit Role window. If the role is active, check whether it includes the permission for the action; without it, the server rejects the request without an explanation.
Details: Users and roles
The panel has no "forgot password" flow; the user needs to contact an administrator. The administrator changes the password like this:
- Open the Edit User window with Edit on the user's row.
- Enter a new password in the Password field or create one with Generate password. The password must be at least 8 characters and contain an uppercase letter, a lowercase letter and a digit.
- Pass the password to the user with Copy password and click Save.
Once signed in, users can change their own password with Change Password in the user menu.
Details: Users and roles
A registration request is created for a user who arrives with SSO for the first time; they can't get into the panel until it's approved. To approve the request:
- On the Users screen, open the Registration Requests tab. The badge on the tab shows how many requests are pending.
- Click Approve on the request's row. The Requested Role column shows what the user asked for.
- Choose a role in the window that opens and click Approve and activate.
The tab is only visible to users with the Approve registrations permission. This permission isn't given to roles automatically; add it by hand to the roles of the people who will approve requests.
Details: SSO registration requests
Use the wizard on the Management › Site access groups › Groups tab:
- Click Create private page.
- In the Which page should be private? step, choose the page. Only live pages are listed.
- In the Who can open it? step, choose People I invite, name the group and add the people.
- Click Make private. The page and its subpages become private within a few seconds, without approval. If Send links by e-mail is on, each person receives their own link.
Your site must include the private page gate for this; the standard site template doesn't have it yet. On a site without the gate, a private page shows as "page not found" to everyone, group members included. Have your development team confirm support before you use it.
Details: Private pages
All e-mails from forms and the system are sent through the provider chosen on the Settings › Mail screen. Check the following:
- Choose the provider on the Mail provider card and enter the connection details.
- The Sender e-mail address on the Sender and design tab must be verified with the provider; otherwise sending is rejected.
- Save the settings, then try them with Test connection. The test uses the saved settings.
Even with correct settings, e-mails land in spam if your domain's DNS records have no SPF and DKIM. These values come from the provider's panel and are entered in your domain's DNS management. You can see the delivery status of form notifications in the form's Inbox.
Details: Settings
If no AI provider or API key is set, the panel hides the AI generation buttons. An administrator sets up the provider:
- In Settings › AI, choose OpenAI or Google Gemini on the Active AI provider card.
- Enter the API key you got from the provider's own panel and pick a model from the AI Model list.
- Save and try it with Test connection.
Every generation is a paid call made with the installation's own API key.
Details: Settings
Use the Refresh cache button at the top right of the Management screen.
After saving, sending for approval, approving, rejecting, deleting and reordering, the panel already refreshes the cache on its own. Refresh cache triggers the same refresh by hand and refreshes the whole of both the preview site and the live site. After use, the button is locked for 60 seconds.
Details: Settings
Open the Management › Settings screen. In the Custom code section of the Site category, add the tag to the Head script, inline JS field and click Save.
Custom code runs on every page of the site; only add code you know the purpose of. Changing settings requires the Update permission in the Parameter management group.
Details: Settings
Development
No. The Delivery API is the public API that sites use to read content and submit forms; it doesn't need authentication. All paths start with /api/v1; only the /health check is outside this prefix.
The management API the panel uses is separate, requires a session and is outside the scope of this documentation. In the examples, the https://api.example.com placeholder is replaced with the installation's CMS address.
Details: Delivery API
Every response comes in the same envelope, and the actual content is in the data field. Check hasError first; if it's true, the request failed and data may be empty.
- An
errorCodeof0means success. Other values are field-specific, not HTTP status codes. errorMessageis an error text that can be shown to users.errorIdis the record ID in error tracking; share it when asking for support.
Each endpoint group has its own rate limit. A request that hits the limit gets HTTP 429 and a Retry-After header; retry the request after that time.
Details: Delivery API
The site template has two cache layers: the fetch cache for CMS responses and the ISR cache for page HTML. Both last 300 seconds.
- After saving a page, sending it for approval, approving, rejecting, deleting and reordering, the panel calls
/api/revalidateon both sites. This call refreshes the whole site, and the change shows right away. - Even without a refresh, a page renews itself within five minutes at most.
- Scheduled publishing doesn't call the site; the change shows once the ISR time has passed. To notice it sooner, watch the fingerprint returned by the
GET /api/v1/page/public-revisionendpoint.
Details: Caching and preview
The same site template is deployed a second time with PREVIEW_MODE=true. The two deployments differ like this:
- Content: The preview site shows the preview copies (draft); the live site shows published content.
- Cache: The preview site renders on every request and doesn't use a cache.
- Inspector:
NEXT_PUBLIC_INSPECTOR_ENABLED=trueis set only on the preview site. - robots.txt: On the preview site it blocks the whole site.
Redirect rules work on the preview site exactly as they do live.
Details: Caching and preview
No. The menu and sitemap endpoints return a tree, not a flat list; subpages come under children. Use the href field the API returns for links.
Don't build URLs from the path field by hand. The path in the page detail is also the page's CMS path and isn't meant for building links.
Details: Delivery API
Always uniqueId. id points to the component's definition in the catalog; if the same component is used twice on a page, both nodes have the same id. uniqueId, on the other hand, is unique to that placement.
That's why uniqueId is used for the React key and for the panel inspector. A block finds its children by slug, not by their order.
Details: Page JSON