MediSync — Help
Clinic admin

Website builder

Build, publish, and measure your clinic's public website without leaving MediSync.

Website builder

Organization → Website is your clinic's own public site, built with a drag-and-drop editor and published to a URL your clients can share. There is no separate CMS to log into and no plugin to install — everything lives inside MediSync alongside your appointments, clients, and billing.

What you can build

The editor groups blocks into three categories on the left side of the canvas:

  • Layout — Hero, Image, Spacer. Use these to set the structure and visual rhythm of a page.
  • Clinic — Services grid, Book appointment CTA, Staff list, Contact form. These are wired into MediSync data — for example, the Book appointment block uses your clinic's booking URL automatically.
  • Content — Rich text. Paste in body copy, headings, and lists.

Each block has a settings panel on the right side of the canvas. Click the block to edit its content; drag the dotted handle to reorder it.

Creating your first page

  1. Open Organization → Website. If the Website module isn't on your plan, you'll see a "no permission" panel — talk to your sales rep.
  2. Fill in Page title and Slug at the top of the page list. The slug becomes part of your URL (/p/your-slug) and can only contain lowercase letters, numbers, and hyphens.
  3. Click Create page. The page opens in the editor.
  4. Drag blocks from the left rail onto the canvas. Save is automatic (about once a second after you stop typing).
  5. When you're happy, click Publish in the editor toolbar. The page is live within seconds.

You can take a published page off the public renderer at any time with the Unpublish button in the editor's top-right.

Page list

The Website page shows every page you own (drafts, published, and archived). Click a page title to open the editor. The Archive button soft-deletes the page — it disappears from the public site and frees a slot back to your plan quota. Archiving is reversible by support.

How visitors find your site

There are three ways to expose a published page; they layer on top of each other:

  1. Custom domain. Configure a custom domain in Organization → Settings → Branding. Once your DNS CNAME is pointing at MediSync and the cert provisions, your pages live at https://yourclinic.com/p/<slug>.
  2. Subdomain. Claim a vanity subdomain in Website → Settings. Your site lives at https://yourclinic.medisync.app/p/<slug>.
  3. Path-based. Every published page is always reachable at https://medisync.app/o/<your-org-slug>/p/<slug>, even before you set up DNS. This is the safe default — share this URL while you're still verifying a custom domain.

The page slug is the same across all three URLs. The org's homepage (the page where Homepage is toggled on in Page settings) is also served at the bare domain — for example https://yourclinic.com/.

Website settings

Website → Settings controls the site-wide configuration:

  • Subdomain — claim a yourclinic.medisync.app address. Letters, digits, hyphens only. Some names (www, api, admin, etc.) are reserved.
  • Favicon URL — the small icon shown in browser tabs. Paste a direct URL to a 32×32 PNG or ICO.
  • Website is live — the master switch. When this is OFF, every page on your site returns "not found" regardless of individual page status. Use this if you want to take the whole site down for maintenance.
  • Custom code (head + body) — paste tracking pixels, analytics snippets, and other vendor-provided code here. See Custom code below for what's allowed.

Changes save when you click Save settings. They take effect within about a minute on already-cached pages.

Custom code

The Head code and Body code sections let you paste vendor snippets that should run on every page of your site — Google Tag Manager, Meta Pixel, GA4, custom verification meta tags, and so on.

What's allowed:

  • <script> tags (including async / defer / data-* attributes — GTM and Meta Pixel both rely on these)
  • <noscript> fallback wrappers
  • <meta> tags (e.g. site verification, theme-color)
  • <link> tags (preconnect, preload, custom canonical)
  • <style> tags
  • <img> tags (image pixels)

What's blocked at save time:

  • <iframe>, <object>, <embed>, <base> — these are common XSS vectors and your save will fail with a clear error.
  • Inline event handlers (onclick="..." etc.) — silently stripped by the sanitiser.
  • javascript: URLs — stripped.
  • <form>, <input>, <button> — silently stripped. To collect form data, use the Contact form block instead.

Each snippet is capped at 16 KB. If yours is bigger, host it as a file at your vendor and load it via <script src="...">.

A common pattern: paste your GTM container into Head code, then use the Body code section for the <noscript> fallback the GTM install snippet includes.

Analytics

Website → Analytics shows traffic for your published pages:

  • Total views / Unique visitors / Avg per day — KPI tiles for the selected range (last 7, 30, or 90 days).
  • Top pages — the 10 most-visited pages in the range.
  • Recent form submissions — the latest contact-form fills, newest first.

Visitor identity is not persisted. We hash the IP + browser together with a salt that rotates every UTC midnight, so we can count unique visitors per day without ever storing reversible information about who visited. Raw events are retained for 90 days; the daily rollups (the numbers shown in this dashboard) are kept indefinitely.

Plan limits

Your plan caps the number of published pages you can have at once. Archiving a page frees a slot back immediately — there's no hard delete, so you can always restore an archived page through support if you change your mind.

When you hit the cap, the Create page button shows an error message ("plan limit reached"). Either archive a page you no longer need, or upgrade your plan.

Tips

  • The Book appointment CTA block is greyed out in the editor if your plan doesn't include the Appointments module. Pages created with this block keep working if you later downgrade — they just become uneditable.
  • Set one page as your homepage in Page settings. That page is served at the bare URL (e.g. https://yourclinic.com/ rather than https://yourclinic.com/p/home).
  • The Contact form block writes every submission to your analytics dashboard. There's no email forwarding yet — check the dashboard daily, or build a notification yourself with a webhook in the head code.

On this page