RisiQ Trust Center
Technical Architecture — Secure Access-Controlled Content Platform
HubSpot-Centric Implementation with CRM, CMS & Serverless Functions
Technische Architektur — Sichere zugangskontrollierte Content-Plattform
HubSpot-zentrische Implementierung mit CRM, CMS & Serverless Functions
Executive Summary
The RisiQ Trust Center is a secure, access-controlled content platform for approximately 100 banking and financial services customers. It provides compliance documents, security reports, certifications, and contractual documentation through a tiered access model (Public → Prospect → NDA → Customer).
Das RisiQ Trust Center ist eine sichere, zugangskontrollierte Content-Plattform für ca. 100 Bank- und Finanzdienstleistungskunden. Es stellt Compliance-Dokumente, Sicherheitsberichte, Zertifizierungen und Vertragsunterlagen über ein abgestuftes Zugangsmodell (Public → Prospect → NDA → Customer) bereit.
The architecture uses HubSpot as the central platform: CMS Hub for the frontend, CRM for contact/document management, Serverless Functions for secure downloads, Workflows for automatic tier management, and Private Content for membership login. External integrations (e-signature, DATEV) are layered on top where HubSpot’s native capabilities are insufficient.
Die Architektur nutzt HubSpot als zentrale Plattform: CMS Hub für das Frontend, CRM für Kontakt-/Dokumentenverwaltung, Serverless Functions für sichere Downloads, Workflows für automatische Tier-Verwaltung und Private Content für Membership-Login. Externe Integrationen (E-Signatur, DATEV) werden dort ergänzt, wo HubSpots native Fähigkeiten nicht ausreichen.
Assumptions & PrerequisitesAnnahmen & Voraussetzungen
| # | AssumptionAnnahme | If DifferentWenn anders |
|---|---|---|
| A1 | HubSpot platform upgrade required. Client is currently on Free/Starter. Trust Center needs Content Hub Professional (~$500/mo for Private Content + Serverless) and Sales Hub Professional (~$100/mo/seat for approval workflows). Alternatively: Customer Platform Professional (~$1,300/mo) or Enterprise (~$4,300/mo) for the full feature set.HubSpot-Plattform-Upgrade erforderlich. Kunde ist aktuell auf Free/Starter. Trust Center benötigt Content Hub Professional (~$500/Mo. für Private Content + Serverless) und Sales Hub Professional (~$100/Mo./Seat für Genehmigungs-Workflows). Alternativ: Customer Platform Professional (~$1.300/Mo.) oder Enterprise (~$4.300/Mo.) für den vollen Funktionsumfang. | If only Starter: no Private Content (TC cannot work), no approval workflows, no custom properties beyond 10. Upgrade is mandatory, not optional.Nur Starter: kein Private Content (TC kann nicht funktionieren), keine Genehmigungs-Workflows, max. 10 Custom Properties. Upgrade ist Pflicht, nicht optional. |
| A2 | PandaDoc Business plan (€39/mo) is the e-signature & document tool. Preferred over DocuSign for all-in-one coverage (NDA + Offer + Quote + Contract + Invoice in one tool).PandaDoc Business-Plan (€39/Mo.) als E-Signatur- & Dokumenten-Tool. Bevorzugt gegenüber DocuSign für All-in-One-Abdeckung (NDA + Angebot + Quote + Vertrag + Rechnung in einem Tool). | If DocuSign preferred: combine with HubSpot Quotes + Commerce Hub for full pipeline. Higher integration effort, but banking industry standard.Bei DocuSign: mit HubSpot Quotes + Commerce Hub für volle Pipeline kombinieren. Höherer Integrationsaufwand, aber Banking-Branchenstandard. |
| A3 | Quote calculation logic uses HubSpot Products + Line Items for standard pricing, with PandaDoc pricing tables for complex discount rules (contract length × volume). No external calculation engine required initially.Quote-Berechnungslogik nutzt HubSpot Products + Line Items für Standardpreise, mit PandaDoc Pricing Tables für komplexe Rabattregeln (Vertragslaufzeit × Volumen). Kein externer Calculation Engine initial erforderlich. | If pricing requires custom formulas (tiered discounts, multi-currency, volume bands): add Ops Hub coded action or external pricing API. See Section 6.Bei benutzerdefinierten Formeln (Staffelrabatte, Multi-Währung, Volumenstufen): Ops Hub coded action oder externe Pricing API ergänzen. Siehe Abschnitt 6. |
| A4 | Four-eye principle is implemented via HubSpot Deal stage gates + PandaDoc approval workflow. Sales cannot send contracts without prior Legal/Finance approval. This is a process control, not a technical lock.4-Augen-Prinzip wird über HubSpot Deal-Stage-Gates + PandaDoc Genehmigungs-Workflow umgesetzt. Sales kann Verträge nicht ohne vorherige Legal/Finance-Freigabe senden. Dies ist eine Prozesskontrolle, kein technischer Lock. | If hard technical enforcement needed: Ops Hub coded action can block PandaDoc API call until approval_status = approved. Requires Ops Hub Professional.Bei harter technischer Durchsetzung: Ops Hub coded action kann PandaDoc API-Call blockieren bis approval_status = approved. Erfordert Ops Hub Professional. |
| A5 | DATEV variant is DATEV Unternehmen Online. Middleware tool (sevDesk or lexoffice) handles the export. No direct API integration possible.DATEV-Variante ist DATEV Unternehmen Online. Middleware-Tool (sevDesk oder lexoffice) übernimmt den Export. Keine direkte API-Integration möglich. | If different DATEV variant: MAESN connector may not work. Verify with client’s accounting team before implementation.Bei anderer DATEV-Variante: MAESN-Connector funktioniert möglicherweise nicht. Mit Buchhaltungsteam des Kunden vor Implementierung abklären. |
| A6 | User provisioning = managing Trust Center access contacts (procurement / compliance personnel). These users log in via HubSpot CMS Membership. SSO via Enterprise SAML is available if needed (single IdP only).User Provisioning = Verwaltung von Trust Center Zugangskontakten (Einkauf / Compliance-Personal). Diese Nutzer loggen sich über HubSpot CMS Membership ein. SSO via Enterprise SAML verfügbar bei Bedarf (nur einzelner IdP). | If SSO needed: Enterprise plan upgrade required. Config-only, no code change.Bei SSO-Bedarf: Enterprise-Plan-Upgrade erforderlich. Nur Konfiguration, keine Codeänderung. |
| A7 | ~100 banking customers with ~300-500 compliance documents is the medium-term scale target. HubSpot CRM handles this contact/deal volume. Document search and editorial workflow become pain points at this scale — see limitations in Section 13.~100 Bankkunden mit ~300-500 Compliance-Dokumenten ist das mittelfristige Skalierungsziel. HubSpot CRM bewältigt dieses Kontakt-/Deal-Volumen. Dokumentensuche und Editorial-Workflow werden bei dieser Größe zu Schmerzpunkten — siehe Limitierungen in Abschnitt 13. | If 500+ customers or 1000+ docs: consider adding Algolia for search and Sanity for editorial workflow. See Section 13.Bei 500+ Kunden oder 1000+ Docs: Algolia für Suche und Sanity für Editorial-Workflow in Betracht ziehen. Siehe Abschnitt 13. |
User Journey OverviewUser Journey Übersicht
graph TB
V["Visitor"] --> LP["Landing Page
/trust-center"]
LP --> CF["Contact Form
Request Access"]
CF -->|"Sales enables TC"| PR["Prospect — Level 1"]
PR --> DB["Dashboard
/trust-center/home"]
DB --> SEC["Security Docs"]
DB --> INF["Infrastructure Docs"]
PR -->|"NDA signed"| NDA["NDA — Level 2"]
NDA --> COMP["Compliance & Legal"]
NDA -->|"Deal Closed Won"| CU["Customer — Level 3"]
CU --> CERT["Certifications"]
CU --> VER["Version History"]
style V fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style LP fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style CF fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style PR fill:#142036,stroke:#2563eb,color:#2563eb
style DB fill:#142036,stroke:#2a3f6a,color:#f6fbff
style SEC fill:#142036,stroke:#2a3f6a,color:#a3b8d0
style INF fill:#142036,stroke:#2a3f6a,color:#a3b8d0
style NDA fill:#142036,stroke:#a78bfa,color:#a78bfa
style COMP fill:#142036,stroke:#2a3f6a,color:#a3b8d0
style CU fill:#142036,stroke:#FFB342,color:#FFB342
style CERT fill:#142036,stroke:#2a3f6a,color:#a3b8d0
style VER fill:#142036,stroke:#2a3f6a,color:#a3b8d0
System ArchitectureSystemarchitektur
Unlike multi-system architectures (CMS + Object Storage + Auth Provider + Search Engine + Frontend Framework), the HubSpot-native solution consolidates everything into one platform:
Im Gegensatz zu Multi-System-Architekturen (CMS + Object Storage + Auth Provider + Search Engine + Frontend Framework) konsolidiert die HubSpot-Native-Lösung alles in einer Plattform:
graph LR
subgraph HS["HubSpot Platform"]
CRM["CRM
Contacts · Companies
Deals · Custom Objects"]
CMS["CMS Hub
Templates · Modules
Private Content"]
SF["Serverless Functions
Secure Downloads
Tier Validation"]
WF["Workflows
Tier Assignment
Deal-to-Access"]
FM["File Manager
Private PDFs
CloudFront CDN"]
end
CRM <-->|"crm_objects()"| CMS
CRM <-->|"hubspot/api-client"| SF
FM <-->|"Files API v3"| SF
WF -->|"Property Update"| CRM
CMS -->|"context.contact"| SF
style HS fill:#0e1629,stroke:#2a3f6a,color:#f6fbff
style CRM fill:#142036,stroke:#FFB342,color:#f6fbff
style CMS fill:#142036,stroke:#2563eb,color:#f6fbff
style SF fill:#142036,stroke:#22c55e,color:#f6fbff
style WF fill:#142036,stroke:#a78bfa,color:#f6fbff
style FM fill:#142036,stroke:#FFB342,color:#f6fbff
| ComponentKomponente | Responsible forVerantwortlich für | Does NOTMacht NICHT |
|---|---|---|
| HubSpot CRM | Contacts, Companies, Deals, Pipeline, Access Tier Properties, Custom Object (Trust Center Document)Kontakte, Companies, Deals, Pipeline, Access-Tier-Properties, Custom Object (Trust Center Document) | File Storage, Frontend Rendering |
| HubSpot CMS Hub | Templates, Modules (HubL), Private Content / Membership Login, Theme RenderingTemplates, Module (HubL), Private Content / Membership Login, Theme Rendering | CRM Logic, File SigningCRM-Logik, File-Signierung |
| CMS Serverless | Secure Downloads, Server-side Tier Validation, Signed URL Generation via Files APISichere Downloads, Tier-Validierung serverseitig, Signed-URL-Generierung über Files API | Content Rendering, CRM Management |
| HubSpot Workflows | Automatic Tier Assignment, Deal Stage Mapping, Access RevocationAutomatische Tier-Zuweisung, Deal-Stage-Mapping, Access-Revocation | Frontend Logic, File AccessFrontend-Logik, File-Zugriff |
| HubSpot File Manager | PDF Storage (PRIVATE access), CloudFront CDN with Signed URLsPDF-Speicherung (PRIVATE access), CloudFront CDN mit Signed URLs | Metadata, Access ControlMetadaten, Zugangskontrolle |
crm_objects() / crm_object() HubL functions and @hubspot/api-client in Serverless Functions. This eliminates the need for a separate API gateway for Trust Center operations. Note: External integrations (PandaDoc, DATEV middleware) still require webhook/API communication outside HubSpot.
Interne Kommunikation: HubSpot CRM ↔ CMS ↔ Serverless kommunizieren über crm_objects() / crm_object() HubL-Funktionen und @hubspot/api-client in Serverless Functions. Dies eliminiert die Notwendigkeit eines separaten API-Gateways für Trust-Center-Operationen. Hinweis: Externe Integrationen (PandaDoc, DATEV-Middleware) erfordern weiterhin Webhook/API-Kommunikation außerhalb von HubSpot.
Access Control Model
Four-tier access system with numerical hierarchy. Each higher tier inherits all permissions of the lower ones:
Vier-Stufen-Zugangssystem mit numerischer Hierarchie. Jede höhere Stufe erbt alle Berechtigungen der unteren:
Three-Layer Security ModelDrei-Schichten-Sicherheitsmodell
graph LR
A["User visits
/trust-center/*"] --> B{"Layer 1
CMS Private
Content"}
B -->|"Not logged in"| C["Redirect to
/_hcms/mem/login"]
B -->|"Logged in"| D{"Layer 2
trust_center
_enabled?"}
D -->|"false"| E["Access Gate
Contact Sales"]
D -->|"true"| F{"Layer 3
Tier Check
user >= min"}
F -->|"Insufficient"| G["Locked Tile"]
F -->|"Sufficient"| H["Access Granted"]
style A fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B fill:#142036,stroke:#FFB342,color:#FFB342
style C fill:#3d1111,stroke:#ef4444,color:#ef4444
style D fill:#142036,stroke:#FFB342,color:#FFB342
style E fill:#3d1111,stroke:#ef4444,color:#ef4444
style F fill:#142036,stroke:#FFB342,color:#FFB342
style G fill:#3d1111,stroke:#ef4444,color:#ef4444
style H fill:#0f3d24,stroke:#22c55e,color:#22c55e
- Layer 1 — CMS Private Content: HubSpot automatically redirects unauthenticated visitors to the membership login page. No code required.
- Schicht 1 — CMS Private Content: HubSpot leitet nicht eingeloggte Besucher automatisch zur Membership-Login-Seite weiter. Kein Code erforderlich.
- Layer 2 — trust_center_enabled: CRM property check via
crm_object(). Disabled contacts see a "Contact Sales" gate. - Schicht 2 — trust_center_enabled: CRM-Property-Check via
crm_object(). Deaktivierte Kontakte sehen „Contact Sales“-Gate. - Layer 3 — Tier Comparison: Numerical comparison (user_level ≥ doc_min_level). Enforced in both HubL (frontend) and Serverless (download).
- Schicht 3 — Tier-Vergleich: Numerischer Vergleich (user_level ≥ doc_min_level). Sowohl in HubL (Frontend) als auch in Serverless (Download) durchgesetzt.
Tile-Level Access MatrixTile-Level Access Matrix
| AreaBereich | min_tier | Public | Prospect | NDA | Customer |
|---|---|---|---|---|---|
| Security | prospect | ✗ | ✓ | ✓ | ✓ |
| Infrastructure | prospect | ✗ | ✓ | ✓ | ✓ |
| Compliance & Legal | nda | ✗ | ✗ | ✓ | ✓ |
| Certifications | customer | ✗ | ✗ | ✗ | ✓ |
| FAQ | public | ✓ | ✓ | ✓ | ✓ |
| Contact | public | ✓ | ✓ | ✓ | ✓ |
Data ModelDatenmodell
Custom Object: Trust Center Document
API Name: p2662191_trust_center_document · ObjectTypeId: 2-58394979
| Property | TypeTyp | DescriptionBeschreibung |
|---|---|---|
| doc_title | String | Display name of the documentAnzeigename des Dokuments |
| doc_bucket | Enum | Category: security, infrastructure, compliance_legal, certificationsKategorie: security, infrastructure, compliance_legal, certifications |
| min_tier | Enum | Minimum access tier: public, prospect, nda, customerMindestzugangsstufe: public, prospect, nda, customer |
| secure_file | File | HubSpot File Manager ID (PRIVATE access)HubSpot File Manager ID (PRIVATE access) |
| current_version | URL | Fallback download linkFallback-Download-Link |
| previous_version_1 | URL | Previous version (Customer-only visible)Vorherige Version (nur für Customer sichtbar) |
| previous_version_2 | URL | Older versionÄltere Version |
| doc_description | Text | Description for document listingBeschreibung für Dokumentenliste |
| last_updated | Date | Last modification dateLetztes Änderungsdatum |
| change_note | String | Change note for latest versionÄnderungshinweis für letzte Version |
CRM Properties
trust_center_enabled Booleantrust_center_access_tier Enumtrust_center_role Enumprovisioning_status Enumcompany_status Enumnda_signed Booleanhas_active_product Booleancontract_signed Booleanprovisioning_approved Booleaninvoice_ready Boolean
graph LR
CO["Contact
trust_center_enabled
access_tier · role"] --- COMP["Company
company_status
nda_signed"]
CO --- DEAL["Deal
contract_signed
provisioning_approved"]
CO ---|"Membership"| PAGE["CMS Private Pages
9 Trust Center Pages"]
DOC["Trust Center Document
doc_bucket · min_tier
secure_file"] ---|"crm_objects()"| PAGE
DOC ---|"Files API"| FM["File Manager
Private PDFs"]
style CO fill:#142036,stroke:#FFB342,color:#FFB342
style COMP fill:#142036,stroke:#2563eb,color:#2563eb
style DEAL fill:#142036,stroke:#a78bfa,color:#a78bfa
style DOC fill:#142036,stroke:#22c55e,color:#22c55e
style PAGE fill:#142036,stroke:#2a3f6a,color:#f6fbff
style FM fill:#142036,stroke:#2a3f6a,color:#a3b8d0
Integration FlowsIntegrationsflüsse
Flow A — Secure Document Download
sequenceDiagram
participant U as User Browser
participant SF as Serverless Function
participant CRM as HubSpot CRM
participant Files as Files API v3
participant CDN as CloudFront
U->>SF: GET /_hcms/api/secure-download?doc_id=123
SF->>SF: Check context.contact.isLoggedIn
alt Not logged in
SF-->>U: 401 Unauthorized
end
par Parallel CRM Lookup
SF->>CRM: GET Contact access_tier
SF->>CRM: GET Document min_tier + file_id
end
SF->>SF: tier_order[contact] >= tier_order[doc]
alt Insufficient tier
SF-->>U: 403 Forbidden
end
SF->>Files: GET /files/v3/files/{id}/signed-url
Files-->>SF: Signed URL (15min expiry)
SF-->>U: 302 Redirect
U->>CDN: GET signed URL
CDN-->>U: PDF Download
Flow B — Sales Pipeline → TC Access
graph LR
A["Deal
Created"] -->|"WF1"| B["TC Enabled
tier = prospect"]
B --> C["NDA sent via
PandaDoc / DocuSign"]
C -->|"Client signs"| D["WF4: nda_status
tier = nda"]
D --> E["Contract sent
after 4-eyes approval"]
E -->|"Client signs"| F["WF5: Closed Won
tier = customer"]
style A fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B fill:#142036,stroke:#2563eb,color:#2563eb
style C fill:#142036,stroke:#a78bfa,color:#a78bfa
style D fill:#142036,stroke:#a78bfa,color:#a78bfa
style E fill:#142036,stroke:#FFB342,color:#FFB342
style F fill:#0f3d24,stroke:#22c55e,color:#22c55e
Flow C — Access Revocation
graph LR
A["TC Disabled
enabled = false"] -->|"WF3 triggers"| B["tier = public"]
B --> C["All Tiles
Locked"]
C --> D["Signed URLs
Expire (15min)"]
D --> E["Full
Revocation"]
style A fill:#3d1111,stroke:#ef4444,color:#ef4444
style B fill:#4a3010,stroke:#FFB342,color:#FFB342
style C fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style D fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style E fill:#0f3d24,stroke:#22c55e,color:#22c55e
Quote-to-Cash & Document AutomationQuote-to-Cash & Dokumentenautomatisierung
The Trust Center's sales lifecycle generates five document types through PandaDoc or DocuSign: NDA, Offer, Quote, Contract, and Invoice. Each document triggers CRM automations that drive the tier progression and finance workflow. This section covers the complete Quote-to-Cash pipeline from first contact to DATEV export.
Der Sales-Lifecycle des Trust Centers erzeugt fünf Dokumenttypen über PandaDoc oder DocuSign: NDA, Angebot, Quote, Vertrag und Rechnung. Jedes Dokument löst CRM-Automatisierungen aus, die die Tier-Progression und den Finance-Workflow steuern. Dieser Abschnitt behandelt die komplette Quote-to-Cash-Pipeline vom Erstkontakt bis zum DATEV-Export.
Full Document LifecycleVollständiger Dokumenten-Lifecycle
graph LR
A["Prospect
Registered"] -->|"Sales sends"| B["NDA"]
B -->|"Client signs"| C["tier = nda"]
C -->|"Sales creates"| D["Offer /
Quote"]
D -->|"Client accepts"| E["Contract"]
E -->|"4-Eyes
Approval"| F["Client signs"]
F -->|"Closed Won"| G["tier = customer"]
G -->|"Auto-generate"| H["Invoice"]
H -->|"Export"| I["DATEV"]
style A fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B fill:#142036,stroke:#FFB342,color:#FFB342
style C fill:#0f3d24,stroke:#22c55e,color:#22c55e
style D fill:#142036,stroke:#2563eb,color:#2563eb
style E fill:#142036,stroke:#a78bfa,color:#a78bfa
style F fill:#142036,stroke:#FFB342,color:#FFB342
style G fill:#0f3d24,stroke:#22c55e,color:#22c55e
style H fill:#142036,stroke:#22d3ee,color:#22d3ee
style I fill:#4a3010,stroke:#FFB342,color:#FFB342
Document Generation MatrixDokumentenerstellungs-Matrix
| DocumentDokument | HubSpot Native | PandaDoc | DocuSign | Tier TriggerTier-Trigger |
|---|---|---|---|---|
| NDA | ✗ | ✓ Template + e-signTemplate + E-Signatur | ✓ Template + e-signTemplate + E-Signatur | prospect → nda |
| Offer | ✗ | ✓ Template + merge fieldsTemplate + Merge-Felder | ✓ TemplateTemplate | — |
| Quote | ✓ Sales Hub Quotes | ✓ Rich templatesRich Templates | ✗ | — |
| Contract | ✗ | ✓ Template + 4-eyes + e-signTemplate + 4-Augen + E-Signatur | ✓ Template + e-signTemplate + E-Signatur | nda → customer |
| Invoice | ✓ Commerce Hub | ✓ Invoice templatesRechnungsvorlagen | ✗ | — (DATEV exportDATEV-Export) |
PandaDoc vs. DocuSign — Detailed ComparisonPandaDoc vs. DocuSign — Detailvergleich
| CapabilityFähigkeit | PandaDoc | DocuSign |
|---|---|---|
| Create doc from Deal sidebarDokument aus Deal-Sidebar erstellen | ✓ | ✓ |
| Cross-object merge (Contact + Company + Deal)Cross-Object Merge (Contact + Company + Deal) | ✓ AdvantageVorteil | Contact onlyNur Contact |
| Track signing status in HubSpotSigning-Status in HubSpot tracken | ✓ Sent / Viewed / Completed / Declined | ✓ Sent / Delivered / Completed / Declined |
| Auto-attach signed PDF to DealSigniertes PDF automatisch an Deal anhängen | ✓ External Automations | ✓ Native |
| Auto-update Contact properties on completionContact-Properties bei Abschluss aktualisieren | ✓ External Automations | ✓ via Workflow |
| Auto-change Deal stage on completionDeal-Stage automatisch ändern bei Abschluss | ✓ External Automations | ✓ via Workflow |
| Auto-create & send doc from workflowDokument automatisch aus Workflow erstellen & senden | ✗ Requires PandaDoc APIErfordert PandaDoc API | ✗ Requires DocuSign APIErfordert DocuSign API |
| Enterprise standard (banking)Enterprise-Standard (Banking) | Growing adoptionWachsende Verbreitung | ✓ Industry standardBranchenstandard |
| Min. plan for HubSpot automationMin. Plan für HubSpot-Automatisierung | Business (€39/moMonat) or Enterprise | Standard (€25/moMonat) or higher |
NDA Signing FlowNDA-Unterzeichnungsablauf
sequenceDiagram
participant S as Sales Rep
participant PD as PandaDoc / DocuSign
participant C as Bank Contact
participant HS as HubSpot CRM
participant WF as Workflow
S->>PD: Create NDA from Deal sidebar
PD->>PD: Auto-fill Contact + Company data
S->>PD: Send NDA to contact
PD->>C: Email with signing link
C->>PD: Signs NDA digitally
PD->>HS: Webhook: nda_status = completed
HS->>WF: Trigger: esign_nda_status changed
WF->>HS: Set access_tier = nda
WF->>HS: Set nda_signed = true (Company)
WF->>S: Notification: NDA signed
trust_center_access_tier is automatically upgraded from prospect to nda. This unlocks Compliance & Legal documents in the Trust Center — no manual intervention needed.
Kernautomatisierung: Wenn die NDA unterzeichnet wird, wird trust_center_access_tier automatisch von prospect auf nda hochgestuft. Dies schaltet Compliance & Legal Dokumente im Trust Center frei — kein manueller Eingriff nötig.
Contract Approval & Signing FlowVertragsgenehmigung & Unterzeichnung
graph TB
A["Sales creates contract
in PandaDoc / DocuSign"] --> B["Deal stage:
Contract Ready"]
B --> C{"4-Eyes Approval
Legal / Finance"}
C -->|"Rejected"| D["Back to Sales
for revision"]
C -->|"Approved"| E["approval_status
= approved"]
E --> F["Sales sends
contract to client"]
F --> G["Client signs
digitally"]
G --> H["Webhook:
contract_status
= completed"]
H --> I["WF: Deal stage
= Closed Won"]
I --> J["WF: tier
= customer"]
I --> K["Finance task:
Generate invoice"]
style A fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B fill:#142036,stroke:#2563eb,color:#2563eb
style C fill:#142036,stroke:#FFB342,color:#FFB342
style D fill:#3d1111,stroke:#ef4444,color:#ef4444
style E fill:#0f3d24,stroke:#22c55e,color:#22c55e
style F fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style G fill:#142036,stroke:#a78bfa,color:#a78bfa
style H fill:#142036,stroke:#FFB342,color:#FFB342
style I fill:#0f3d24,stroke:#22c55e,color:#22c55e
style J fill:#0f3d24,stroke:#22c55e,color:#22c55e
style K fill:#142036,stroke:#2a3f6a,color:#a3b8d0
Quote Calculation Logic — Where Does the Intelligence Live?Quote-Berechnungslogik — Wo lebt die Intelligenz?
Generating an offer or quote requires pricing intelligence: contract length → discount tiers, volume bands, optional modules, recurring vs. one-time fees. This calculation logic must live somewhere — regardless of which architecture or frontend is used.
Die Erstellung eines Angebots oder Quotes erfordert Pricing-Intelligenz: Vertragslaufzeit → Rabattstufen, Volumenbänder, optionale Module, wiederkehrende vs. einmalige Gebühren. Diese Berechnungslogik muss irgendwo leben — unabhängig von der Architektur oder dem Frontend.
| OptionOption | How It WorksFunktionsweise | ComplexityKomplexität | RequiresErfordert |
|---|---|---|---|
| HubSpot Products + Line Items | Products catalog in CRM with fixed prices. Sales selects products, adds to Deal. Discount entered manually per line item. Quote auto-calculates total.Produktkatalog im CRM mit Festpreisen. Sales wählt Produkte, fügt sie zum Deal hinzu. Rabatt wird manuell pro Position eingegeben. Quote berechnet Gesamtbetrag automatisch. | LowNiedrig | Sales Hub Starter+ |
| PandaDoc Pricing Tables | Interactive pricing tables in PandaDoc with conditional logic: contract length × volume = calculated discount. Client can toggle optional modules. Auto-updated totals.Interaktive Pricing-Tabellen in PandaDoc mit bedingter Logik: Vertragslaufzeit × Volumen = berechneter Rabatt. Kunde kann optionale Module umschalten. Auto-aktualisierte Summen. | MediumMittel | PandaDoc Business (€39/moMo.) |
| Ops Hub Coded Action | Custom JavaScript in workflow: reads Deal properties (contract_length, volume, tier), computes discount via formula, writes calculated_price back to Deal. Full flexibility.Custom JavaScript im Workflow: liest Deal-Properties (contract_length, volume, tier), berechnet Rabatt per Formel, schreibt calculated_price zurück zum Deal. Volle Flexibilität. | HighHoch | Ops Hub Professional+ |
| External Pricing APIExterne Pricing API | Serverless function or external service receives Deal data, runs pricing engine, returns calculated quote. Maximum flexibility but highest complexity. Required in any architecture if formulas are truly complex.Serverless Function oder externer Service empfängt Deal-Daten, führt Pricing-Engine aus, gibt berechnetes Angebot zurück. Maximale Flexibilität aber höchste Komplexität. In jeder Architektur erforderlich wenn Formeln wirklich komplex sind. | Very HighSehr hoch | Custom devCustom-Entwicklung |
graph TB
Q{"How complex is
your pricing?"}
Q -->|"Fixed prices +
manual discounts"| A["HubSpot Products
+ Line Items"]
Q -->|"Contract length affects
discount + optional modules"| B["PandaDoc
Pricing Tables"]
Q -->|"Multi-variable formulas
tiered + volume + currency"| C{"Ops Hub
available?"}
C -->|"Yes"| D["Ops Hub
Coded Action"]
C -->|"No"| E["External
Pricing API"]
style Q fill:#142036,stroke:#FFB342,color:#FFB342
style A fill:#0f3d24,stroke:#22c55e,color:#f6fbff
style B fill:#0f3d24,stroke:#22c55e,color:#f6fbff
style C fill:#142036,stroke:#a78bfa,color:#a78bfa
style D fill:#142036,stroke:#2563eb,color:#f6fbff
style E fill:#142036,stroke:#2563eb,color:#f6fbff
Four-Eye Principle — Approval Before Sending4-Augen-Prinzip — Freigabe vor dem Versand
Banking compliance often requires that contracts and offers are approved by a second person (Legal, Finance, or Management) before they are sent to the client. HubSpot does not have a native “block send until approved” mechanism, but the same outcome is achieved through process gates:
Banking-Compliance erfordert oft, dass Verträge und Angebote von einer zweiten Person (Legal, Finance oder Management) genehmigt werden, bevor sie an den Kunden gesendet werden. HubSpot hat keinen nativen „Senden blockieren bis genehmigt“-Mechanismus, aber das gleiche Ergebnis wird durch Prozess-Gates erreicht:
sequenceDiagram
participant S as Sales Rep
participant HS as HubSpot CRM
participant AP as Approver
(Legal / Finance)
participant PD as PandaDoc
participant CL as Client
S->>HS: Move Deal to "Contract Ready"
HS->>HS: Set approval_status = pending
HS->>AP: Task: Review contract (auto-created)
AP->>HS: Set approval_status = approved
HS->>S: Notification: Contract approved
Note over S,PD: Only NOW can Sales send
S->>PD: Send contract to client
PD->>CL: Email with signing link
CL->>PD: Signs contract
PD->>HS: Webhook: contract_status = completed
approval_status = approved. Full technical block. Requires Ops Hub Professional.Ops Hub coded action fängt den PandaDoc-API-Call ab. Dokument wird nur erstellt/gesendet wenn approval_status = approved. Vollständiger technischer Block. Erfordert Ops Hub Professional.Offer & Quote GenerationAngebots- & Quote-Erstellung
| CapabilityFähigkeit | HubSpot Quotes (Sales Hub) | PandaDoc Quotes |
|---|---|---|
| Create from DealAus Deal erstellen | ✓ Native sidebarNative Sidebar | ✓ Deal sidebar widgetDeal-Sidebar-Widget |
| Line items & pricingPositionen & Preise | ✓ Products from CRMProdukte aus CRM | ✓ Custom catalog + CRM mergeEigener Katalog + CRM Merge |
| Approval workflowGenehmigungs-Workflow | ✓ Sales Hub Professional+ | ✓ Built-in approval chainsIntegrierte Freigabeketten |
| E-signature on quoteE-Signatur auf Quote | ✗ No native signingKeine native Signatur | ✓ AdvantageVorteil |
| Custom brandingCustom Branding | LimitedBegrenzt | ✓ Full template controlVolle Template-Kontrolle |
| Min. plan requiredMin. Plan erforderlich | Sales Hub Starter (€15/moMonat) | Business (€39/moMonat) |
Invoice GenerationRechnungserstellung
| CapabilityFähigkeit | HubSpot Invoices (Commerce Hub) | PandaDoc Invoices |
|---|---|---|
| Auto-generate from DealAuto-Erstellung aus Deal | ✓ From Quotes or manualAus Quotes oder manuell | ✓ From Deal dataAus Deal-Daten |
| Payment collectionZahlungseinzug | ✓ Stripe / HubSpot Payments | ✓ Built-in payment linksIntegrierte Payment-Links |
| Recurring invoicesWiederkehrende Rechnungen | ✓ Subscription-basedAbo-basiert | ✓ Recurring schedulesWiederkehrende Zeitpläne |
| DATEV-compatible exportDATEV-kompatibler Export | ✗ Requires middlewareMiddleware erforderlich | ✗ Requires middlewareMiddleware erforderlich |
| German tax complianceDeutsche Steuerkonformität | Partial (no GoBD)Teilweise (kein GoBD) | Partial (no GoBD)Teilweise (kein GoBD) |
| Min. planMin. Plan | Commerce Hub Free (basic) / StarterCommerce Hub Free (Basis) / Starter | Business (€39/moMonat) |
DATEV IntegrationDATEV-Integration
DATEV is the de-facto standard for German accounting and tax reporting. Invoice data from HubSpot/PandaDoc must ultimately reach DATEV Unternehmen Online for bookkeeping. There is no direct HubSpot ↔ DATEV API — a middleware layer is required.
DATEV ist der De-facto-Standard für deutsches Rechnungswesen und Steuermeldungen. Rechnungsdaten aus HubSpot/PandaDoc müssen letztlich DATEV Unternehmen Online für die Buchhaltung erreichen. Es gibt keine direkte HubSpot ↔ DATEV API — eine Middleware-Schicht ist erforderlich.
graph LR
A["Deal
Closed Won"] -->|"WF trigger"| B["Invoice
generated"]
B --> C{"Export
Method"}
C -->|"Option A"| D["sevDesk /
lexoffice"]
C -->|"Option B"| E["GetMyInvoices"]
C -->|"Option C"| F["Manual CSV
Export"]
D --> G["DATEV
Unternehmen Online"]
E --> G
F --> G
style A fill:#0f3d24,stroke:#22c55e,color:#22c55e
style B fill:#142036,stroke:#22d3ee,color:#22d3ee
style C fill:#142036,stroke:#FFB342,color:#FFB342
style D fill:#142036,stroke:#2563eb,color:#2563eb
style E fill:#142036,stroke:#a78bfa,color:#a78bfa
style F fill:#142036,stroke:#2a3f6a,color:#a3b8d0
style G fill:#4a3010,stroke:#FFB342,color:#FFB342
| DATEV OptionDATEV-Option | How it WorksFunktionsweise | AutomationAutomatisierung | CostKosten |
|---|---|---|---|
| A: sevDesk / lexoffice | Cloud accounting tool with native HubSpot connector. Creates invoices, syncs to DATEV via DATEV API.Cloud-Buchhaltungstool mit nativem HubSpot-Connector. Erstellt Rechnungen, synct zu DATEV via DATEV-API. | Full autoVoll automatisch | €15-40/moMonat |
| B: GetMyInvoices | Invoice capture service. Pulls invoices from HubSpot/PandaDoc, exports to DATEV format.Rechnungserfassungsdienst. Zieht Rechnungen aus HubSpot/PandaDoc, exportiert ins DATEV-Format. | Semi-autoHalb-auto | €15-25/moMonat |
| C: Manual CSVManueller CSV | Export invoice data from HubSpot as CSV, import into DATEV Unternehmen Online.Rechnungsdaten aus HubSpot als CSV exportieren, in DATEV Unternehmen Online importieren. | ManualManuell | €0 |
Required CRM PropertiesErforderliche CRM-Properties
esign_nda_status StringSet by PandaDoc/DocuSign webhookGesetzt durch PandaDoc/DocuSign Webhook
Values:Werte: sent, viewed, completed, declined
esign_contract_status StringSet by PandaDoc/DocuSign webhookGesetzt durch PandaDoc/DocuSign Webhook
Values:Werte: sent, viewed, completed, declined
approval_status EnumValues: pending, approved, rejectedWerte: pending, approved, rejected
contract_sent_date DateAuto-set when contract is sentAutomatisch gesetzt bei Vertragsversand
invoice_number StringGenerated by HubSpot or PandaDocGeneriert von HubSpot oder PandaDoc
invoice_status EnumValues: draft, sent, paid, overdueWerte: draft, sent, paid, overdue
datev_export_status EnumValues: pending, exported, errorWerte: pending, exported, error
New Workflows (Planned)Neue Workflows (Geplant)
Actions:
• Set access_tier = nda
• Set nda_signed = true (Company)
• Send notification to SalesBenachrichtigung an Sales senden
PLANNED
Actions:
• Set Deal stage = Closed Won
• WF2 auto-triggers: tier = customerWF2 wird automatisch ausgelöst: tier = customer
• Create Finance task: Generate invoiceFinance-Task erstellen: Rechnung generieren
PLANNED
Actions:
• Set datev_export_status = pendingdatev_export_status = pending setzen
• Notify Finance teamFinance-Team benachrichtigen
• Create task: Export to DATEVAufgabe erstellen: Export nach DATEV
PLANNED
Actions:
• Deal stage = Contract ReadyDeal-Stage = Contract Ready
• Create task for Sales: Prepare contractAufgabe für Sales: Vertrag vorbereiten
PLANNED
esign_* prefix (not pandadoc_ or docusign_). Both tools write to the same properties via External Automations / webhooks. The tool can be swapped without changing any workflows.
Tool-agnostisches Design: CRM-Properties verwenden das esign_*-Präfix (nicht pandadoc_ oder docusign_). Beide Tools schreiben über External Automations / Webhooks in dieselben Properties. Das Tool kann gewechselt werden, ohne Workflows zu ändern.
esign_nda_status = completed, not a Deal stage change. Document creation and sending remain manual Sales actions — full automation requires the respective API.
Limitation: Sowohl PandaDoc als auch DocuSign können in HubSpot nur Contact-basierte Workflows auslösen, nicht Deal-basierte. Workflow-Enrollment verwendet Contact-Property esign_nda_status = completed, nicht einen Deal-Stage-Wechsel. Dokumenterstellung und -versand bleiben manuelle Sales-Aktionen — volle Automatisierung erfordert die jeweilige API.
RecommendationEmpfehlung
HubSpot Workflows
Action: Set tier = prospect
ID: 1784603949
ACTIVE
Action: Branch → Set tier
ID: 1784596543
ACTIVE
Action: Set tier = public
ID: 1784597362
ACTIVE
graph TB
START["Contact Property
Changed"] --> CHECK{"Which property
changed?"}
CHECK -->|"trust_center_enabled
= true"| WF1["WF1: Set tier
= prospect"]
CHECK -->|"trust_center_enabled
= false"| WF3["WF3: Set tier
= public"]
CHECK -->|"Deal Stage
changed"| WF2{"WF2: Which
stage?"}
WF2 -->|"NDA Signed"| NDA["Set tier = nda"]
WF2 -->|"Closed Won"| CW["Set tier = customer"]
WF2 -->|"Closed Lost"| CL["Set tier = public
enabled = false"]
style START fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style CHECK fill:#142036,stroke:#FFB342,color:#FFB342
style WF1 fill:#142036,stroke:#2563eb,color:#2563eb
style WF3 fill:#3d1111,stroke:#ef4444,color:#ef4444
style WF2 fill:#142036,stroke:#FFB342,color:#FFB342
style NDA fill:#142036,stroke:#a78bfa,color:#a78bfa
style CW fill:#0f3d24,stroke:#22c55e,color:#22c55e
style CL fill:#3d1111,stroke:#ef4444,color:#ef4444
Document SecurityDokumentensicherheit
Banking compliance documents require maximum protection. HubSpot File Manager is PUBLIC by default — anyone with a CDN URL can download. This was solved with a multi-layered security model:
Banking-Compliance-Dokumente erfordern maximalen Schutz. HubSpot File Manager ist standardmäßig PUBLIC — jeder mit CDN-URL kann herunterladen. Das wurde durch ein mehrschichtiges Sicherheitsmodell gelöst:
graph TB
REQ["Download Request"] --> L1{"File Access
PRIVATE?"}
L1 -->|"CDN URL"| BLOCK1["404 — CDN blocked"]
L1 -->|"Serverless endpoint"| L2{"Auth Check
isLoggedIn?"}
L2 -->|"No"| BLOCK2["401 — Unauthorized"]
L2 -->|"Yes"| L3{"Tier Validation
contact >= doc?"}
L3 -->|"Insufficient"| BLOCK3["403 — Forbidden"]
L3 -->|"Sufficient"| L4["Files API v3
Generate Signed URL"]
L4 --> L5["CloudFront
Signed URL (15min)"]
L5 --> DL["PDF Download"]
L5 -->|"After 15min"| BLOCK4["404 — URL Expired"]
style REQ fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style L1 fill:#142036,stroke:#FFB342,color:#FFB342
style L2 fill:#142036,stroke:#FFB342,color:#FFB342
style L3 fill:#142036,stroke:#FFB342,color:#FFB342
style L4 fill:#142036,stroke:#22c55e,color:#22c55e
style L5 fill:#142036,stroke:#22c55e,color:#22c55e
style DL fill:#0f3d24,stroke:#22c55e,color:#22c55e
style BLOCK1 fill:#3d1111,stroke:#ef4444,color:#ef4444
style BLOCK2 fill:#3d1111,stroke:#ef4444,color:#ef4444
style BLOCK3 fill:#3d1111,stroke:#ef4444,color:#ef4444
style BLOCK4 fill:#3d1111,stroke:#ef4444,color:#ef4444
| Protection LayerSchutzschicht | ImplementationImplementierung | ResultErgebnis |
|---|---|---|
| File Access | All 12 PDFs set to PRIVATE (Files API PATCH)Alle 12 PDFs auf PRIVATE gesetzt (Files API PATCH) | CDN URLs return 404CDN-URLs geben 404 zurück |
| Auth Check | context.contact.isLoggedIn in Serverless Function |
401 if not logged in401 wenn nicht eingeloggt |
| Tier Validation | Server-side numerical comparison (Contact vs. Document)Serverseitiger numerischer Vergleich (Contact vs. Document) | 403 if tier insufficient403 wenn Tier unzureichend |
| URL Expiry | CloudFront Signed URL, 15 minutes validityCloudFront Signed URL, 15 Minuten Gültigkeit | After expiry: 404Nach Ablauf: 404 |
| No Client Secrets | Private App Token stored as HubSpot SecretPrivate App Token als HubSpot Secret gespeichert | No token visible in browserKein Token im Browser sichtbar |
Security Tests — All PassedSicherheitstests — Alle bestanden
file_by_id() returns a signed-url-redirect URL for PRIVATE files, which requires HubSpot Portal login — NOT CMS Membership login. That's why the Serverless Function was the only viable approach.
Wichtige Erkenntnis: HubLs file_by_id() gibt für PRIVATE-Dateien eine signed-url-redirect-URL zurück, die HubSpot-Portal-Login erfordert — NICHT CMS-Membership-Login. Deshalb war die Serverless-Function der einzig gangbare Weg.
Authentication & SSOAuthentifizierung & SSO
Current: CMS MembershipAktuell: CMS Membership
HubSpot CMS Private Content controls access. Unauthenticated visitors are automatically redirected to /_hcms/mem/login. After login, request.contact is available in HubL and context.contact in Serverless Functions.
HubSpot CMS Private Content steuert den Zugang. Nicht eingeloggte Besucher werden automatisch zu /_hcms/mem/login umgeleitet. Nach Login ist request.contact in HubL und context.contact in Serverless Functions verfügbar.
graph TB
subgraph current["Current: CMS Membership"]
A1["User visits
private page"] --> B1["HubSpot redirects
/_hcms/mem/login"]
B1 --> C1["Email + Password
Login"]
C1 --> D1["request.contact
available in HubL"]
end
subgraph future["Future: Enterprise SAML SSO"]
A2["User visits
private page"] --> B2["HubSpot redirects
to RisiQ IdP"]
B2 --> C2["SSO Login
via Okta / Azure AD"]
C2 --> D2["SAML Assertion
to HubSpot"]
D2 --> E2["request.contact
available in HubL"]
end
style A1 fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B1 fill:#142036,stroke:#FFB342,color:#FFB342
style C1 fill:#142036,stroke:#2a3f6a,color:#f6fbff
style D1 fill:#0f3d24,stroke:#22c55e,color:#22c55e
style A2 fill:#1e3054,stroke:#2a3f6a,color:#f6fbff
style B2 fill:#142036,stroke:#2563eb,color:#2563eb
style C2 fill:#142036,stroke:#2a3f6a,color:#f6fbff
style D2 fill:#142036,stroke:#2a3f6a,color:#f6fbff
style E2 fill:#0f3d24,stroke:#22c55e,color:#22c55e
1. CMS Membership (
/_hcms/mem/login): For website visitors/contacts. Uses membership lists.2. HubSpot Portal (
app.hubspot.com/login): For admin users (Sales, Marketing). signed-url-redirect URLs require THIS login.These are completely independent. A CMS Membership contact is NOT a HubSpot Portal user. Zwei unabhängige Auth-Systeme in HubSpot:
1. CMS Membership (
/_hcms/mem/login): Für Website-Besucher/Kontakte. Verwendet Membership-Listen.2. HubSpot Portal (
app.hubspot.com/login): Für Admin-User (Sales, Marketing). signed-url-redirect URLs benötigen DIESEN Login.Diese sind komplett unabhängig. Ein CMS-Membership-Kontakt ist KEIN HubSpot-Portal-User.
Future: SSO OptionZukunft: SSO-Option
RisiQ manages all user accounts centrally. Bank customers log in via RisiQ's system. This means: Single IdP (RisiQ's own).
RisiQ verwaltet alle Benutzerkonten zentral. Bankkunden loggen sich über RisiQs System ein. Das bedeutet: Single IdP (RisiQs eigener).
| SSO ScenarioSSO-Szenario | SolutionLösung | Code ChangeCodeänderung | CostKosten |
|---|---|---|---|
| Email + Password (current)Email + Passwort (aktuell) | CMS Membership | NoneKeine | Included in CMS HubIm CMS Hub enthalten |
| SSO via RisiQ's IdPSSO über RisiQs IdP | HubSpot Enterprise SAML | NoneKeine | Enterprise plan upgradeEnterprise-Plan Upgrade |
Modules & TemplatesModule & Templates
| ModuleModul | FunctionFunktion | HighlightsBesonderheiten |
|---|---|---|
| trust-center-hero | Configurable hero bannerKonfigurierbarer Hero-Banner | Color contrast algorithm, STYLE tabFarbkontrast-Algorithmus, STYLE-Tab |
| tile-grid | Navigation tiles with live tier lockingNavigations-Kacheln mit Live-Tier-Locking | CRM lookup, lock icon + diagonal stripesCRM-Lookup, Lock-Icon + Diagonalstreifen |
| document-listing | CRM-driven document listCRM-gesteuerte Dokumentenliste | bucket_normalize map, secure file routingbucket_normalize Map, Secure-File-Routing |
| access-gate | Tier-based access gateTier-basierte Zugangs-Sperre | crm_object() lookup, "Contact Sales" CTAcrm_object() Lookup, „Contact Sales“-CTA |
| faq-accordion | Accessible accordionBarrierefreies Akkordeon | CSS transitions, ARIA attributesCSS-Transitions, ARIA-Attribute |
| roadmap-tracker | Vue.js 3 interactive roadmapVue.js 3 interaktiver Roadmap | Search, tabs, architecture diagramSuche, Tabs, Architekturdiagramm |
| card | Base card moduleBasis-Kartenmodul | Reusable for layoutsWiederverwendbar für Layouts |
Pages (9)Seiten (9)
| URL | Template | AccessZugang | FunctionFunktion |
|---|---|---|---|
/trust-center | public | Public | Landing Page, Login-CTA |
/trust-center/home | dashboard | Private | Dashboard with tier badgeDashboard mit Tier-Badge |
/trust-center/security | category | Private | Security documentsSecurity-Dokumente |
/trust-center/infrastructure | category | Private | Infrastructure documentsInfrastructure-Dokumente |
/trust-center/compliance-legal | category | Private | Compliance documentsCompliance-Dokumente |
/trust-center/certifications | category | Private | CertificationsZertifizierungen |
/trust-center/faq | faq | Private | FAQ with 6 entriesFAQ mit 6 Einträgen |
/trust-center/contact | contact | Public | Access request formZugangsanfrage-Formular |
/trust-center/roadmap | roadmap | Public | Interactive project roadmapInteraktiver Projekt-Roadmap |
Implementation StatusImplementierungsstatus
The following table shows the HubSpot-centric implementation progress for the Trust Center core system. These phases cover the foundation — CRM setup, theme modules, access control, security, and automation. The remaining work (Quote-to-Cash, DATEV, SSO, search) is outlined in Sections 6, 8, 9, and 13.
Die folgende Tabelle zeigt den HubSpot-zentrischen Implementierungsfortschritt für das Trust Center Kernsystem. Diese Phasen decken das Fundament ab — CRM-Setup, Theme-Module, Zugangssteuerung, Sicherheit und Automatisierung. Die verbleibende Arbeit (Quote-to-Cash, DATEV, SSO, Suche) ist in den Abschnitten 6, 8, 9 und 13 beschrieben.
| PhasePhase | ContentInhalt | Status |
|---|---|---|
| Phase 1: CRM Setup | Contact/Company/Deal Properties, Custom Object, Seed DataContact/Company/Deal Properties, Custom Object, Seed Data | Done |
| Phase 2: Theme Modules | 7 CMS Modules (Hero, Tile-Grid, Document-Listing, etc.)7 CMS-Module (Hero, Tile-Grid, Document-Listing, etc.) | Done |
| Phase 3: CSS & Styling | Template stylesheet, tier badge colors, responsiveTemplate-Stylesheet, Tier-Badge-Farben, Responsive | Done |
| Phase 4: Templates | 6 page templates6 Seiten-Templates | Done |
| Phase 5: Pages & Config | 9 pages created and published9 Seiten erstellt und veröffentlicht | Done |
| Phase 6: Automation | 3 Workflows (Activation, Deal→Tier, Revocation)3 Workflows (Activation, Deal→Tier, Revocation) | Done |
| Phase 7: Configuration | Private Content, Forms, Email Templates, PipelinePrivate Content, Forms, Email-Templates, Pipeline | Done |
| Phase 8: QA & Testing | All tiers tested, workflow tests, mobile testsAlle Tiers getestet, Workflow-Tests, Mobile-Tests | Done |
| Phase 9: Document Security | Private Files, Serverless Function, Signed URLsPrivate Files, Serverless Function, Signed URLs | Done |
Remaining Work — Full System CompletionVerbleibende Arbeit — Volle Systemfertigstellung
| Future PhaseFuture Phase | Items | HubSpot FeasibilityHubSpot-Machbarkeit |
|---|---|---|
| TC Extensions | Newsflow, Service Status, Incident Form, Trust Metrics, Company Access | 4 Native 1 Partial |
| Sales & Contract | DocuSign NDA, Contract Automation, Maker-Checker, Quote Engine, Contract Expiry | 2 Native 2 Partial 1 Custom |
| Finance | DATEV Integration | 1 Custom |
| Compliance & Audit | Audit Logging, Compliance Reporting, PDF Watermarking, Rate Limiting | 2 Partial 2 Custom |
HubSpot Licensing, Ops Hub & CostsHubSpot-Lizenzierung, Ops Hub & Kosten
Current HubSpot StatusAktueller HubSpot-Status
What Each Hub Tier UnlocksWas jede Hub-Stufe freischaltet
| Feature NeededBenötigtes Feature | Required HubErforderlicher Hub | Min. TierMin. Stufe | In CRM Enterprise?In CRM Enterprise? |
|---|---|---|---|
| Private Content (membership login)Private Content (Membership-Login) | CMS Hub | Professional | ✓ |
| Serverless FunctionsServerless Functions | CMS Hub | Professional | ✓ |
| Custom Objects | Any HubBeliebiger Hub | Enterprise | ✓ |
| Standard WorkflowsStandard-Workflows | Sales / Marketing | Professional | ✓ |
| SAML SSO | CMS Hub | Enterprise | ✓ |
| Quotes (basiceinfach) | Sales Hub | Starter | ✓ |
| Quote Approval WorkflowsQuote-Genehmigungs-Workflows | Sales Hub | Professional | ✓ |
| Invoices | Commerce Hub | Free (basic) | ✓ |
| Custom Coded Actions (JS in workflows)Custom Coded Actions (JS in Workflows) | Operations Hub | Professional | ✓ if CRM Suite Enterprise✓ wenn CRM-Suite Enterprise |
| Data Sync (external systems)Data Sync (externe Systeme) | Operations Hub | Starter | ✓ if CRM Suite Enterprise✓ wenn CRM-Suite Enterprise |
Do We Need Operations Hub?Brauchen wir Operations Hub?
✓ CMS Serverless Functions
✓ Custom Objects (Enterprise)
✓ Standard Workflows (WF1-WF7)
✓ Signed URL document downloadsSigned-URL-Dokumenten-Downloads
✓ PandaDoc / DocuSign integrationIntegration
✓ HubSpot Quotes + Invoices
✓ SAML SSO (Enterprise)
Data Sync — bidirectional sync with external systems (e.g., DATEV middleware auto-sync) Data Sync — bidirektionaler Sync mit externen Systemen (z.B. DATEV-Middleware Auto-Sync)
Data Quality Automation — auto-fix formatting, deduplication Data Quality Automation — Auto-Fix Formatierung, Deduplizierung
Licensing ScenariosLizenzierungsszenarien
| ScenarioSzenario | What You GetWas Sie erhalten | TC ImpactTC-Auswirkung | Ops Hub?Ops Hub? |
|---|---|---|---|
| A: Keep Sales Starter + CMS ProSales Starter + CMS Pro behalten | Basic quotes, standard workflows, private content, serverlessBasis-Quotes, Standard-Workflows, Private Content, Serverless | TC works fullyTC funktioniert voll | ✗ Not includedNicht enthalten |
| B: CRM Suite Enterprise | ALL hubs at Enterprise: Sales, Marketing, Service, CMS, Ops, CommerceALLE Hubs auf Enterprise: Sales, Marketing, Service, CMS, Ops, Commerce | TC + all future featuresTC + alle Zukunfts-Features | ✓ IncludedInkludiert |
| C: Sales Enterprise onlyeinzeln | Advanced sales tools + custom objects. CMS Hub must stay Pro+ separately.Erweiterte Sales-Tools + Custom Objects. CMS Hub muss separat auf Pro+ bleiben. | TC worksTC funktioniert | ✗ Must buy separatelyMuss separat gekauft werden |
Trust Center Cost BreakdownTrust Center Kostenaufstellung
HubSpot Platform Cost (required upgrade from Free/Starter)HubSpot-Plattformkosten (erforderliches Upgrade von Free/Starter)
| ScenarioSzenario | What’s IncludedWas enthalten ist | ~Cost / Month~Kosten / Monat | Onboarding (one-time)Onboarding (einmalig) |
|---|---|---|---|
| A: Individual HubsEinzel-Hubs | Content Hub Pro (~$500) + Sales Hub Pro (~$100/seat, min. 1) separatelyContent Hub Pro (~$500) + Sales Hub Pro (~$100/Seat, min. 1) separat | ~$600/moMo. | ~$3,000 |
| B: Customer Platform Pro | All hubs at Professional (Content, Sales, Service, Ops, Commerce) — bundled discountAlle Hubs auf Professional (Content, Sales, Service, Ops, Commerce) — Bundle-Rabatt | ~$1,300/moMo. | ~$7,000 |
| C: Customer Platform Enterprise | All hubs at Enterprise: Custom Objects, SAML SSO, Ops Hub coded actions, advanced automationAlle Hubs auf Enterprise: Custom Objects, SAML SSO, Ops Hub Coded Actions, erweiterte Automatisierung | ~$4,300/moMo. | ~$12,000 |
Prices in USD, approximate (HubSpot lists EUR/USD at similar rates). Annual commitment required for Professional+. Seat-based hubs scale with team size. Verify exact pricing at hubspot.com/pricing.Preise in USD, ca.-Angaben (HubSpot listet EUR/USD zu ähnlichen Raten). Jahresvertrag für Professional+ erforderlich. Seat-basierte Hubs skalieren mit Teamgröße. Genaue Preise unter hubspot.com/pricing prüfen.
Additional TC Tools (architecture-independent)Zusätzliche TC-Tools (architektur-unabhängig)
| ToolTool | Plan | Cost / MonthKosten / Monat | NoteAnmerkung |
|---|---|---|---|
| PandaDoc oroder DocuSign | Business / Standard | $25-49/moMo. | NDA + Contract + Quote + Invoice. Required in both architectures.NDA + Vertrag + Quote + Rechnung. In beiden Architekturen erforderlich. |
| DATEV Middleware | sevDesk / lexoffice | $15-40/moMo. | Invoice → DATEV export. Required in both architectures.Rechnung → DATEV-Export. In beiden Architekturen erforderlich. |
Hybrid-Only Additional ToolsNur-Hybrid zusätzliche Tools
| ToolTool | Plan | Cost / MonthKosten / Monat | NoteAnmerkung |
|---|---|---|---|
| Sanity | Growth (3-5 seats) | $45-75/moMo. | Headless CMS for editorial workflowHeadless CMS für Editorial-Workflow |
| Vercel | Pro | ~$20/moMo. | Next.js hosting + CI/CDNext.js-Hosting + CI/CD |
| AWS S3 | Pay-as-you-go | ~$1/moMo. | Document storage (~300MB, ~500 req/mo)Dokumentenspeicher (~300MB, ~500 Req./Mo.) |
| Algolia | Free / Build | $0/moMo. | Free tier covers initial volumeFree Tier deckt initiales Volumen ab |
Total Cost Comparison (monthly recurring)Gesamtkostenvergleich (monatlich wiederkehrend)
| HubSpot-CentricHubSpot-Zentrisch | Hybrid | |
|---|---|---|
| HubSpot PlatformHubSpot-Plattform | $600-4,300/moMo. (Scenario A-CSzenario A-C) | $600-4,300/moMo. (same — CRM always neededgleich — CRM immer nötig) |
| Shared ToolsGemeinsame Tools | $40-89/moMo. (PandaDoc + DATEV) | $40-89/moMo. (PandaDoc + DATEV) |
| Hybrid-Only ToolsNur-Hybrid Tools | $0 | $66-96/moMo. (Sanity + Vercel + S3 + Algolia) |
| Total | $640-4,389/moMo. | $706-4,485/moMo. |
Architecture Comparison & Open PointsArchitekturvergleich & Offene Punkte
Neutral comparison assuming medium-to-long term scale: 50+ bank customers, 100+ documents, dedicated compliance editorial team. Both approaches evaluated from scratch.
Neutraler Vergleich unter Annahme mittel- bis langfristiger Skalierung: 50+ Bankkunden, 100+ Dokumente, dediziertes Compliance-Editorial-Team. Beide Ansätze von Grund auf bewertet.
• Quote calculation logic — lives in HubSpot Products + PandaDoc, regardless of frontend (see Section 6)
• Four-eye principle — Deal stage gates + PandaDoc approval workflow, same in both approaches
• DATEV integration — middleware always required, no direct API exists for either architecture
• PandaDoc vs. DocuSign — tool-level decision, not architecture-level
• User provisioning — HubSpot CRM → webhook pattern, identical in both
The architecture choice (HubSpot-native vs. hybrid) primarily affects: frontend rendering, document storage, search infrastructure, and authentication method. Wichtige Klarstellung: Mehrere kritische Punkte sind architektur-unabhängig und funktionieren in beiden Ansätzen identisch:
• Quote-Berechnungslogik — lebt in HubSpot Products + PandaDoc, unabhängig vom Frontend (siehe Abschnitt 6)
• 4-Augen-Prinzip — Deal-Stage-Gates + PandaDoc-Genehmigungs-Workflow, in beiden Ansätzen gleich
• DATEV-Integration — Middleware immer erforderlich, keine direkte API in beiden Architekturen
• PandaDoc vs. DocuSign — Tool-Level-Entscheidung, nicht Architektur-Level
• User Provisioning — HubSpot CRM → Webhook-Pattern, identisch in beiden
Die Architekturwahl (HubSpot-nativ vs. hybrid) betrifft hauptsächlich: Frontend-Rendering, Dokumentenspeicher, Suchinfrastruktur und Authentifizierungsmethode.
Architecture ComparisonArchitekturvergleich
| CriterionKriterium | HubSpot Native | Hybrid (Sanity+S3+Next.js) |
|---|---|---|
| Systems to operateZu betreibende Systeme | 1 (HubSpot) | 5 (Sanity, S3, Algolia, Vercel, HubSpot) |
| Frontend | HubSpot CMS (HubL templates) — limited design flexibilityeingeschränkte Design-Flexibilität | Next.js / React — full UI/UX controlvolle UI/UX-Kontrolle |
| Backend | HubSpot Serverless (128MB, 10s, no npmkein npm) — constrainedeingeschränkt | Vercel Serverless — flexible, npm support, higher limitsflexibel, npm-Support, höhere Limits |
| Content Editorial | HubSpot CRM records — functional but not designed for editorial teamsDatensätze — funktional aber nicht für Editorial-Teams designt | Sanity Studio — purpose-built editorial workflow for compliance teamsdedizierter Editorial-Workflow für Compliance-Teams |
| Document Search (100+ docs)Dokumentensuche (100+ Docs) | HubSpot Site Search — basic, no tier-aware filtering. HubDB-based workaround possible but limited.einfach, kein Tier-aware Filter. HubDB-basierter Workaround möglich aber begrenzt. | Algolia — tier-filtered, faceted, instant resultstier-gefiltert, facettiert, sofortige Ergebnisse |
| Document Storage | HubSpot File Manager + Signed URLs (15min expiry) | S3 + Presigned URLs (60s expiry) |
| SSO — Single IdPEinzelner IdP | Enterprise SAML — config only, no code changenur Config, keine Codeänderung | Standard SSO integration via Next.js middlewareStandard-SSO-Integration via Next.js-Middleware |
| Product Entitlements | Would need custom CRM properties + HubL logic. Achievable but adds complexity.Erfordert Custom CRM Properties + HubL-Logik. Machbar aber erhöht Komplexität. | Built into data model (companyScope, productEntitlements)Im Datenmodell integriert (companyScope, productEntitlements) |
| Company-Specific DocsFirmenspezifische Docs | Achievable via doc_scope CRM property + association queryMachbar über doc_scope CRM Property + Association Query | Native Sanity reference (companyScope field)Native Sanity-Referenz (companyScope-Feld) |
| My Risiq Dashboard | Limited — HubL templates lack dynamic interactivity. Would need custom JS + API calls.Limitiert — HubL-Templates fehlt dynamische Interaktivität. Würde Custom JS + API-Calls erfordern. | Well-suited — Next.js + API routes enable rich interactive dashboardsGut geeignet — Next.js + API-Routes ermöglichen interaktive Dashboards |
| Quote-to-Cash | PandaDoc oroder DocuSign + HubSpot Quotes + Commerce Hub | PandaDoc oroder DocuSign (identical integrationidentische Integration) |
| DATEV | Middleware required (sevDesk/lexoffice)Middleware erforderlich (sevDesk/lexoffice) | Middleware required (identical constraint)Middleware erforderlich (identische Einschränkung) |
| Ops Hub | Not required for core TC. Needed for coded actions (complex calculations, DATEV sync). Included in CRM Suite Enterprise.Für Kern-TC nicht erforderlich. Für Coded Actions (komplexe Berechnungen, DATEV Sync) nötig. In CRM Suite Enterprise enthalten. | Required for line items → company property sync workflowsErforderlich für Line Items → Company Property Sync Workflows |
| CRM IntegrationIntegration | Native — CRM data accessed directly via HubL, no sync neededNativ — CRM-Daten direkt via HubL, kein Sync nötig | Requires sync layer (HubSpot ↔ Sanity ↔ S3) — adds consistency management effortErfordert Sync-Layer (HubSpot ↔ Sanity ↔ S3) — erhöht Konsistenz-Management-Aufwand |
| Team Training | HubSpot only — lower learning curveNur HubSpot — geringere Lernkurve | HubSpot + Sanity + Next.js — broader skill requirementsHubSpot + Sanity + Next.js — breitere Skill-Anforderungen |
| Deployment | hs upload — simple but manualeinfach aber manuell | Vercel CI/CD + S3 + Sanity Publish — automated but multi-stepVercel CI/CD + S3 + Sanity Publish — automatisiert aber mehrstufig |
| Monitoring & DebuggingÜberwachung & Debugging | Single platform logs — limited detailEinzelne Plattform-Logs — begrenzte Details | Distributed logs across services — more detailed but harder to correlateVerteilte Logs über Dienste — detaillierter aber schwerer zu korrelieren |
| Build Time (from scratch)Bauzeit (von Null) | ~6-9 weeksWochen | ~12-18 weeksWochen |
| Total Monthly CostMonatl. Gesamtkosten | $640-4,389 (HS platform + shared toolsHS-Plattform + gemeinsame Tools) | $706-4,485 (HS platform + shared + hybrid toolsHS-Plattform + gemeinsame + Hybrid-Tools) |
| Scalability ModelSkalierungsmodell | Platform-bound — HubSpot capabilities are the ceiling. External tools (Algolia) can be layered on when needed.Plattform-gebunden — HubSpot-Fähigkeiten sind die Obergrenze. Externe Tools (Algolia) können bei Bedarf ergänzt werden. | Modular from start — each component independently scalable. Higher upfront effort, fewer constraints later.Modular von Anfang an — jede Komponente unabhängig skalierbar. Höherer Anfangsaufwand, weniger Einschränkungen später. |
Where Each Approach ExcelsWo jeder Ansatz glänzt
- Lower operational complexity — one primary platform to manage, monitor, and invoice
- Geringere operationelle Komplexität — eine primäre Plattform für Verwaltung, Monitoring und Abrechnung
- No data sync needed — CRM data accessed directly via HubL, no cross-system consistency management
- Kein Daten-Sync nötig — CRM-Daten direkt via HubL, kein systemübergreifendes Konsistenz-Management
- Shorter build time — ~6-9 weeks (fewer integrations to wire up)
- Kürzere Bauzeit — ~6-9 Wochen (weniger Integrationen)
- Lower infrastructure cost — €40-79/mo (e-sign + DATEV only)
- Geringere Infrastrukturkosten — €40-79/Monat (nur E-Sign + DATEV)
- Managed platform — HubSpot handles hosting, security updates, uptime
- Verwaltete Plattform — HubSpot übernimmt Hosting, Sicherheitsupdates, Uptime
- Superior editorial workflow — Sanity Studio is purpose-built for content teams
- Überlegener Editorial-Workflow — Sanity Studio ist für Content-Teams gebaut
- Real search infrastructure — Algolia provides tier-filtered, faceted, instant search at scale
- Echte Suchinfrastruktur — Algolia bietet tier-gefilterte, facettierte, sofortige Suche in großem Maßstab
- Full frontend control — Next.js/React enables polished UX, important for investor demos
- Volle Frontend-Kontrolle — Next.js/React ermöglicht polierte UX, wichtig für Investoren-Demos
- Independent frontend deployment — Vercel CI/CD enables atomic deploys, rollbacks, and preview environments
- Unabhängiges Frontend-Deployment — Vercel CI/CD ermöglicht atomare Deploys, Rollbacks und Preview-Umgebungen
- Richer data model — product entitlements, company-scoped docs, flexible content schema
- Reicheres Datenmodell — Produkt-Entitlements, firmenspezifische Docs, flexibles Content-Schema
Limitations of EachLimitierungen beider Ansätze
- No tier-aware search — HubSpot Site Search cannot filter by access tier. Becomes a real problem at 100+ documents.
- Keine tier-aware Suche — HubSpot Site Search kann nicht nach Zugangsstufe filtern. Wird bei 100+ Dokumenten ein echtes Problem.
- Limited frontend flexibility — HubL templates constrain UI/UX design. Custom interactive dashboards (My Risiq) are difficult to implement.
- Eingeschränkte Frontend-Flexibilität — HubL-Templates beschränken UI/UX-Design. Interaktive Custom-Dashboards (My Risiq) sind schwer umsetzbar.
- Serverless constraints — 128MB memory, 10s timeout, no npm packages. Complex calculations may hit these limits.
- Serverless-Einschränkungen — 128MB Speicher, 10s Timeout, keine npm-Pakete. Komplexe Berechnungen können an diese Grenzen stoßen.
- Editorial workflow gap — CRM records are functional but lack draft/publish, version history, and content approval workflows that Sanity Studio provides.
- Editorial-Workflow-Lücke — CRM-Datensätze sind funktional, aber ohne Draft/Publish, Versionshistorie und Content-Freigabe-Workflows die Sanity Studio bietet.
- No preview/staging environments —
hs uploaddeploys directly to production. No atomic rollbacks, no branch previews. - Keine Preview-/Staging-Umgebungen —
hs uploaddeployed direkt in die Produktion. Keine atomaren Rollbacks, keine Branch-Previews. - Product entitlements — not natively supported, requires custom CRM properties + HubL logic to add this dimension.
- Produkt-Entitlements — nicht nativ unterstützt, erfordert Custom CRM Properties + HubL-Logik für diese Dimension.
- Higher operational complexity — 5 systems to build, integrate, maintain, and monitor across different vendors.
- Höhere operationelle Komplexität — 5 Systeme zu bauen, integrieren, warten und überwachen über verschiedene Anbieter.
- Data consistency management — HubSpot ↔ Sanity ↔ S3 sync requires careful orchestration and conflict handling.
- Datenkonsistenz-Management — HubSpot ↔ Sanity ↔ S3 Sync erfordert sorgfältige Orchestrierung und Konfliktbehandlung.
- Ops Hub dependency — key workflows (line items → company properties) require Operations Hub.
- Ops Hub Abhängigkeit — Schlüssel-Workflows (Line Items → Company Properties) erfordern Operations Hub.
- Broader skill requirements — team must operate HubSpot + Sanity + Next.js/Vercel.
- Breitere Skill-Anforderungen — Team muss HubSpot + Sanity + Next.js/Vercel betreiben.
- Distributed debugging — error tracing across 5 systems requires structured logging and correlation.
- Verteiltes Debugging — Fehlersuche über 5 Systeme erfordert strukturiertes Logging und Korrelation.
- Longer build time — ~12-18 weeks from scratch; more integrations to wire and test.
- Längere Bauzeit — ~12-18 Wochen von Null; mehr Integrationen zu verdrahten und testen.
- All systems must be built and integrated upfront
- Alle Systeme müssen vorab gebaut und integriert werden
Implementation Timeline — Side by SideImplementierungszeitplan — Seite an Seite
graph TB
subgraph HN["HubSpot Native"]
direction LR
H1["Phase 1
CRM + CMS + Serverless
Tier access + Docs"]
H2["Phase 2
PandaDoc/DocuSign
Quotes + Invoices
DATEV Middleware"]
H3["Phase 3
HubDB Search
Expanded Tiles
Ops Hub coded actions"]
H4["Phase 4
Enterprise SSO
Advanced Portal"]
H1 --> H2
H2 --> H3
H3 --> H4
end
subgraph HY["Hybrid (Sanity + S3 + Next.js)"]
direction LR
Y1["Phase 1
CRM + Next.js Frontend
Sanity Studio
S3 Storage"]
Y2["Phase 2
PandaDoc/DocuSign
Quotes + Invoices
DATEV Middleware"]
Y3["Phase 3
Algolia Search
Expanded Content
Custom Webhooks"]
Y4["Phase 4
Enterprise SSO
Advanced Portal"]
Y1 --> Y2
Y2 --> Y3
Y3 --> Y4
end
style HN fill:#0a1628,stroke:#2563eb,color:#2563eb
style HY fill:#0a1628,stroke:#a78bfa,color:#a78bfa
style H1 fill:#142036,stroke:#2563eb,color:#f6fbff
style H2 fill:#142036,stroke:#2563eb,color:#f6fbff
style H3 fill:#142036,stroke:#2563eb,color:#f6fbff
style H4 fill:#142036,stroke:#2563eb,color:#f6fbff
style Y1 fill:#1a1040,stroke:#a78bfa,color:#f6fbff
style Y2 fill:#1a1040,stroke:#a78bfa,color:#f6fbff
style Y3 fill:#1a1040,stroke:#a78bfa,color:#f6fbff
style Y4 fill:#1a1040,stroke:#a78bfa,color:#f6fbff
| PhasePhase | HubSpot NativeHubSpot Nativ | Hybrid StackHybrid-Stack | TimelineZeitrahmen |
|---|---|---|---|
| Phase 1 — Core TCPhase 1 — Kern-TC | CRM + CMS + Serverless. Tier-based access, document listing, secure downloads, membership login.CRM + CMS + Serverless. Tier-basierter Zugang, Dokumentenliste, sichere Downloads, Membership-Login. | CRM + Next.js + Sanity + S3. Same features but built on custom frontend + headless CMS + cloud storage.CRM + Next.js + Sanity + S3. Gleiche Features, aber auf Custom-Frontend + Headless CMS + Cloud-Storage aufgebaut. | Native: ~4-6 wks Hybrid: ~8-12 wksNativ: ~4-6 Wo. Hybrid: ~8-12 Wo. |
| Phase 2 — Quote-to-CashPhase 2 — Quote-to-Cash | PandaDoc/DocuSign integration, NDA → Offer → Quote → Contract → Invoice automation, DATEV middleware (sevDesk/lexoffice).PandaDoc/DocuSign-Integration, NDA → Angebot → Quote → Vertrag → Rechnung Automatisierung, DATEV-Middleware (sevDesk/lexoffice). | Same integrations — PandaDoc/DocuSign + DATEV middleware are tool-level, architecture-independent. Identical effort for both approaches.Gleiche Integrationen — PandaDoc/DocuSign + DATEV-Middleware sind tool-basiert, architektur-unabhängig. Identischer Aufwand für beide Ansätze. | ~3-4 wks (both)~3-4 Wo. (beide) |
| Phase 3 — ScalePhase 3 — Skalierung | HubDB-powered search, 4→12+ tile expansion, Ops Hub coded actions for advanced automation.HubDB-basierte Suche, 4→12+ Tile-Erweiterung, Ops Hub coded actions für erweiterte Automatisierung. | Algolia full-text search, Sanity content expansion, custom Next.js API routes for automation.Algolia-Volltextsuche, Sanity-Content-Erweiterung, Custom Next.js API-Routes für Automatisierung. | Native: ~3-5 wks Hybrid: ~4-6 wksNativ: ~3-5 Wo. Hybrid: ~4-6 Wo. |
| Phase 4 — EnterprisePhase 4 — Enterprise | HubSpot Enterprise SSO (single IdP). Advanced portal features, My Risiq dashboard.HubSpot Enterprise SSO (einzelner IdP). Erweiterte Portal-Features, My Risiq Dashboard. | Enterprise SSO via Next.js middleware. Advanced portal features, personalized dashboards.Enterprise SSO via Next.js-Middleware. Erweiterte Portal-Features, personalisierte Dashboards. | Native: ~4-8 wks Hybrid: ~2-3 wksNativ: ~4-8 Wo. Hybrid: ~2-3 Wo. |
HubSpot platform upgrade is required for both approaches. Hybrid adds ~$66-96/mo on top. See Section 12 for full breakdown. HubSpot-Plattform-Upgrade ist für beide Ansätze erforderlich. Hybrid kommt ~$66-96/Mo. hinzu. Siehe Abschnitt 12 für vollständige Aufstellung.
What Both Approaches ShareWas beide Ansätze gemeinsam haben
Independent IT Architect AssessmentUnabhängige IT-Architekten-Bewertung
If I were building a secure, tier-based document portal for ~100 banking customers with no prior technology commitment, here is how I would approach it:
Wenn ich ein sicheres, tier-basiertes Dokumentenportal für ~100 Bankkunden ohne vorherige Technologie-Festlegung bauen würde, wäre mein Ansatz folgender:
What I would NOT doWas ich NICHT tun würde
What I WOULD doWas ich tun WÜRDE
My recommended architectureMeine empfohlene Architektur
graph TB
subgraph Core["Core (Keep)"]
CRM["HubSpot CRM
Contacts, Companies, Deals
Tier Workflows, Custom Objects"]
PD["PandaDoc / DocuSign
NDA + Quote + Contract"]
end
subgraph Frontend["Frontend (Replace HubL)"]
FE["Next.js / Astro
on Vercel"]
API["HubSpot API
CRM data"]
SF["Serverless Functions
Vercel Edge or CF Workers"]
end
subgraph Storage["Storage (Move)"]
S3["S3 / R2
Private Documents"]
SIGN["Presigned URLs
60s expiry"]
end
subgraph Keep["Keep As-Is"]
DATEV["DATEV Middleware
sevDesk / lexoffice"]
SSO["Enterprise SAML
Single IdP"]
end
CRM --> API
API --> FE
FE --> SF
SF --> S3
S3 --> SIGN
CRM --> PD
CRM --> DATEV
style Core fill:#0a1628,stroke:#22c55e,color:#22c55e
style Frontend fill:#0a1628,stroke:#2563eb,color:#2563eb
style Storage fill:#0a1628,stroke:#a78bfa,color:#a78bfa
style Keep fill:#0a1628,stroke:#FFB342,color:#FFB342
style CRM fill:#142036,stroke:#22c55e,color:#f6fbff
style PD fill:#142036,stroke:#22c55e,color:#f6fbff
style FE fill:#142036,stroke:#2563eb,color:#f6fbff
style API fill:#142036,stroke:#2563eb,color:#f6fbff
style SF fill:#142036,stroke:#2563eb,color:#f6fbff
style S3 fill:#142036,stroke:#a78bfa,color:#f6fbff
style SIGN fill:#142036,stroke:#a78bfa,color:#f6fbff
style DATEV fill:#142036,stroke:#FFB342,color:#f6fbff
style SSO fill:#142036,stroke:#FFB342,color:#f6fbff
| LayerSchicht | ToolTool | WhyWarum |
|---|---|---|
| CRM + Automation | HubSpot CRM (Professional+) | Already built. Best-in-class for contact/deal management, workflows, tier logic. Keep.Bereits gebaut. Best-in-Class für Kontakt-/Deal-Management, Workflows, Tier-Logik. Behalten. |
| Frontend | Next.js on Vercel | Full UI control, preview environments, CI/CD, SSR for SEO. Replace HubL.Volle UI-Kontrolle, Preview-Umgebungen, CI/CD, SSR für SEO. HubL ersetzen. |
| Document StorageDokumentenspeicher | S3 / R2 | Presigned URLs with 60s expiry. More secure than HubSpot File Manager’s 15min signed URLs. Replace HS Files.Presigned URLs mit 60s Ablauf. Sicherer als HubSpot File Managers 15min Signed URLs. HS Files ersetzen. |
| E-Signature | PandaDoc / DocuSign | Architecture-independent. Same tool in both approaches. Keep.Architektur-unabhängig. Gleiches Tool in beiden Ansätzen. Behalten. |
| SSO | HubSpot Enterprise SAML | Single IdP, config-only. No extra system needed. Keep.Einzelner IdP, nur Konfiguration. Kein zusätzliches System nötig. Behalten. |
| Accounting | DATEV + sevDesk/lexoffice | Standard German accounting export. Architecture-independent. Keep.Standard-deutscher Buchhaltungsexport. Architektur-unabhängig. Behalten. |
| Search (if needed)Suche (bei Bedarf) | Add Algolia when >200 docsAlgolia ergänzen bei >200 Docs | Don’t over-engineer. Simple client-side filtering works for 100-200 documents. Add search infrastructure when it becomes a pain point.Nicht über-engineeren. Einfaches Client-Side Filtering reicht für 100-200 Dokumente. Suchinfrastruktur ergänzen, wenn es zum Schmerzpunkt wird. |
| Editorial (if needed)Editorial (bei Bedarf) | Add Sanity when editorial team existsSanity ergänzen wenn Editorial-Team existiert | HubSpot CRM records are fine for a small team. Sanity adds value only when you have dedicated compliance editors who need draft/publish workflows.HubSpot CRM-Datensätze reichen für ein kleines Team. Sanity bringt erst Mehrwert bei dediziertem Compliance-Editorial-Team mit Draft/Publish-Workflows. |
The uncomfortable truth about both proposalsDie unbequeme Wahrheit über beide Ansätze
The pragmatic path forwardDer pragmatische Weg nach vorne
Phase 2 (with revenue): When the first 20-30 customers are active and the UX becomes a bottleneck — not before — replace the HubL frontend with Next.js. Keep the CRM. Move documents from HubSpot Files to S3. This is a controlled migration, not a rewrite: the CRM data model, workflows, and tier logic stay exactly the same. Only the rendering layer changes.
Phase 3 (with scale): When 200+ documents make search painful, add Algolia. When the editorial team needs proper content workflows, add Sanity. When the investor says “this needs to look like SAP Trust Center”, you already have the frontend framework to deliver.
Bottom line: Don’t build for Phase 3 when you’re in Phase 1. But don’t pretend Phase 1 is the final architecture either. The CRM is permanent. The frontend is replaceable. Plan accordingly. Phase 1 (jetzt): Ausliefern mit HubSpot CRM + HubSpot CMS. Das Fundament ist gebaut, getestet und funktioniert. Das CRM-Backbone ist korrekt. Das Frontend ist funktional. Kunden reinbringen.
Phase 2 (mit Umsatz): Wenn die ersten 20-30 Kunden aktiv sind und die UX zum Engpass wird — nicht vorher — das HubL-Frontend durch Next.js ersetzen. CRM behalten. Dokumente von HubSpot Files nach S3 verschieben. Das ist eine kontrollierte Migration, kein Rewrite: CRM-Datenmodell, Workflows und Tier-Logik bleiben exakt gleich. Nur der Rendering-Layer ändert sich.
Phase 3 (mit Skalierung): Wenn 200+ Dokumente die Suche schmerzhaft machen, Algolia ergänzen. Wenn das Editorial-Team echte Content-Workflows braucht, Sanity ergänzen. Wenn der Investor sagt „das muss wie SAP Trust Center aussehen“, hat man bereits das Frontend-Framework dafür.
Fazit: Nicht für Phase 3 bauen, wenn man in Phase 1 ist. Aber auch nicht so tun, als wäre Phase 1 die finale Architektur. Das CRM ist permanent. Das Frontend ist austauschbar. Entsprechend planen.
Open PointsOffene Punkte
| # | DecisionEntscheidung | ImpactAuswirkung | PhasePhase |
|---|---|---|---|
| 1 | SSO required? If yes: which IdP (Azure AD, Okta, Google)?SSO erforderlich? Wenn ja: welcher IdP (Azure AD, Okta, Google)? | Enterprise SAML upgrade, config-only, no code change. Single IdP supported.Enterprise SAML-Upgrade, nur Konfiguration, keine Codeänderung. Einzelner IdP unterstützt. | Phase 3 |
| 2 | PandaDoc or DocuSign? (see Section 6)PandaDoc oder DocuSign? (siehe Abschnitt 6) | Both analyzed, tool-agnostic CRM design ready. DocuSign = banking standard, PandaDoc = deeper HubSpot integration.Beide analysiert, tool-agnostisches CRM-Design bereit. DocuSign = Banking-Standard, PandaDoc = tiefere HubSpot-Integration. | Phase 1 |
| 3 | DATEV Unternehmen Online version & connector type?DATEV Unternehmen Online Version & Connector-Typ? | MAESN = PDF-only, one-way. Must confirm client uses this specific DATEV variant.MAESN = nur PDF, Einweg. Muss bestätigen, dass Kunde diese spezifische DATEV-Variante nutzt. | Phase 3 |
| 4 | Complete document classification matrix?Vollständige Dokument-Klassifikationsmatrix? | Determines 4→12 tile expansion and partial visibility rules.Bestimmt 4→12 Tile-Erweiterung und Partial-Visibility-Regeln. | Phase 1 |
| 5 | Four-eyes principle: Who approves contracts?4-Augen-Prinzip: Wer genehmigt Verträge? | Defines approval workflow roles (Legal, Finance, Management).Definiert Genehmigungs-Workflow-Rollen (Legal, Finance, Management). | Phase 1 |
| 6 | Audit logging requirement (regulatory)?Audit-Logging-Anforderung (regulatorisch)? | Determines if external audit service needed or HubSpot activity log suffices.Bestimmt, ob externer Audit-Service nötig oder HubSpot Activity Log ausreicht. | Phase 3 |
| 7 | Service status data source (manual or API)?Service-Status-Datenquelle (manuell oder API)? | HubDB (manual) vs. external status page API integration.HubDB (manuell) vs. externe Status-Page-API-Integration. | Phase 1 |
| 8 | Contract renewal: New deal or update existing?Vertragserneuerung: Neuer Deal oder bestehender aktualisieren? | Affects tier management logic and deal pipeline structure.Beeinflusst Tier-Management-Logik und Deal-Pipeline-Struktur. | Phase 1 |
| 9 | Product entitlements model needed?Produkt-Entitlements-Modell benötigt? | If yes: add product dimension to access control. CRM property + module update.Wenn ja: Produkt-Dimension zur Zugangskontrolle hinzufügen. CRM-Property + Modul-Update. | Phase 2-3 |
| 10 | My Risiq personalized dashboard scope?My Risiq personalisiertes Dashboard Umfang? | Contract view, tickets, meeting booking, due diligence packages. Defines API surface.Vertragsansicht, Tickets, Meeting-Buchung, Due-Diligence-Pakete. Definiert API-Oberfläche. | Phase 3 |
| 11 | HubSpot licensing: CRM Suite Enterprise or individual hubs?HubSpot-Lizenz: CRM Suite Enterprise oder Einzel-Hubs? | Suite Enterprise = Ops Hub included, SSO included, all features unlocked. Individual = must buy Ops Hub separately if needed. See Section 12.Suite Enterprise = Ops Hub inkl., SSO inkl., alle Features freigeschaltet. Einzel = Ops Hub bei Bedarf separat kaufen. Siehe Abschnitt 12. | Phase 0-1 |
| 12 | Quote-to-Cash tool selection: PandaDoc all-in-one vs. DocuSign + HubSpot Quotes?Quote-to-Cash Tool-Auswahl: PandaDoc All-in-One vs. DocuSign + HubSpot Quotes? | PandaDoc covers NDA+Offer+Quote+Contract+Invoice in one tool. DocuSign needs HubSpot Quotes + Commerce Hub for full pipeline. See Section 6.PandaDoc deckt NDA+Angebot+Quote+Vertrag+Rechnung in einem Tool ab. DocuSign benötigt HubSpot Quotes + Commerce Hub für volle Pipeline. Siehe Abschnitt 6. | Phase 1 |
| 13 | DATEV middleware choice: sevDesk, lexoffice, or manual?DATEV-Middleware-Wahl: sevDesk, lexoffice oder manuell? | sevDesk/lexoffice = full automation (€15-40/mo). Manual CSV = free but labor-intensive. Confirm which DATEV variant the client uses (Unternehmen Online?). See Section 6.sevDesk/lexoffice = volle Automatisierung (€15-40/Monat). Manueller CSV = kostenlos aber arbeitsintensiv. Bestätigen, welche DATEV-Variante der Kunde nutzt (Unternehmen Online?). Siehe Abschnitt 6. | Phase 1-2 |
| 14 | Invoice requirements: Recurring, one-time, or both?Rechnungsanforderungen: Wiederkehrend, einmalig oder beides? | Determines Commerce Hub configuration, PandaDoc invoice template design, and DATEV export format.Bestimmt Commerce-Hub-Konfiguration, PandaDoc-Rechnungsvorlagen-Design und DATEV-Exportformat. | Phase 1 |
| 15 | Exact HubSpot license level? Sales Starter is insufficient.Genaue HubSpot-Lizenzstufe? Sales Starter reicht nicht aus. | Minimum: Sales Hub Professional for approval workflows + custom reporting. CRM Suite Enterprise is optimal (includes Ops Hub, SSO, Custom Objects, Commerce Hub). See Section 12.Minimum: Sales Hub Professional für Genehmigungs-Workflows + Custom Reporting. CRM Suite Enterprise ist optimal (inkl. Ops Hub, SSO, Custom Objects, Commerce Hub). Siehe Abschnitt 12. | Pre-Build |
| 16 | Where is the “command center”? Central place to orchestrate all flows (documents, approvals, provisioning).Wo ist die „Kommandozentrale“? Zentraler Ort zur Orchestrierung aller Flows (Dokumente, Genehmigungen, Provisioning). | HubSpot-native: the CRM Deal record IS the command center (stage gates, tasks, timeline, associated docs). Hybrid: same CRM backend, different frontend view. The orchestration layer is identical.HubSpot-nativ: der CRM Deal-Datensatz IST die Kommandozentrale (Stage Gates, Tasks, Timeline, zugeordnete Docs). Hybrid: gleiches CRM-Backend, anderes Frontend-View. Die Orchestrierungsebene ist identisch. | Phase 1 |
| 17 | UX quality bar for investor “show and tell”?UX-Qualitätsstandard für Investoren-„Show and Tell“? | If polished custom UI is a hard requirement for investor demos: hybrid frontend (Next.js) has more design freedom. If enterprise-grade and functional suffices: HubSpot CMS with good theming delivers. Clarify with stakeholders.Wenn polierte Custom-UI eine harte Anforderung für Investoren-Demos ist: Hybrid-Frontend (Next.js) bietet mehr Designfreiheit. Wenn Enterprise-Grade und funktional reicht: HubSpot CMS mit gutem Theming liefert. Mit Stakeholdern klären. | Pre-Build |
Hybrid Solution — Costs & EstimatesHybrid-Lösung — Kosten & Schätzungen
Architecture & Feature FlowArchitektur & Feature-Flow
Complete system architecture showing how every component connects. HubSpot CRM is the backbone; all other services read from or write to it.
Vollständige Systemarchitektur mit allen Verbindungen. HubSpot CRM ist das Backbone; alle anderen Dienste lesen von oder schreiben in das CRM.
graph TB
subgraph USR ["End Users"]
BANK["Bank / Prospect"]
ADMIN["Compliance Team"]
end
subgraph FE ["Frontend Layer - Next.js / Vercel"]
AUTH["Auth Middleware\nLogin - SSO SAML - Session"]
TC["Trust Center UI\nDashboard - Categories - Tiles"]
DL["Secure Download API\nTier check then S3 presigned URL"]
SEARCH["Search UI\nAlgolia - Phase 3"]
end
subgraph HS ["HubSpot CRM - Backbone"]
CO["Custom Objects\nTrust Center Documents\nSales Hub Enterprise"]
WF["Workflows 7+\nTier automation - Stage gates\nApproval - Churn revocation"]
PIPE["Deal Pipeline\nProspect - NDA - Quote\nContract - Customer"]
PROP["CRM Properties\ntrust_center_enabled\naccess_tier - company_status"]
CODED["Coded Actions + Webhooks\nData Hub Professional"]
end
subgraph STORE ["Document Storage"]
S3["AWS S3 private\nPresigned URLs - 60s expiry"]
end
subgraph EXT ["External Integrations"]
PANDA["PandaDoc / DocuSign\nNDA - Contract - Invoice"]
DATEV["DATEV Middleware\nsevDesk / lexoffice"]
ALGOLIA["Algolia Index\nTier-filtered search"]
SANITY["Sanity Studio\nEditorial CMS - Phase 3"]
end
BANK --> AUTH
ADMIN --> SANITY
AUTH -->|"contact lookup"| PROP
AUTH --> TC
TC -->|"CRM API read"| CO
TC -->|"tier resolution"| PROP
TC --> DL
DL -->|"tier >= min_tier?"| CO
DL -->|"presigned URL"| S3
S3 -->|"302 redirect"| BANK
TC --> SEARCH
SEARCH -->|"query"| ALGOLIA
PIPE -->|"stage change"| WF
WF -->|"tier upgrade/downgrade"| PROP
PANDA -->|"signed event webhook"| CODED
CODED -->|"update deal/tier"| WF
CODED -->|"invoice export"| DATEV
CO -->|"metadata sync"| ALGOLIA
SANITY -->|"publish"| CO
CO -->|"editorial data"| SANITY
classDef hs fill:#fff4e6,stroke:#f59e0b,stroke-width:2px
classDef fe fill:#eff6ff,stroke:#3b82f6,stroke-width:2px
classDef ext fill:#f0fdf4,stroke:#22c55e,stroke-width:2px
classDef store fill:#fef2f2,stroke:#ef4444,stroke-width:2px
class CO,WF,PIPE,PROP,CODED hs
class AUTH,TC,DL,SEARCH fe
class PANDA,DATEV,ALGOLIA,SANITY ext
class S3 store
Phase OverviewPhasenübersicht
gantt
title Hybrid Trust Center — Implementation Timeline
dateFormat YYYY-MM-DD
axisFormat %b %Y
section Phase 0
License decisions & tool selection :p0a, 2026-04-01, 2w
Environment setup (Vercel, S3, repo) :p0b, after p0a, 1w
section Phase 1
CRM data model & workflows :p1a, after p0b, 3w
Next.js frontend + auth layer :p1b, after p0b, 5w
S3 storage + secure download API :p1c, after p1a, 2w
Tier-based access UI + pages :p1d, after p1b, 3w
Integration testing + go-live :p1e, after p1d, 2w
section Phase 2
PandaDoc / DocuSign integration :p2a, after p1e, 2w
Quote-to-Cash pipeline automation :p2b, after p2a, 2w
DATEV middleware setup :p2c, after p2a, 1w
section Phase 3
Algolia search integration :p3a, after p2b, 2w
Sanity Studio editorial workflow :p3b, after p2b, 3w
My Risiq dashboard + entitlements :p3c, after p3a, 3w
section Phase 4
Enterprise SSO (single IdP) :p4a, after p3c, 1w
Audit logging + compliance :p4b, after p3c, 2w
Provisioning webhook service :p4c, after p4a, 2w
Phase 0 — Pre-Build Decisions & SetupPhase 0 — Vorab-Entscheidungen & Setup
Before writing a single line of code, these decisions must be locked. They determine the entire cost structure and toolchain.
Bevor eine einzige Zeile Code geschrieben wird, müssen diese Entscheidungen feststehen. Sie bestimmen die gesamte Kostenstruktur und Toolchain.
| # | CategoryKategorie | DeliverablesLieferobjekte | HubSpot RequirementHubSpot-Anforderung | EffortAufwand |
|---|---|---|---|---|
| 0.1 | HubSpot License DecisionHubSpot-Lizenzentscheidung | CRM Suite Enterprise vs. individual hubs. Determines Custom Objects and Data Hub availability.CRM Suite Enterprise vs. Einzel-Hubs. Bestimmt Custom Objects- und Data Hub-Verfügbarkeit. | Sales Hub Enterprise (Custom Objects require Enterprise)Sales Hub Enterprise (Custom Objects erfordern Enterprise) | 2-3d |
| 0.2 | E-Signature ToolE-Signatur-Tool | PandaDoc (all-in-one: NDA+Quote+Contract+Invoice) vs. DocuSign (signature-only + HubSpot Quotes). Evaluate trial, decide.PandaDoc (All-in-One: NDA+Quote+Vertrag+Rechnung) vs. DocuSign (nur Signatur + HubSpot Quotes). Trial evaluieren, entscheiden. | HubSpot Quotes (Sales Hub Enterprise) if DocuSign chosenHubSpot Quotes (Sales Hub Enterprise) falls DocuSign gewählt | 2-3d |
| 0.3 | DATEV MiddlewareDATEV-Middleware | sevDesk vs. lexoffice vs. manual CSV. Confirm client’s DATEV variant (Unternehmen Online?).sevDesk vs. lexoffice vs. manueller CSV. DATEV-Variante des Kunden bestätigen (Unternehmen Online?). | None — external tool decisionKeine — externe Tool-Entscheidung | 1-2d |
| 0.4 | Environment SetupUmgebungs-Setup | Vercel project + CI/CD, S3 bucket + IAM policies, Git monorepo structure, Staging/Preview config, DNS planning.Vercel-Projekt + CI/CD, S3-Bucket + IAM-Policies, Git-Monorepo-Struktur, Staging/Preview-Konfiguration, DNS-Planung. | HubSpot API key / Private App tokenHubSpot API-Key / Private App Token | 3-5d |
Phase 1 — Core Trust Center (Hybrid Foundation)Phase 1 — Kern-Trust-Center (Hybrid-Fundament)
The largest phase. Delivers a working Trust Center with tier-based access, secure document downloads, and a custom Next.js frontend reading from HubSpot CRM.
Die größte Phase. Liefert ein funktionierendes Trust Center mit tier-basiertem Zugang, sicheren Dokument-Downloads und einem Custom Next.js-Frontend, das aus HubSpot CRM liest.
| # | CategoryKategorie | DeliverablesLieferobjekte | HubSpot RequirementHubSpot-Anforderung | EffortAufwand |
|---|---|---|---|---|
| 1.1 | CRM Data ModelCRM-Datenmodell | Custom Object: Trust Center Document (doc_title, doc_bucket, min_tier, secure_file, versions). Contact/Company/Deal properties (trust_center_enabled, access_tier, company_status, nda_signed). Association labels.Custom Object: Trust Center Document (doc_title, doc_bucket, min_tier, secure_file, Versionen). Contact/Company/Deal Properties (trust_center_enabled, access_tier, company_status, nda_signed). Association Labels. | Sales Hub Enterprise (Custom Objects require Enterprise — docs)Sales Hub Enterprise (Custom Objects erfordern Enterprise — Docs) | 3-5d |
| 1.2 | CRM WorkflowsCRM-Workflows |
7 core workflows: • WF1: Contact tier assignment (manual + automated) • WF2: Company status → contact tier sync • WF3: NDA signed → tier upgrade to NDA • WF4: Contract signed → tier upgrade to Customer • WF5: Deal lost → tier downgrade • WF6: Invoice → DATEV export trigger • WF7: Access revocation on churn 7 Kern-Workflows: • WF1: Contact-Tier-Zuweisung (manuell + automatisiert) • WF2: Company-Status → Contact-Tier-Sync • WF3: NDA unterschrieben → Tier-Upgrade auf NDA • WF4: Vertrag unterschrieben → Tier-Upgrade auf Customer • WF5: Deal verloren → Tier-Downgrade • WF6: Rechnung → DATEV-Export-Trigger • WF7: Zugriffsentzug bei Churn |
Workflows (Sales Hub Enterprise) Data Hub Pro for coded actions in WF6Workflows (Sales Hub Enterprise) Data Hub Pro für Coded Actions in WF6 |
5-8d |
| 1.3 | Next.js FrontendNext.js-Frontend |
Full Trust Center UI on Next.js/React: • Public landing page (/trust-center) • Dashboard with tile grid (/trust-center/home) • Category pages (security, infrastructure, compliance, certifications) • FAQ page, Contact page, Roadmap page • Responsive design, dark/light theme • Bilingual support (EN/DE) Vollständige Trust-Center-UI auf Next.js/React: • Öffentliche Landingpage (/trust-center) • Dashboard mit Tile-Grid (/trust-center/home) • Kategorieseiten (Security, Infrastructure, Compliance, Certifications) • FAQ-Seite, Kontaktseite, Roadmap-Seite • Responsives Design, Dark/Light Theme • Zweisprachig (EN/DE) |
HubSpot CRM API (read access) Private App token with CRM scopesHubSpot CRM API (Lesezugriff) Private App Token mit CRM-Scopes |
15-20d |
| 1.4 | Authentication LayerAuthentifizierungsschicht | Next.js middleware auth: login/register flow, session management, HubSpot contact lookup on login, tier resolution from CRM. Password reset, email verification.Next.js-Middleware-Auth: Login/Registrierungs-Flow, Session-Management, HubSpot-Kontaktabfrage bei Login, Tier-Auflösung aus CRM. Passwort-Reset, E-Mail-Verifizierung. | CRM Contacts API contact.trust_center_enabled propertyCRM-Kontakte-API contact.trust_center_enabled Property |
5-8d |
| 1.5 | S3 Document StorageS3-Dokumentenspeicher | S3 bucket setup (private ACL), IAM roles, presigned URL generation (60s expiry), upload workflow for compliance team, folder structure per bucket (security/, infrastructure/, etc.).S3-Bucket-Setup (privates ACL), IAM-Rollen, Presigned-URL-Generierung (60s Ablauf), Upload-Workflow für Compliance-Team, Ordnerstruktur pro Bucket (security/, infrastructure/, etc.). | None — external AWS service CRM custom object stores file referencesKeine — externer AWS-Dienst CRM Custom Object speichert Dateireferenzen |
3-5d |
| 1.6 | Secure Download APISichere Download-API | Vercel serverless function: authenticate user, CRM lookup (contact tier + document min_tier), generate S3 presigned URL, 302 redirect. Rate limiting, error handling, download logging.Vercel Serverless Function: Benutzer authentifizieren, CRM-Abfrage (Kontakt-Tier + Dokument min_tier), S3 Presigned URL generieren, 302 Redirect. Rate Limiting, Fehlerbehandlung, Download-Logging. | CRM API: Custom Object read Contact properties readCRM-API: Custom Object Lesen Kontakt-Properties Lesen |
3-5d |
| 1.7 | Tier-Based Access UITier-basierte Zugangs-UI | Frontend tier logic: show/hide documents per tier, locked tile indicators, upgrade prompts, access gate for non-enabled contacts. Real-time tier resolution from CRM API.Frontend-Tier-Logik: Dokumente pro Tier anzeigen/ausblenden, gesperrte Tile-Indikatoren, Upgrade-Aufforderungen, Access Gate für nicht-aktivierte Kontakte. Echtzeit-Tier-Auflösung aus CRM-API. | contact.trust_center_access_tier Custom Object min_tier propertycontact.trust_center_access_tier Custom Object min_tier Property |
3-5d |
| 1.8 | Integration TestingIntegrationstests | End-to-end testing: all 4 tiers, secure download across tiers, access revocation, workflow triggers, CRM ↔ frontend sync, cross-browser, responsive. Staging environment validation.End-to-End-Tests: alle 4 Tiers, sicherer Download über Tiers, Zugriffsentzug, Workflow-Trigger, CRM ↔ Frontend-Sync, Cross-Browser, Responsiv. Staging-Umgebungs-Validierung. | HubSpot Sandbox for testing All CRM APIsHubSpot Sandbox für Tests Alle CRM-APIs |
5-8d |
Phase 2 — Quote-to-Cash & Document AutomationPhase 2 — Quote-to-Cash & Dokumentenautomatisierung
Architecture-independent phase. PandaDoc/DocuSign integration, contract automation, and DATEV middleware work identically regardless of frontend choice.
Architektur-unabhängige Phase. PandaDoc/DocuSign-Integration, Vertragsautomatisierung und DATEV-Middleware funktionieren identisch unabhängig von der Frontend-Wahl.
| # | CategoryKategorie | DeliverablesLieferobjekte | HubSpot RequirementHubSpot-Anforderung | EffortAufwand |
|---|---|---|---|---|
| 2.1 | E-Signature IntegrationE-Signatur-Integration | PandaDoc or DocuSign ↔ HubSpot native integration. NDA template, Offer template, Contract template. Webhook → CRM property update on signed/declined/expired events.PandaDoc oder DocuSign ↔ HubSpot native Integration. NDA-Vorlage, Angebots-Vorlage, Vertrags-Vorlage. Webhook → CRM-Property-Update bei Signed/Declined/Expired-Events. | Sales Hub Enterprise (deal automation) Data Hub Pro (webhook actions)Sales Hub Enterprise (Deal-Automatisierung) Data Hub Pro (Webhook-Aktionen) |
5-8d |
| 2.2 | Deal Pipeline AutomationDeal-Pipeline-Automatisierung |
Full pipeline: Prospect → NDA Sent → NDA Signed → Offer → Quote → Contract → Active Customer. • Stage gate logic (four-eye principle) • Automatic tier upgrades on stage transitions • Task creation for approvals • Deal property updates from PandaDoc events Vollständige Pipeline: Prospect → NDA Gesendet → NDA Unterschrieben → Angebot → Quote → Vertrag → Aktiver Kunde. • Stage-Gate-Logik (4-Augen-Prinzip) • Automatische Tier-Upgrades bei Stage-Übergängen • Task-Erstellung für Genehmigungen • Deal-Property-Updates aus PandaDoc-Events |
Sales Hub Enterprise (deal pipelines, approval workflows) Custom deal propertiesSales Hub Enterprise (Deal-Pipelines, Genehmigungs-Workflows) Custom Deal Properties |
5-8d |
| 2.3 | Invoice AutomationRechnungsautomatisierung | Invoice generation (PandaDoc or Commerce Hub), payment tracking, recurring vs. one-time invoice handling, invoice status → CRM property sync.Rechnungserstellung (PandaDoc oder Commerce Hub), Zahlungsverfolgung, Wiederkehrende vs. einmalige Rechnungen, Rechnungsstatus → CRM-Property-Sync. | Commerce Hub (if native invoicing) or PandaDoc handles invoicingCommerce Hub (falls native Rechnungsstellung) oder PandaDoc übernimmt Rechnungsstellung |
3-5d |
| 2.4 | DATEV MiddlewareDATEV-Middleware | sevDesk or lexoffice setup. Invoice → middleware → DATEV export automation. CRM property datev_export_status tracking. Error handling for failed exports.sevDesk- oder lexoffice-Setup. Rechnung → Middleware → DATEV-Export-Automatisierung. CRM-Property datev_export_status Tracking. Fehlerbehandlung für fehlgeschlagene Exporte. | Data Hub Pro (coded actions for WF6) CRM custom propertiesData Hub Pro (Coded Actions für WF6) CRM Custom Properties |
3-5d |
| 2.5 | Quote Pricing LogicAngebots-Preislogik | Product catalog in HubSpot (base products, add-ons, tiers). Line item calculations. Discount rules. Multi-year pricing. Quote template with dynamic line items.Produktkatalog in HubSpot (Basisprodukte, Add-Ons, Tiers). Line-Item-Berechnungen. Rabattregeln. Mehrjahrespreise. Angebotsvorlage mit dynamischen Line Items. | Sales Hub Enterprise (Products, Quotes) Data Hub Pro if complex calculationsSales Hub Enterprise (Produkte, Quotes) Data Hub Pro bei komplexen Berechnungen |
3-5d |
Phase 3 — Scale, Search & EditorialPhase 3 — Skalierung, Suche & Editorial
Add search infrastructure, editorial workflow, and advanced features when the Trust Center grows beyond initial scope (~100+ documents, dedicated compliance team).
Suchinfrastruktur, Editorial-Workflow und erweiterte Features hinzufügen, wenn das Trust Center über den initialen Umfang hinauswächst (~100+ Dokumente, dediziertes Compliance-Team).
| # | CategoryKategorie | DeliverablesLieferobjekte | HubSpot RequirementHubSpot-Anforderung | EffortAufwand |
|---|---|---|---|---|
| 3.1 | Algolia SearchAlgolia-Suche | Algolia index setup. Document metadata indexing (title, bucket, tier, tags). Tier-filtered search API (user can only search docs at their tier or below). Faceted search UI (by bucket, tier, date). Instant results.Algolia-Index-Setup. Dokumenten-Metadaten-Indizierung (Titel, Bucket, Tier, Tags). Tier-gefilterte Such-API (Benutzer kann nur Docs auf eigenem Tier oder darunter suchen). Facettierte Such-UI (nach Bucket, Tier, Datum). Sofortige Ergebnisse. | CRM API for document metadata sync Webhook on document create/updateCRM-API für Dokumenten-Metadaten-Sync Webhook bei Dokument-Erstellung/Update |
5-8d |
| 3.2 | Sanity StudioSanity Studio | Sanity content model: documents, categories, changelogs. Editorial workflow: draft → review → publish. GROQ queries for frontend. HubSpot CRM ↔ Sanity bidirectional sync (document metadata). Compliance team training.Sanity-Content-Modell: Dokumente, Kategorien, Changelogs. Editorial-Workflow: Entwurf → Review → Veröffentlichung. GROQ-Queries für Frontend. HubSpot CRM ↔ Sanity bidirektionaler Sync (Dokumenten-Metadaten). Compliance-Team-Schulung. | Data Hub Pro (coded actions for sync) CRM Custom Object APIData Hub Pro (Coded Actions für Sync) CRM Custom Object API |
8-12d |
| 3.3 | My Risiq DashboardMy Risiq Dashboard | Interactive personal dashboard: company-specific documents, recent activity, download history, tier status, pending actions (NDA to sign, docs to review). React components with real-time CRM data.Interaktives persönliches Dashboard: firmenspezifische Dokumente, letzte Aktivitäten, Download-Verlauf, Tier-Status, ausstehende Aktionen (NDA zu unterschreiben, Docs zu prüfen). React-Komponenten mit Echtzeit-CRM-Daten. | CRM API: Contacts, Companies, Deals, Associations Custom Object queriesCRM-API: Kontakte, Companies, Deals, Assoziationen Custom Object Abfragen |
8-12d |
| 3.4 | Product EntitlementsProdukt-Entitlements | Company-level product entitlements: different document sets per product subscription. doc_scope property on documents. CRM association queries for company-specific access. Entitlement → tier mapping logic.Firmen-spezifische Produkt-Entitlements: unterschiedliche Dokumentensets pro Produktabonnement. doc_scope-Property auf Dokumenten. CRM-Association-Queries für firmenspezifischen Zugang. Entitlement → Tier-Mapping-Logik. | CRM Custom Properties (company level) Associations API Custom Object extensionsCRM Custom Properties (Firmenebene) Associations-API Custom Object Erweiterungen |
5-8d |
| 3.5 | Content ExpansionContent-Erweiterung | Expand from 4 to 12+ document buckets. Version management UI (3-slot rotation with visual diff). Changelog pages. New category pages for expanded content.Erweiterung von 4 auf 12+ Dokumenten-Buckets. Versionsverwaltungs-UI (3-Slot-Rotation mit visuellem Diff). Changelog-Seiten. Neue Kategorieseiten für erweiterten Content. | CRM Custom Object: bucket enum extension No new HubSpot features requiredCRM Custom Object: Bucket-Enum-Erweiterung Keine neuen HubSpot-Features erforderlich |
3-5d |
Phase 4 — Enterprise FeaturesPhase 4 — Enterprise-Features
Enterprise-grade features: SSO, audit compliance, and automated provisioning for large-scale operations.
Enterprise-Grade-Features: SSO, Audit-Compliance und automatisiertes Provisioning für großangelegten Betrieb.
| # | CategoryKategorie | DeliverablesLieferobjekte | HubSpot RequirementHubSpot-Anforderung | EffortAufwand |
|---|---|---|---|---|
| 4.1 | Enterprise SSOEnterprise SSO | Single IdP SAML integration via Next.js middleware. Enterprise login flow. Session management with SSO tokens. Fallback to email/password for non-SSO users.Single IdP SAML-Integration via Next.js-Middleware. Enterprise-Login-Flow. Session-Management mit SSO-Tokens. Fallback auf E-Mail/Passwort für Nicht-SSO-Benutzer. | Next.js middleware only — no HubSpot SSO license neededNur Next.js-Middleware — keine HubSpot-SSO-Lizenz erforderlich | 3-5d |
| 4.2 | Audit LoggingAudit-Logging | Comprehensive audit trail: document access logs (who, when, which version), admin action logs (tier changes, access grants/revocations), download tracking, integration event logs. Exportable for compliance audits.Umfassender Audit-Trail: Dokumentenzugriffsprotokolle (wer, wann, welche Version), Admin-Aktionsprotokolle (Tier-Änderungen, Zugriffsgewährungen/-entzug), Download-Tracking, Integrations-Event-Logs. Exportierbar für Compliance-Audits. | CRM API for event correlation External logging service (Datadog/CloudWatch)CRM-API für Event-Korrelation Externer Logging-Dienst (Datadog/CloudWatch) |
5-8d |
| 4.3 | Provisioning ServiceProvisioning-Dienst | Webhook-based provisioning: contract signed → HubSpot webhook → external service creates user in RISIQ product, assigns roles, sets up tenant access. Deactivation on churn. Status sync back to CRM.Webhook-basiertes Provisioning: Vertrag unterschrieben → HubSpot Webhook → externer Dienst erstellt Benutzer im RISIQ-Produkt, weist Rollen zu, richtet Tenant-Zugang ein. Deaktivierung bei Churn. Status-Sync zurück ins CRM. | Data Hub Pro (webhooks + coded actions) provisioning_status custom propertyData Hub Pro (Webhooks + Coded Actions) provisioning_status Custom Property |
5-8d |
| 4.4 | Advanced Portal FeaturesErweiterte Portal-Features | Notification system (document updates, tier changes). Bulk download for compliance audits. API access for enterprise customers. White-label options for co-branded portals.Benachrichtigungssystem (Dokumenten-Updates, Tier-Änderungen). Massen-Download für Compliance-Audits. API-Zugang für Enterprise-Kunden. White-Label-Optionen für Co-Branding-Portale. | CRM API for notification triggers Custom Object associationsCRM-API für Benachrichtigungs-Trigger Custom Object Assoziationen |
5-8d |
HubSpot Licensing — What You NeedHubSpot-Lizenzierung — Was Sie brauchen
In the hybrid model, HubSpot CRM is the backbone — but the CMS/frontend moves to Next.js. This changes the licensing requirement significantly. Below is the definitive licensing plan, phase by phase.
Im Hybrid-Modell ist HubSpot CRM das Backbone — aber das CMS/Frontend wandert zu Next.js. Das verändert den Lizenzbedarf erheblich. Unten der definitive Lizenzplan, Phase für Phase.
Required HubSpot HubsErforderliche HubSpot-Hubs
| HubHub | TierStufe | Required FromErforderlich ab | Why It’s NeededWarum benötigt | What It UnlocksWas es freischaltet |
|---|---|---|---|---|
| Sales Hub | Enterprise | Phase 1 | Custom Objects require Enterprise (docs). Core CRM automation for Trust Center + sales pipeline.Custom Objects erfordern Enterprise (Docs). Kern-CRM-Automatisierung für Trust Center + Sales Pipeline. |
• Custom Objects (Trust Center Documents) — Enterprise only • Workflows (7 tier automation workflows) • Deal Pipelines with stage gates • Products & Quotes • Custom Properties (30+ TC properties) • Approval workflows (four-eye principle) • API access (Private App) • Custom Objects (Trust Center Documents) — nur Enterprise • Workflows (7 Tier-Automatisierungs-Workflows) • Deal-Pipelines mit Stage Gates • Produkte & Quotes • Custom Properties (30+ TC Properties) • Genehmigungs-Workflows (4-Augen-Prinzip) • API-Zugang (Private App) |
| Data Hub (formerly Operations Hub) |
Professional | Phase 2 | Coded Actions + Webhooks in workflows. Data Hub is the rebranded Operations Hub (Sept 2025). Single license covers both capabilities.Coded Actions + Webhooks in Workflows. Data Hub ist der umbenannte Operations Hub (Sept 2025). Eine Lizenz deckt beide Fähigkeiten ab. |
• Send webhook action in workflows • PandaDoc/DocuSign event triggers • Provisioning service triggers • External system notifications • CRM → Next.js event push • Webhook senden Aktion in Workflows • PandaDoc/DocuSign-Event-Trigger • Provisioning-Service-Trigger • Externe System-Benachrichtigungen • CRM → Next.js Event-Push |
| Content Hub | Not RequiredNicht erforderlich | — | Frontend runs on Next.js, not HubSpot CMSFrontend läuft auf Next.js, nicht HubSpot CMS | Eliminated in hybrid approachIm Hybrid-Ansatz eliminiert |
| Marketing Hub | Not RequiredNicht erforderlich | — | Trust Center has no marketing automation needsTrust Center hat keine Marketing-Automatisierungsanforderungen | — |
| Service Hub | Not RequiredNicht erforderlich | — | No ticketing/support portal in Trust Center scopeKein Ticketing/Support-Portal im Trust-Center-Umfang | — |
| SSO | Not RequiredNicht erforderlich | — | Trust Center frontend is Next.js — SSO handled in Next.js middleware, not HubSpotTrust-Center-Frontend ist Next.js — SSO wird in Next.js-Middleware behandelt, nicht in HubSpot | No HubSpot Enterprise SSO neededKein HubSpot Enterprise SSO nötig |
What Each Hub Tier Unlocks — Why We Need These Specific TiersWas jede Hub-Stufe freischaltet — Warum wir genau diese Stufen brauchen
The table below shows which features are available at each tier and why lower tiers are insufficient for the Trust Center.
Die folgende Tabelle zeigt, welche Features auf jeder Stufe verfügbar sind und warum niedrigere Stufen für das Trust Center nicht ausreichen.
| FeatureFeature | Free | Starter | Professional | Enterprise | Our NeedUnser Bedarf |
|---|---|---|---|---|---|
| Sales Hub — minimum required: EnterpriseSales Hub — mindestens erforderlich: Enterprise | |||||
| Custom PropertiesCustom Properties | ✓ | ✓ | ✓ | ✓ | 30+ properties (access_tier, nda_signed, etc.)30+ Properties (access_tier, nda_signed, etc.) |
| Private App / API | ✓ | ✓ | ✓ | ✓ | Next.js reads CRM via REST APINext.js liest CRM via REST API |
| Deal PipelinesDeal-Pipelines | × | 2 | 15 | 50 | Prospect → NDA → Quote → Contract → Customer |
| Workflows | × | × | 300 | 1,000 | 7+ tier automation + deal stage workflows7+ Tier-Automatisierung + Deal-Stage-Workflows |
| Products & QuotesProdukte & Quotes | × | × | ✓ | ✓ | Product catalog + quote generationProduktkatalog + Angebotserstellung |
| Approval WorkflowsGenehmigungs-Workflows | × | × | × | ✓ | Four-eye principle on deal stage transitions4-Augen-Prinzip bei Deal-Stage-Übergängen |
| Custom Objects | × | × | × | ✓ | Trust Center Document object — THE reason for Enterprise (docs)Trust Center Document Objekt — DER Grund für Enterprise (Docs) |
| Hierarchical TeamsHierarchische Teams | × | × | × | ✓ | Team-based permissions for compliance staffTeam-basierte Berechtigungen für Compliance-Mitarbeiter |
| Sandboxes | × | × | × | ✓ | Safe testing of workflows + data model changesSicheres Testen von Workflows + Datenmodelländerungen |
| Data Hub (formerly Operations Hub) — minimum required: ProfessionalData Hub (früher Operations Hub) — mindestens erforderlich: Professional | |||||
| Data SyncDaten-Sync | × | ✓ | ✓ | ✓ | Basic 3rd-party syncEinfacher Drittanbieter-Sync |
| Data Quality AutomationDatenqualitäts-Automatisierung | × | × | ✓ | ✓ | Clean CRM data for reliable tier logicSaubere CRM-Daten für zuverlässige Tier-Logik |
| Coded Actions | × | × | ✓ | ✓ | Custom JS in workflows — DATEV export, calculations, Sanity syncCustom JS in Workflows — DATEV-Export, Berechnungen, Sanity-Sync |
| Webhooks | × | × | ✓ (10) | ✓ (100) | Send HTTP to external — PandaDoc, provisioning, Next.js events (docs)HTTP an extern senden — PandaDoc, Provisioning, Next.js Events (Docs) |
| Scheduled WorkflowsGeplante Workflows | × | × | ✓ | ✓ | Periodic data sync, cleanup jobsPeriodischer Daten-Sync, Bereinigungsjobs |
| Data Studio | × | × | ✓ | ✓ | Cross-object reporting, drag-and-drop datasetsObjektübergreifendes Reporting, Drag-and-Drop-Datasets |
Alternative: CRM Suite Enterprise (bundle)Alternative: CRM Suite Enterprise (Bundle)
| OptionOption | What You GetWas Sie bekommen | ConsiderationÜberlegung |
|---|---|---|
| Individual HubsEinzel-Hubs (recommended)(empfohlen) |
Sales Hub Enterprise + Data Hub ProfessionalSales Hub Enterprise + Data Hub Professional | Buy only what you need. No unused Marketing/Service/Content Hub costs. Most cost-effective for the hybrid Trust Center.Nur kaufen was benötigt wird. Keine ungenutzten Marketing/Service/Content Hub Kosten. Am kosteneffektivsten für das hybride Trust Center. |
| CRM Suite Enterprise (10 seats) |
All hubs at Enterprise tier (Sales, Marketing, Service, Content, Ops, Commerce)Alle Hubs auf Enterprise-Stufe (Sales, Marketing, Service, Content, Ops, Commerce) | Includes hubs you don’t need (Marketing, Service, Content). Only worth it if the bundle discount makes it cheaper than Sales Enterprise + Ops Pro individually. Check current pricing at hubspot.com/pricing.Enthält Hubs die Sie nicht benötigen (Marketing, Service, Content). Nur sinnvoll wenn der Bundle-Rabatt günstiger ist als Sales Enterprise + Ops Pro einzeln. Aktuelle Preise unter hubspot.com/pricing prüfen. |
License Requirements by PhaseLizenzanforderungen nach Phase
| PhasePhase | HubSpot License NeededBenötigte HubSpot-Lizenz | Key Features UsedVerwendete Hauptfeatures |
|---|---|---|
| Phase 0-1 Core TCKern-TC |
Sales Hub Enterprise | Custom Objects (Enterprise required), Workflows, Custom Properties, API (Private App), Deal PipelinesCustom Objects (Enterprise erforderlich), Workflows, Custom Properties, API (Private App), Deal-Pipelines |
| Phase 2 Quote-to-Cash |
Sales Hub Enterprise + Data Hub Professional |
Products & Quotes, Approval Workflows, Webhooks + Coded Actions (Data Hub Pro), Commerce HubProdukte & Quotes, Genehmigungs-Workflows, Webhooks + Coded Actions (Data Hub Pro), Commerce Hub |
| Phase 3 ScaleSkalierung |
Sales Hub Enterprise + Data Hub Professional |
Same as Phase 2 + Coded Actions for CRM ↔ Sanity sync, Custom Object extensions for entitlementsWie Phase 2 + Coded Actions für CRM ↔ Sanity Sync, Custom Object Erweiterungen für Entitlements |
| Phase 4 Enterprise |
Sales Hub Enterprise + Data Hub Professional |
SSO handled in Next.js middleware (no HubSpot SSO needed). Provisioning: Webhooks + Coded Actions (Data Hub Pro). No additional license upgrade needed.SSO wird in Next.js-Middleware behandelt (kein HubSpot-SSO nötig). Provisioning: Webhooks + Coded Actions (Data Hub Pro). Kein zusätzliches Lizenz-Upgrade erforderlich. |
Day 1 (Phase 0-1): Sales Hub Enterprise — required for Custom Objects (Enterprise only). Includes Workflows, Deal Pipelines, Products & Quotes, API access (Private App).
Phase 2 (add): Data Hub Professional — the rebranded Operations Hub (Sept 2025). Single license covers both Coded Actions (DATEV export, calculations, Sanity sync) and Webhooks (PandaDoc/DocuSign events, provisioning triggers).
Phase 3-4: No additional license upgrade needed. Sales Hub Enterprise + Data Hub Pro covers all phases.
SSO: Handled in Next.js middleware — no HubSpot SSO license needed.
Not required: Content Hub, Marketing Hub, Service Hub, HubSpot SSO. The hybrid approach eliminates all four.
Total HubSpot platform cost: 2 licenses — ~$2,000/mo from Phase 2 onward. Definitive Empfehlung:
Tag 1 (Phase 0-1): Sales Hub Enterprise — erforderlich für Custom Objects (nur Enterprise). Beinhaltet Workflows, Deal-Pipelines, Produkte & Quotes, API-Zugang (Private App).
Phase 2 (ergänzen): Data Hub Professional — der umbenannte Operations Hub (Sept 2025). Eine Lizenz deckt sowohl Coded Actions (DATEV-Export, Berechnungen, Sanity-Sync) als auch Webhooks (PandaDoc/DocuSign-Events, Provisioning-Trigger) ab.
Phase 3-4: Kein zusätzliches Lizenz-Upgrade nötig. Sales Hub Enterprise + Data Hub Pro deckt alle Phasen ab.
SSO: Wird in Next.js-Middleware behandelt — keine HubSpot-SSO-Lizenz erforderlich.
Nicht erforderlich: Content Hub, Marketing Hub, Service Hub, HubSpot SSO. Der Hybrid-Ansatz eliminiert alle vier.
HubSpot-Plattformkosten gesamt: 2 Lizenzen — ~$2.000/Mo. ab Phase 2.
Feature → License ReferenceFeature → Lizenz-Referenz
| FeatureFeature | Included InEnthalten in | PhasePhase | Purpose in Trust CenterZweck im Trust Center |
|---|---|---|---|
| Custom Objects | Sales Hub Enterprise | 1+ | Enterprise required (docs). Document metadata, tier-based access control (min_tier), version tracking, S3 file references, workflow triggers, company associations. S3 stores the files — CRM stores the business logic.Enterprise erforderlich (Docs). Dokumenten-Metadaten, tier-basierte Zugangskontrolle (min_tier), Versionsverfolgung, S3-Dateireferenzen, Workflow-Trigger, Company-Assoziationen. S3 speichert die Dateien — CRM speichert die Geschäftslogik. |
| Custom Properties | CRM Free+ | 0+ | trust_center_enabled, access_tier, company_status, nda_signed |
| Workflows | Sales Hub Enterprise | 1+ | 7 tier automation workflows, deal stage triggers7 Tier-Automatisierungs-Workflows, Deal-Stage-Trigger |
| Deal Pipelines | Sales Hub Enterprise | 2 | Prospect → NDA → Quote → Contract → Customer |
| Products & Quotes | Sales Hub Enterprise | 2 | Product catalog, line items, quote generationProduktkatalog, Line Items, Angebotserstellung |
| Approval Workflows | Sales Hub Enterprise | 2 | Four-eye principle on deal stage transitions4-Augen-Prinzip bei Deal-Stage-Übergängen |
| Webhooks | Data Hub Professional | 2+ | Webhook actions in workflows require Data Hub Pro (docs). PandaDoc/DocuSign events, provisioning triggers, external system notifications.Webhook-Aktionen in Workflows erfordern Data Hub Pro (Docs). PandaDoc/DocuSign-Events, Provisioning-Trigger, externe System-Benachrichtigungen. |
| Commerce Hub | Sales Hub Enterprise | 2 | Native invoicing (if not using PandaDoc for invoices)Native Rechnungsstellung (falls nicht PandaDoc) |
| Private App / API | CRM Free+ | 1+ | Next.js frontend reads CRM data via REST APINext.js-Frontend liest CRM-Daten via REST API |
| Coded Actions | Data Hub Pro | 2+ | Included in Data Hub (rebranded Ops Hub). DATEV export logic, complex calculations, Sanity syncIn Data Hub enthalten (umbenannter Ops Hub). DATEV-Export-Logik, komplexe Berechnungen, Sanity-Sync |
| Enterprise SSO | Not RequiredNicht erforderlich | 4 | Trust Center frontend is Next.js — SSO is handled in Next.js middleware (SAML/OIDC). No HubSpot SSO license needed.Trust-Center-Frontend ist Next.js — SSO wird in Next.js-Middleware behandelt (SAML/OIDC). Keine HubSpot-SSO-Lizenz erforderlich. |
Recurring Monthly CostsMonatlich wiederkehrende Kosten
| CategoryKategorie | Tool / ServiceTool / Dienst | PlanPlan | Cost / MonthKosten / Monat | PhasePhase |
|---|---|---|---|---|
| HubSpot Platform (backbone)HubSpot-Plattform (Backbone) | ||||
| Sales Hub | HubSpot Sales Hub | Enterprise (10 seats) | ~$1,200/mo | Phase 0+ |
| Data Hub | HubSpot Data Hub (formerly Ops Hub) | Professional (1 seat) | ~$800/mo | Phase 2+ |
| Hybrid Stack (frontend + storage + search)Hybrid-Stack (Frontend + Storage + Suche) | ||||
| Frontend Hosting | Vercel | Pro | ~$20/mo | Phase 1+ |
| Document StorageDokumentenspeicher | AWS S3 | Pay-as-you-go | ~$1-5/mo | Phase 1+ |
| SearchSuche | Algolia | Free → Build | $0-29/mo | Phase 3+ |
| Editorial CMSEditorial-CMS | Sanity | Growth | $45-75/mo | Phase 3+ |
| Shared Tools (architecture-independent)Gemeinsame Tools (architektur-unabhängig) | ||||
| E-SignatureE-Signatur | PandaDoc oroder DocuSign | Business / Standard | $25-49/mo | Phase 2+ |
| DATEV Middleware | sevDesk / lexoffice | Standard | €15-40/mo | Phase 2+ |
| Audit Logging | CloudWatch / Datadog | Free → Basic | $0-25/mo | Phase 4 |
| Total — Phase 0-1 (core TC only)Gesamt — Phase 0-1 (nur Kern-TC) | ~$1,221-1,225/mo | Sales Ent + Vercel + S3 | ||
| Total — Phase 1-2 (core + Q2C)Gesamt — Phase 1-2 (Kern + Q2C) | ~$2,062-2,117/mo | + Data Hub + PandaDoc + DATEV | ||
| Total — Phase 1-3 (scaled)Gesamt — Phase 1-3 (skaliert) | ~$2,107-2,221/mo | + Algolia + Sanity | ||
| Total — Phase 1-4 (full platform)Gesamt — Phase 1-4 (vollständige Plattform) | ~$2,107-2,246/mo | + Audit logging | ||
Implementation Effort SummaryÜbersicht Implementierungsaufwand
| PhasePhase | FocusFokus | DurationDauer | Effort (person-days)Aufwand (Personentage) | Key DeliverableHaupt-Lieferobjekt |
|---|---|---|---|---|
| Phase 0 | Decisions & SetupEntscheidungen & Setup | 2-3 wksWo. | 8-13d | Toolchain locked, environments readyToolchain festgelegt, Umgebungen bereit |
| Phase 1 | Core Trust CenterKern-Trust-Center | 8-12 wksWo. | 42-64d | Working TC with tier access + secure downloadFunktionierendes TC mit Tier-Zugang + sicherem Download |
| Phase 2 | Quote-to-CashQuote-to-Cash | 4-6 wksWo. | 19-31d | Full sales pipeline: NDA → Contract → InvoiceVolle Sales-Pipeline: NDA → Vertrag → Rechnung |
| Phase 3 | Scale & SearchSkalierung & Suche | 6-9 wksWo. | 29-45d | Algolia + Sanity + My Risiq + EntitlementsAlgolia + Sanity + My Risiq + Entitlements |
| Phase 4 | EnterpriseEnterprise | 4-6 wksWo. | 18-29d | SSO + Audit + ProvisioningSSO + Audit + Provisioning |
| Total | 24-36 wksWo. | 116-182d | Full hybrid Trust Center platformVollständige Hybrid-Trust-Center-Plattform |
Total Investment OverviewGesamtinvestitionsübersicht
Delivers: Working Trust Center + Sales Pipeline + DATEV + Secure Downloads
Implementation cost: 552X – 864X
where X = agreed hourly rate 69-108 Personentage (~552-864 Stunden, ~14-21 Wochen)
Liefert: Funktionierendes Trust Center + Sales Pipeline + DATEV + Sichere Downloads
Implementierungskosten: 552X – 864X
wobei X = vereinbarter Stundensatz
Delivers: Everything above + Search + Editorial + SSO + Audit + Provisioning
Implementation cost: 928X – 1,456X
where X = agreed hourly rate 116-182 Personentage (~928-1.456 Stunden, ~24-36 Wochen)
Liefert: Alles oben + Suche + Editorial + SSO + Audit + Provisioning
Implementierungskosten: 928X – 1.456X
wobei X = vereinbarter Stundensatz
X = hourly rate to be agreed upon. Actual rates depend on team composition (senior architect, frontend developer, HubSpot specialist, DevOps). Estimates assume a single experienced developer; parallel work with 2-3 people can compress timelines by ~30-40%.X = zu vereinbarender Stundensatz. Tatsächliche Sätze hängen von der Teamzusammensetzung ab (Senior Architekt, Frontend-Entwickler, HubSpot-Spezialist, DevOps). Schätzungen gehen von einem einzelnen erfahrenen Entwickler aus; parallele Arbeit mit 2-3 Personen kann Zeitrahmen um ~30-40% verkürzen.