{
    "schema": "https://saferpage.de/schemas/trust-questionnaire-integrations.v1",
    "generated_at": "2026-06-09T04:37:44+00:00",
    "domain": "harztreff.de",
    "available": true,
    "scan": {
        "id": "fa7f88ae-eaec-4c53-aa4b-2433ab521b97",
        "checked_at": "2026-06-08 22:47:50.396608+02"
    },
    "status": "questionnaire_integration_blueprint_ready",
    "summary": "Fragebogen-Integrationen fuer harztreff.de: 6 Ursprungssysteme, 6 Intake-Regeln, 6 Writeback-Modi, Score 100.",
    "metrics": {
        "origin_system_count": 6,
        "intake_rule_count": 6,
        "writeback_mode_count": 6,
        "payload_rule_count": 2,
        "routing_rule_count": 5,
        "guardrail_count": 6,
        "readiness_score": 100
    },
    "origin_systems": [
        {
            "id": "salesforce_case",
            "label": "Salesforce Case",
            "direction": "import_and_writeback",
            "source_of_truth": "case_id",
            "operator_rule": "Nur vom urspruenglichen Case importieren und Rueckgabe an denselben Case schreiben."
        },
        {
            "id": "salesforce_opportunity",
            "label": "Salesforce Opportunity / Account",
            "direction": "import_context",
            "source_of_truth": "opportunity_or_account_id",
            "operator_rule": "Deal-, Account- und Produktkontext nutzen; keine CRM-Freitexte in Antwortquellen uebernehmen."
        },
        {
            "id": "jira_or_linear",
            "label": "Jira / Linear Ticket",
            "direction": "import_and_writeback",
            "source_of_truth": "ticket_key",
            "operator_rule": "Ticketstatus, Owner und Frist synchron halten; Antwortdateien nur nach Exportfreigabe anhaengen."
        },
        {
            "id": "slack_or_teams",
            "label": "Slack / Teams Intake",
            "direction": "triage_only",
            "source_of_truth": "thread_id",
            "operator_rule": "Chat dient nur als Triage-Signal; finale Antwort laeuft ueber Review und Auditlog."
        },
        {
            "id": "email_to_case",
            "label": "E-Mail zu Case",
            "direction": "import_only",
            "source_of_truth": "message_or_case_id",
            "operator_rule": "Anhaenge scannen, Absenderdomain pruefen und Roh-Mailtext nicht als Knowledge Source speichern."
        },
        {
            "id": "api_webhook",
            "label": "API / Webhook",
            "direction": "programmatic",
            "source_of_truth": "external_questionnaire_id",
            "operator_rule": "Idempotency-Key, Signatur, Rate-Limit und Feldallowlist vor Verarbeitung erzwingen."
        }
    ],
    "intake_rules": [
        {
            "id": "origin_verification",
            "label": "Ursprung verifizieren",
            "owner": "Sales/CS",
            "rule": "Case, Ticket, Account oder API-Client muessen zur Domain und zum Kundenkontext passen."
        },
        {
            "id": "attachment_malware_scan",
            "label": "Dateien und Links scannen",
            "owner": "Trust Operations",
            "rule": "Office-, PDF-, CSV- und Portal-Links erst nach Malware-, Makro- und URL-Pruefung verarbeiten."
        },
        {
            "id": "field_mapping",
            "label": "Pflichtfelder mappen",
            "owner": "Questionnaire Owner",
            "rule": "Assignee, Collaborators, Customer Domain, Due Date, Product Scope und Questionnaire Type explizit setzen."
        },
        {
            "id": "duplicate_detection",
            "label": "Duplikate erkennen",
            "owner": "Workflow",
            "rule": "Gleicher Case, gleiche Datei-Pruefsumme oder gleicher Portal-Link erzeugt kein zweites aktives Questionnaire."
        },
        {
            "id": "owner_mapping",
            "label": "Owner und Gruppen ableiten",
            "owner": "Team Admin",
            "rule": "Produkt, Region, Security, Privacy, Legal und RFP-Flag bestimmen Review-Zustaendigkeit."
        },
        {
            "id": "source_scope_lock",
            "label": "Answer Sources sperren",
            "owner": "Knowledge Owner",
            "rule": "Curated Q&A, Dokumente, Past Answers und externe Quellen vor AI-Antworten scope-genau festlegen."
        }
    ],
    "writeback_modes": [
        {
            "id": "comment_summary",
            "label": "Kommentar mit Zusammenfassung",
            "risk": "medium",
            "rule": "Nur Status, Link zur freigegebenen Antwort und naechste Aktion posten."
        },
        {
            "id": "attachment_export",
            "label": "Freigegebene Datei anhaengen",
            "risk": "high",
            "rule": "Nur Export mit Manifest, Checksumme und Empfaengerpruefung an Case/Ticket haengen."
        },
        {
            "id": "field_update",
            "label": "Felder aktualisieren",
            "risk": "medium",
            "rule": "Status, Due Date, Owner, Export-Link und Completed-at ueber Feldallowlist schreiben."
        },
        {
            "id": "status_sync",
            "label": "Status synchronisieren",
            "risk": "low",
            "rule": "Processing, Ready for Review, Approved und Completed ohne Kundendaten synchronisieren."
        },
        {
            "id": "portal_link",
            "label": "Gated Portal-/Trust-Link zurueckgeben",
            "risk": "medium",
            "rule": "Links muessen Access-Level, NDA und Ablauf respektieren."
        },
        {
            "id": "no_auto_writeback",
            "label": "Kein automatischer Writeback",
            "risk": "low",
            "rule": "Standard fuer neue Integrationen, bis Review, Auth und Auditlog produktiv aktiviert sind."
        }
    ],
    "payload_allowlist": [
        {
            "id": "allowed",
            "label": "Erlaubte Integrationsfelder",
            "fields": [
                "case_id",
                "ticket_key",
                "account_domain_hash",
                "questionnaire_id",
                "due_at",
                "owner_role",
                "status",
                "approved_answer_ids",
                "export_checksum"
            ]
        },
        {
            "id": "blocked",
            "label": "Blockierte Rohdaten",
            "fields": [
                "plain_email_address",
                "full_crm_transcript",
                "contract_text",
                "raw_attachment_binary",
                "portal_credentials",
                "oauth_token",
                "session_cookie",
                "private_customer_notes"
            ]
        }
    ],
    "routing_rules": [
        {
            "id": "security_controls",
            "label": "Security-Fragen",
            "route_to": "Security Group",
            "trigger": "Controls, Logging, Incident, Encryption oder Vulnerability"
        },
        {
            "id": "privacy_dpa",
            "label": "Datenschutz / AVV",
            "route_to": "Privacy Group",
            "trigger": "DPA, TOM, Subprozessor, Transfer, Betroffenenrechte oder KI-Datenverarbeitung"
        },
        {
            "id": "legal_or_rfp",
            "label": "Legal / RFP Red Flag",
            "route_to": "Legal/Compliance",
            "trigger": "Haftung, Vertragszusagen, Auditrecht, Versicherungen oder redline-relevante Klauseln"
        },
        {
            "id": "product_scope",
            "label": "Produkt- und Regionskontext",
            "route_to": "Product Owner",
            "trigger": "Produktlinie, Hosting-Region, Enterprise-Funktion oder kundenspezifischer Scope"
        },
        {
            "id": "sales_deadline",
            "label": "Deal-Frist",
            "route_to": "Sales Engineering",
            "trigger": "Opportunity close date, Due Date oder hoher Deal-Kontext"
        }
    ],
    "guardrails": [
        {
            "id": "public_page_no_sync",
            "label": "Oeffentliche Seite verbindet sich nicht mit CRM, Jira, Slack oder E-Mail",
            "status": "enforced"
        },
        {
            "id": "least_privilege_oauth",
            "label": "OAuth/API-Scopes auf Case/Ticket- und Statusfelder begrenzen",
            "status": "required"
        },
        {
            "id": "field_allowlist_required",
            "label": "Import und Writeback nur ueber Feldallowlist",
            "status": "required"
        },
        {
            "id": "human_review_before_writeback",
            "label": "Keine Antwort oder Datei ohne Human Review zurueckschreiben",
            "status": "required"
        },
        {
            "id": "idempotency_and_audit",
            "label": "Idempotency-Key, Checksumme und Auditlog fuer jeden Import/Writeback",
            "status": "required"
        },
        {
            "id": "retention_cleanup",
            "label": "Rohdateien, Chatkontext und Ticket-Freitexte fristgerecht loeschen oder de-identifizieren",
            "status": "required"
        }
    ],
    "integration_contract": {
        "does_not_connect_publicly": true,
        "does_not_store_crm_transcripts_publicly": true,
        "does_not_write_back_without_review": true,
        "required_before_live": [
            "operator_auth",
            "domain_claim",
            "oauth_scope_review",
            "field_allowlist",
            "webhook_signatures",
            "malware_scan",
            "review_lock",
            "writeback_manifest",
            "audit_log",
            "retention_job"
        ]
    },
    "links": {
        "html": "https://saferpage.de/trust/harztreff.de/fragebogen-integrationen",
        "json": "https://saferpage.de/trust/harztreff.de/fragebogen-integrationen-json",
        "csv": "https://saferpage.de/trust/harztreff.de/fragebogen-integrationen-csv",
        "markdown": "https://saferpage.de/trust/harztreff.de/fragebogen-integrationen-md",
        "trust_center": "https://saferpage.de/trust/harztreff.de",
        "questionnaire_intake": "https://saferpage.de/trust/harztreff.de/questionnaire-intake",
        "questionnaire_review": "https://saferpage.de/trust/harztreff.de/fragebogen-review",
        "questionnaire_export": "https://saferpage.de/trust/harztreff.de/fragebogen-export",
        "ai_agent_settings": "https://saferpage.de/trust/harztreff.de/ki-agent",
        "past_answers": "https://saferpage.de/trust/harztreff.de/antwortspeicher",
        "portal_automation": "https://saferpage.de/trust/harztreff.de/portale",
        "api_operations": "https://saferpage.de/trust/harztreff.de/api",
        "crm_activity_sync": "https://saferpage.de/trust-analytics/harztreff.de/crm-sync",
        "communications": "https://saferpage.de/trust/harztreff.de/kommunikation",
        "team_permissions": "https://saferpage.de/trust/harztreff.de/team-rollen",
        "viewer_privacy": "https://saferpage.de/trust/harztreff.de/viewer-datenschutz"
    },
    "disclaimer": "Diese oeffentliche SaferPage-Seite ist ein Integrations-Blueprint. Sie verbindet sich nicht mit CRM-, Ticket-, Chat- oder E-Mail-Systemen und schreibt keine Kundendaten zurueck."
}
