Skip to content

Domains, Website und Posteingang

Status: Pre-Launch. Alle drei Features auf dieser Seite werden zusammen als Bundle ausgerollt. Sie werden durch die custom_domains- und public_business_page-Feature-Flags gesteuert und befinden sich noch in der Einführung in die öffentlichen Tarife. Das hier beschriebene Verhalten entspricht der Codebasis vom 2026-05-09; falls ein Bildschirm in Ihrem Workspace anders aussieht, wurde das Bundle dort noch nicht aktiviert.

Eigene Domains, die gehostete Unternehmenswebsite und der gemeinsame E-Mail-Posteingang bilden ein Produkt. Der Grund: Sie teilen sich den Zustand. Dieselbe domains-Zeile, die beweist, dass Sie acme.de kontrollieren, macht acme.de auch zur URL Ihrer Website und sorgt dafür, dass info@acme.de E-Mails empfangen kann. Es gibt einen Onboarding-Ablauf, einen Einstellungsbaum und einen Ort in der App, um all das zu verwalten.

Der gebündelte Wert

Fügen Sie eine Domain hinzu und Sie erhalten drei Dinge:

  • Eine eigene Adresse. Ihr Unternehmen ist unter acme.de erreichbar statt unter acme.mycompanydesk.com.
  • Eine Live-Website. Die gehostete Unternehmensseite wird automatisch auf der verifizierten Domain veröffentlicht.
  • Einen funktionierenden Posteingang. info@acme.de, plus support@, sales@ und ein reiner Sende-Alias noreply@, fangen E-Mails auf und versenden Antworten.

Sie können den gebündelten Ablauf über den Einrichtungsassistenten (/setup, der Schritt "Ihre Webadresse") starten, oder schrittweise unter Unternehmen › Ihre eigene .com-Adresse und dem Posteingang.

Ein Onboarding-Ablauf

Der Assistentenschritt unter /setup ist der empfohlene Einstiegspunkt. Er führt über apply.service.js → activateSubdomain | addDomain → quickEnableInbox alle Schritte auf einmal aus, sodass der Benutzer ein paar Fragen beantwortet und die Plattform alles darunter verdrahtet.

Schritt 1 -- Domain hinzufügen

Zwei Wege im Assistenten, beide in der domains-Tabelle gespeichert:

  • Kostenlose Workspace-Subdomain -- ihr-slug.mycompanydesk.com (oder .nl für NL-Workspaces). Keine DNS-Arbeit; der Slug wird als Cloudflare Pages Custom Domain registriert und die Website ist innerhalb von Sekunden live. Dies ist der Standard für neue Workspaces.
  • Ihre eigene Domain -- geben Sie acme.de ein. Zwei Setup-Modi werden unterstützt:
    • Nameserver-Modus (empfohlen) -- es wird eine Cloudflare-Zone für die Domain erstellt. Sie ändern die Nameserver Ihres Registrars auf die beiden *.ns.cloudflare.com-Hostnamen, die der Assistent anzeigt. Cloudflare wird zum autoritativen DNS für die Domain, was E-Mail, SSL und DNS-Record-Verwaltung innerhalb von MyCompanyDesk ermöglicht.
    • CNAME-Modus -- nur für Subdomains (z. B. portal.acme.de). Sie fügen einen CNAME-Record hinzu, der auf mycompanydesk-app.pages.dev zeigt. Keine Nameserver-Änderung. E-Mail-Routing ist in diesem Modus nicht verfügbar.

Das Hinzufügen einer eigenen Domain deaktiviert automatisch die Workspace-Subdomain -- es gibt eine kanonische Website pro Unternehmen, niemals zwei.

Schritt 2 -- Verifizierung

Die Verifizierung erfolgt sowohl auf Abruf als auch per Polling. Die Detailseite zeigt eine Verifizieren-Schaltfläche (POST /api/domains/:id/verify), und ein Hintergrundjob prüft jede ausstehende Domain in Intervallen erneut.

  • Nameserver-Modus wird verifiziert, sobald Cloudflare die Zone als active meldet. Der Status wechselt pending_nameservers → pending_verification → active. Der Benutzer wird über die In-App-Benachrichtigungsglocke informiert.
  • CNAME-Modus wird verifiziert, indem der CNAME aufgelöst und geprüft wird, ob er auf das Pages-Ziel zeigt. Status wechselt pending_cname → active.

Schritt 3 -- SSL

SSL wird automatisch von Cloudflare bereitgestellt, sobald die Zone aktiv ist. Der Standardmodus ist Full (strict); Sie können ihn unter Domain-Detail › SSL ändern (off / flexible / full / strict). Das Zertifikatsstatusfeld im SSL-Panel spiegelt das Verifizierungsergebnis von Cloudflare wider.

Schritt 4 -- Website geht live

Die gehostete Unternehmensseite (siehe Website-Builder) wird automatisch unter der Domain-Root veröffentlicht, sobald die Zone aktiv ist. Der getBusinessPageUrl-Resolver des Assistenten gibt zurück, in Prioritätsreihenfolge:

  1. Eine eigene Domain mit business_page_enabled = truehttps://acme.de
  2. Eine eigene Domain mit portal_subdomain_enabled = truehttps://portal.acme.de
  3. Die Workspace-Subdomain → https://acme.mycompanydesk.com
  4. Die Fallback-Portalroute (/portal/<slug>), wenn nichts anderes konfiguriert ist.

Schritt 5 -- Posteingang empfängt E-Mails

Für Nameserver-Modus eigene Domains führt der Assistent quickEnableInbox nach der Verifizierung aus. Dieser Aufruf ist idempotent und führt Folgendes aus:

  • Richtet die Sende-Subdomain (mail.acme.de) ein und schreibt die DKIM- und SPF-DNS-Records.
  • Setzt eine Cloudflare Email Routing Catch-All-Regel auf der Zone, die auf den inbox-inbound Worker zeigt.
  • Prüft die Apex-MX-Records. Sind diese leer oder zeigen bereits auf Cloudflare, installiert der Assistent die Cloudflare-MX. Ist ein Drittanbieter (Google Workspace, Microsoft 365) bereits vorhanden, verweigert der Assistent das Überschreiben und zeigt eine conflict-Warnung an, damit Sie entscheiden können.
  • Erstellt info@acme.de als das standardmäßige gemeinsame Postfach.
  • Richtet support@ und sales@ als bidirektionale Aliase von info@ ein, und noreply@ als reinen Sende-Alias (erlaubt in From, verworfen bei eingehend).
  • Erstellt optional ein persönliches Postfach (silvan@acme.de), wenn Sie das Kästchen im Assistenten angekreuzt haben.

Referenz pro Feature

Eigene Domains

Die Benutzeroberfläche befindet sich unter Unternehmen > Ihre eigene .com-Adresse -- die Leaf-Seite ist /workspace/organization/company/address, gemountet von apps/web/pages/workspace/organization/company/address.vue und rendert die SettingsDomains-Komponente. Die beiden älteren Pfade /workspace/organization/domains und /workspace/communication/domains leiten hierher um.

Was Sie auf der Seite tun können:

  • Domain hinzufügen (Nameserver- oder CNAME-Modus).
  • Verifizieren einer ausstehenden Domain.
  • DNS-Records verwalten -- A, AAAA, CNAME, MX, TXT, SRV, CAA, NS. CRUD erfolgt über Cloudflare via API.
  • SSL -- Zertifikatsstatus anzeigen, SSL-Modus ändern.
  • URL-Weiterleitungen -- drei kostenlose Cloudflare Page Rules pro Zone. Quellmuster + Ziel + 301/302.
  • E-Mail-Sicherheit -- SPF/DMARC/DKIM-Prüfung mit einer Ein-Klick-"Fix"-Option, die sichere Standardwerte schreibt (v=spf1 ~all, v=DMARC1; p=quarantine; …).
  • Schnelleinstellungen -- Cloudflare Development Mode ein/aus, "Under Attack"-Sicherheitsstufe ein/aus, Cache leeren.
  • Analytics -- die letzten 30 Tage mit Anfragen, Bandbreite, Bedrohungen, Besuchern, Seitenaufrufen. Der aktuelle Cloudflare Analytics-Endpunkt ist abgekündigt; die Seite zeigt einen leeren unavailable-Zustand, bis die GraphQL-Migration erfolgt.
  • Entfernen -- Soft-Delete der Zeile (status = 'removed') und Abbau der Cloudflare-Zone (oder der Pages-Domain im CNAME-Modus).

domains-Tabelle -- der gemeinsame Zustand

Wichtige Spalten, die die App liest:

SpalteZweck
domain_nameDer Hostname, z. B. acme.de.
setup_modenameserver (vollständige Delegation) oder cname (einzelne Subdomain).
statuspending_nameservers, pending_verification, pending_cname, active, failed, removed.
cloudflare_zone_idGesetzt im Nameserver-Modus. Steuert DNS, SSL, Weiterleitungen, Analytics, E-Mail-Routing.
nameserver_1, nameserver_2Werden dem Benutzer während der Nameserver-Einrichtung angezeigt.
cname_hostname, cname_targetGesetzt im CNAME-Modus.
email_routing_enabledtrue, sobald die Cloudflare Email Routing-Zone aktiviert ist.
inbox_enabled, inbox_subdomain_tag, inbox_dkim_readyVon quickEnableInbox gesetzt. Die E-Mail-Sende-Subdomain (mail.acme.de standardmäßig) und der DKIM-Bereitstellungsstatus.
business_page_enabled, portal_subdomain_enabledBestimmen, welcher Hostname die öffentliche Website bedient.
verified_atWird bei erfolgreicher Verifizierung gesetzt.

Gehostete Website

Der Website-Builder befindet sich unter Unternehmen > Ihre Website (/website). Es ist ein vollständiger Mehrseiten-Editor mit Abschnitten, Blöcken, Design-Tokens und Veröffentlichungs-Snapshots. Die öffentliche Website wird auf Ihrer eigenen Domain (oder Workspace-Subdomain / Fallback-Portalroute) bereitgestellt, sobald sie veröffentlicht wurde.

Was der Editor anzeigt:

  • Editor-Tab -- Erstellen Sie Seiten durch Hinzufügen und Anordnen von Abschnitten (Hero, Text, Galerie, Dienstleistungen, Team, Testimonials, Kontaktformular, Preise, Produkt, benutzerdefiniertes HTML). Überprüfen und bearbeiten Sie Abschnittsinhalte, Layout, Stil und Animation. Preisstufen können optional einen Kauf-Button erhalten, der zum Mollie- oder Stripe Connect-Checkout weiterleitet. Jede Stufe hat einen konfigurierbaren Mehrwertsteuersatz (21%, 9% oder 0%), wobei der dem Kunden angezeigte Preis der Endpreis inklusive Mehrwertsteuer ist. Der Produktblock ist eine eigenständige Kaufkarte mit derselben Zahlungsanbindung.
  • Seiten-Tab -- Seiten erstellen, umbenennen, löschen und nach Status filtern (live, Entwurf, geplant). Wählen Sie eine Vorlage beim Erstellen einer neuen Seite.
  • Stil-Tab -- Design-Tokens für Farben, Schriften, Skalierung, Bewegung, Schaltflächen, benutzerdefiniertes CSS und Head-Snippets (Analytics, Schrift-Preconnects).
  • Domain & SEO-Tab -- Verwaltung eigener Domains. Siehe den Abschnitt eigene Domains oben.
  • Integrationen-Tab -- Verbinden Sie Drittanbieterdienste.
  • Navigations-Editor -- Ordnen Sie Header-Links per Drag-and-Drop, mit Dropdown-Gruppen und externen Links.
  • Veröffentlichen-Schaltfläche -- Zeigt die Anzahl unveröffentlichter Änderungen an. Veröffentlicht einen Snapshot mit einem Klick.
  • Responsive Vorschau -- Wechseln Sie zwischen Desktop-, Tablet- und Mobilansicht im Editor.

Die öffentliche Website wird unter der am besten geeigneten URL des Unternehmens bereitgestellt: eigene Domain-Root → Workspace-Subdomain → Fallback /portal/<slug>-Route.

Siehe Website-Builder für die vollständige Editor-Anleitung.

E-Mail-Posteingang

Der Posteingang ist eine Top-Level-Oberfläche unter /inbox (apps/web/pages/inbox/index.vue). Das Backend befindet sich in apps/api/src/modules/inbox/* und schreibt in separate Tabellen (company_email_domains, company_mailboxes, email_threads, email_messages, email_attachments, email_events).

Funktionen:

  • Threading -- eingehende E-Mails werden in Threads gruppiert, basierend auf RFC 822 Message-ID / In-Reply-To / References. Jeder Thread enthält last_message_preview, participants, Status (open / snoozed / closed / spam) und Labels.
  • Antworten -- Inline-Antwortfeld im Thread. Intelligentes From wählt die Adresse aus, an die die ursprüngliche E-Mail gesendet wurde, sodass ein Kunde, der an support@acme.de geschrieben hat, eine Antwort von support@ erhält, nicht von info@.
  • Verfassen -- Drawer-Formular mit Postfach-Auswahl, Send-As-Auswahl, Kundenauswahl (oder freies An), Betreff, Nachricht, Anhänge. Warnung vor zurückgewiesenen Empfängern wird vor dem Senden angezeigt.
  • Send-As-Aliase -- info@, support@, sales@ sind bidirektionale Aliase desselben Postfachs. noreply@ ist reiner Sende-Alias -- als From wählbar, aber eingehende E-Mails daran werden bei der Aufnahme verworfen.
  • Anhänge -- Hochladen vor dem Senden (sowohl Verfassen als auch Antworten). Anhänge eingehender E-Mails sind aus der Nachricht herunterladbar; signierte Download-URLs verfallen nach kurzer TTL.
  • Alias-Hinweis -- wenn eine eingehende Nachricht an eine Adresse eingeht, die noch kein deklarierter Alias ist, zeigt der Thread einen sanften Hinweis mit einer "Als Alias hinzufügen"-Aktion.
  • Verknüpfung -- Threads können mit einem Kunden, Projekt oder einer Rechnung zur Querverweisung verknüpft werden.
  • Catch-All-Fallback -- E-Mails an jeden lokalen Teil der Domain fallen auf das Standardpostfach durch (is_default = true, eines pro Domain). Das bedeutet, Tippfehler und nicht deklarierte Aliase verschwinden nicht stillschweigend.
  • Audit-Log -- ausgehende Sendungen, Postfachänderungen und Thread-Statusänderungen werden in einer Audit-Tabelle für den Workspace aufgezeichnet. Derzeit nur API (noch keine UI) -- für Support-Mitarbeiter zur Fehlerbehebung zugänglich.

Der Posteingang verwendet Ihre eigene Domain erst, nachdem quickEnableInbox erfolgreich ausgeführt wurde und die Apex-MX-Records auf Cloudflare zeigen. Bis dahin kann der Workspace weiterhin E-Mails über den Standardzustellpfad senden, der unter E-Mail-Integration beschrieben ist, aber keine E-Mails empfangen.

Verkäufe

Wenn Sie Kauf-Buttons zu Preisstufen oder einem Produktblock auf Ihrer öffentlichen Website hinzufügen, erstellt jede abgeschlossene Zahlung einen Verkaufsdatensatz. Verfolgen Sie diese unter Geld > Verkäufe (/workspace/financial/money/sales).

Was das Verkaufsprotokoll zeigt:

  • Eine chronologisch sortierte Liste aller über Ihre Website getätigten Käufe.
  • Den Zahlungsdienstleister (Mollie oder Stripe Connect) und den Zahlungsstatus (paid, pending, failed, expired, refunded).
  • Den ursprünglichen Abschnitt (welche Preisstufe oder welcher Produktblock gekauft wurde).
  • Kunden-E-Mail, gezahlter Betrag und Währung.

Verkaufsdatensätze werden vom öffentlichen Checkout-Endpunkt (POST /public/sites/:slug/checkout) erstellt, der den Abschnitt validiert, eine Zahlung über den verbundenen Dienstleister anlegt und den Käufer zur gehosteten Checkout-Seite weiterleitet.

Bezahlte Verkäufe zeigen ein Aktionsmenü (drei Punkte) mit zwei Optionen:

  • Rechnung neu erstellen. Erstellt die verknüpfte Rechnung neu, falls sie verloren gegangen oder beim Kauf nicht generiert wurde. Auch sicher ausführbar, wenn die Rechnung bereits existiert.
  • Rückerstattung. Überweist den vollen Betrag über den ursprünglichen Zahlungsdienstleister (Mollie oder Stripe) an den Kunden zurück. Eine Gutschrift wird automatisch gegen die verknüpfte Rechnung für Ihre Buchhaltung erstellt. Nur für bezahlte Verkäufe verfügbar.

Ablauf nach dem Kauf

Wenn eine Zahlung abgeschlossen ist, führt die Plattform automatisch die folgenden Schritte aus. Alles läuft fire-and-forget: Fehler werden protokolliert und haben keinen Einfluss auf den Zahlungsstatus, den der Käufer sieht.

  1. Rechnung erstellt. Eine Rechnung wird aus dem Verkauf erstellt, mit Produktname, Preis und der E-Mail des Käufers. Der Preis, den Sie im Editor festlegen, ist der endgültige Kundenpreis inklusive Mehrwertsteuer. Die Rechnungsposition teilt diesen in einen Netto-Betrag und den Mehrwertsteuersatz auf, den Sie in der Preisstufe oder dem Produktblock konfiguriert haben (Standard 21%). Wenn die E-Mail mit einem bestehenden Kunden in Ihrem Workspace übereinstimmt, wird die Rechnung diesem Kunden zugeordnet. Andernfalls wird ein minimaler Kundendatensatz erstellt. Die Rechnung wird sofort finalisiert (Status sent), da die Zahlung bereits eingegangen ist.
  2. Zahlung verbucht. Ein Zahlungsdatensatz wird auf der Rechnung über den Standard-Zahlungsservice erstellt. Die Zahlungsmethode wird auf den Dienstleister (Mollie oder Stripe) gesetzt und die Referenz enthält die Prozessor-Session-ID für Audit-Trails.
  3. Kundenbestätigung. Der Käufer erhält eine Bestätigungs-E-Mail mit Produktname, Betrag und Zahlungsmethode. Wenn eine Rechnung erstellt wurde, enthält die E-Mail einen gesicherten Portal-Link zum Anzeigen und Herunterladen des Rechnungs-PDFs.
  4. Inhaber benachrichtigt. Sie erhalten eine In-App-Benachrichtigung und eine E-Mail-Zusammenfassung des Verkaufs: Produkt, Betrag, Kunden-E-Mail und einen direkten Link zur Rechnung.

Die Checkout-Erfolg- und Checkout-Abgebrochen-Seiten zeigen dem Käufer einen gebrandeten Ergebnisbildschirm, der die Design-Tokens (Farben) Ihrer Website verwendet, damit die Seite markenkonform bleibt.

E-Mails senden vs. E-Mails empfangen

Dieses Bundle ist die Empfangsseite. Ausgehende E-Mails -- Rechnungsversand, Erinnerungen, Angebotsversand -- werden von der breiteren E-Mail-Pipeline abgewickelt, die unter E-Mail-Integration beschrieben ist. Sobald eine Domain verifiziert und der Posteingang aktiviert ist, wird dieselbe Domain auch als From-Adresse für ausgehende E-Mails verwendet, mit DKIM-Signierung auf mail.acme.de.

Grenzen und Fallstricke

  • Eine Website pro Unternehmen. Das Hinzufügen einer eigenen Domain deaktiviert die Workspace-Subdomain. Das Entfernen der Domain stellt den Slug nicht automatisch wieder her -- aktivieren Sie ihn manuell, wenn Sie zurückfallen möchten.
  • CNAME-Modus hat keine E-Mail. E-Mail-Routing erfordert eine vollständige Cloudflare-Zone, die nur der Nameserver-Modus bietet.
  • Der Assistent verweigert das Überschreiben eines bestehenden Drittanbieter-MX. Wenn Ihr Apex bereits auf Google Workspace oder Microsoft 365 zeigt, gibt quickEnableInbox apexMx.status = 'conflict' zurück und Sie müssen wählen: MX zu Cloudflare migrieren oder bei Ihrem bestehenden Anbieter bleiben und den gebündelten Posteingang überspringen.
  • Reservierte Subdomains. app, admin, api, www, mail, support, portal, dashboard und eine Handvoll anderer sind auf Workspace-Slug-Ebene gesperrt.
  • Pre-Launch. Das Bundle wird durch custom_domains und public_business_page feature-gesteuert. Workspaces ohne diese Flags sehen die Upgrade-Aufforderung anstelle des Editors.

Verwandt

MyCompanyDesk — Accounting made simple.