Domains, Website und Posteingang
Status: Pre-Launch. Alle drei Features auf dieser Seite werden zusammen als Bundle ausgerollt. Sie werden durch die
custom_domains- undpublic_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.deerreichbar statt unteracme.mycompanydesk.com. - Eine Live-Website. Die gehostete Unternehmensseite wird automatisch auf der verifizierten Domain veröffentlicht.
- Einen funktionierenden Posteingang.
info@acme.de, plussupport@,sales@und ein reiner Sende-Aliasnoreply@, 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.nlfü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.deein. 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 aufmycompanydesk-app.pages.devzeigt. Keine Nameserver-Änderung. E-Mail-Routing ist in diesem Modus nicht verfügbar.
- Nameserver-Modus (empfohlen) -- es wird eine Cloudflare-Zone für die Domain erstellt. Sie ändern die Nameserver Ihres Registrars auf die beiden
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
activemeldet. Der Status wechseltpending_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:
- Eine eigene Domain mit
business_page_enabled = true→https://acme.de - Eine eigene Domain mit
portal_subdomain_enabled = true→https://portal.acme.de - Die Workspace-Subdomain →
https://acme.mycompanydesk.com - 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-inboundWorker 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.deals das standardmäßige gemeinsame Postfach. - Richtet
support@undsales@als bidirektionale Aliase voninfo@ein, undnoreply@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:
| Spalte | Zweck |
|---|---|
domain_name | Der Hostname, z. B. acme.de. |
setup_mode | nameserver (vollständige Delegation) oder cname (einzelne Subdomain). |
status | pending_nameservers, pending_verification, pending_cname, active, failed, removed. |
cloudflare_zone_id | Gesetzt im Nameserver-Modus. Steuert DNS, SSL, Weiterleitungen, Analytics, E-Mail-Routing. |
nameserver_1, nameserver_2 | Werden dem Benutzer während der Nameserver-Einrichtung angezeigt. |
cname_hostname, cname_target | Gesetzt im CNAME-Modus. |
email_routing_enabled | true, sobald die Cloudflare Email Routing-Zone aktiviert ist. |
inbox_enabled, inbox_subdomain_tag, inbox_dkim_ready | Von quickEnableInbox gesetzt. Die E-Mail-Sende-Subdomain (mail.acme.de standardmäßig) und der DKIM-Bereitstellungsstatus. |
business_page_enabled, portal_subdomain_enabled | Bestimmen, welcher Hostname die öffentliche Website bedient. |
verified_at | Wird 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ältlast_message_preview,participants, Status (open / snoozed / closed / spam) und Labels. - Antworten -- Inline-Antwortfeld im Thread. Intelligentes
Fromwählt die Adresse aus, an die die ursprüngliche E-Mail gesendet wurde, sodass ein Kunde, der ansupport@acme.degeschrieben hat, eine Antwort vonsupport@erhält, nicht voninfo@. - 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.
- 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. - 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.
- 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.
- 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
quickEnableInboxapexMx.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,dashboardund eine Handvoll anderer sind auf Workspace-Slug-Ebene gesperrt. - Pre-Launch. Das Bundle wird durch
custom_domainsundpublic_business_pagefeature-gesteuert. Workspaces ohne diese Flags sehen die Upgrade-Aufforderung anstelle des Editors.
Verwandt
- Einrichtungsassistent -- die magische Einführung, die den gebündelten Ablauf antreibt.
- E-Mail-Integration -- ausgehende E-Mails, Send-As-Auswahl, Zustellverfolgung.
- Website-Builder -- die vollständige Editor-Anleitung.
- Unternehmenseinstellungen -- das Dach, das Über / Aussehen / Website / Adresse enthält.
- Abrechnung & Tarife -- Feature-Flags, die das Bundle steuern.