Ir al contenido
Website Contact Webhook

Website Contact Webhook

licenseOPL-1 Version16.0, 18.0, 19.0 Community Enterprise Odoo.sh authorEquitania Software GmbH supportsupport@equitania.de

Recopilar, seguir y reenviar automáticamente cada solicitud de contacto.

Website Contact Webhook

Website Contact Webhook reúne formularios de contacto configurables para sus sitios Odoo y un punto de entrada webhook protegido para sistemas externos, con reenvío opcional a la plataforma de IA LangDock. Cada sitio recibe su propio formulario bajo una ruta de URL a elegir, y su propia clave para el punto de entrada webhook. Cada solicitud entrante — desde el formulario o por webhook — queda registrada con la dirección del remitente, la marca de tiempo y el estado en un registro consultable, y una tarea programada la reenvía automáticamente a LangDock. No se necesita ninguna instalación de CRM.

Solo en ownERP

La ayuda de este módulo es localizable — para personas y para la IA

Busque usted mismo en la documentación, o deje que un asistente de IA lea la ficha de capacidades del módulo — ambos se basan en las mismas páginas.

UNA PERSONA BUSCA
webhook key
Overview
The module combines two things: a contact form you configure in the backend, and an endpoint other systems use to submit contact requests.
Overview › Following up on submissions
Every entry lists status, the LangDock response code and how many attempts remain.
UNA IA PREGUNTA
eq.helper.doc.get_capability_card(
  "eq_website_contact_webhook")
Devuelve los modelos, vistas y reglas de acceso del módulo como una ficha estructurada — un asistente puede responder preguntas sobre este módulo sin abrir el código fuente.
Utilizado por las herramientas de chat de eq_helper y por cualquier asistente conectado mediante MCP.

La búsqueda de texto completo y la ficha del módulo las proporciona Help Docs (eq_helper) bereit. Die Inhalte liefert dieses Modul mit — ohne Zusatzkonfiguration.

Funciones

Eine Installation, ein Formular je Website

Jede Website bekommt ihr eigenes Kontaktformular unter einem frei wählbaren Pfad. Drei Pfade sind bereits vorbereitet — /kontakt, /contact und /kontaktieren —, dazu zwei Beispielformulare mit unterschiedlichen Interesse-Listen.

  • Formulartitel, Einleitungstext, Erfolgsmeldung, Datenschutzhinweis und Button-Beschriftung lassen sich pro Formular frei formulieren.
  • Anrede-, Kontaktweg- und Betrefffeld sowie die Pflicht zur Nachricht lassen sich pro Formular einzeln ein- oder ausblenden.

Interesse-Optionen, passend zur Zielgruppe

Radio-Buttons oder Checkboxen mit frei wählbaren Beschriftungen und eigener Reihenfolge — jedes Formular zeigt genau die Auswahlpunkte, die zu seinen Besuchern passen.

  • Die beiden Beispielformulare zeigen das an unterschiedlichen Interesse-Listen — eines für Odoo-Editionen, eines für Produktkategorien.
  • Eine ausgewählte Option landet als Teil des gespeicherten Datensatzes, nicht nur im gesendeten Formular.

Änderungen wirken beim nächsten Seitenaufruf

Ein Formular umbenennen, ein Feld ausblenden, eine Interesse-Option verschieben — jede Anpassung im Backend zeigt sich sofort auf der Website. Kein Neustart, kein zusätzlicher Schritt.

Ein eigener Schlüssel pro Website

Jede Website erhält ihren eigenen Zugang zum Webhook-Eingang. Laufen mehrere Websites in derselben Installation, bleiben deren Anfragen sauber getrennt — ein kompromittierter Schlüssel betrifft nie mehr als eine Website.

Der vollständige Rohdatensatz bleibt erhalten

Jede Anfrage — aus dem Formular oder per Webhook — zeigt im Protokoll Name, E-Mail, Telefon und Betreff auf einen Blick, dazu den vollständigen JSON-Payload mit Syntax-Highlighting, die Kopfzeilen und die Absender-IP.

  • „Als bearbeitet markieren“ schließt eine Anfrage ab, „Erneut senden“ stößt die LangDock-Weiterleitung erneut an — auch nach Erreichen der maximalen Versuchszahl.
  • Sensible Kopfzeilen werden vor dem Speichern automatisch entfernt.

Automatische Weiterleitung an LangDock

Ein geplanter Auftrag reicht neue Anfragen alle zwei Minuten an LangDock weiter und wiederholt einen fehlgeschlagenen Versuch bis zu fünfmal, bevor er ihn als gescheitert markiert. Ohne LangDock-Anbindung bleibt das Protokoll die alleinige Aufzeichnung — keine Anfrage geht verloren.

Schutzmaßnahmen von Anfang an aktiv

Der Webhook-Schlüssel ist ausschließlich für Administratoren sichtbar und wird zeitkonstant verglichen, damit ein Timing-Angriff ins Leere läuft. Die LangDock-Zieladresse wird gegen interne Netzwerkbereiche geprüft, sodass der Webhook nicht zum Einfallstor in die eigene Infrastruktur wird.

  • CSRF-Schutz bleibt für die Frontend-Formulare aktiv; der Webhook-Endpunkt authentifiziert sich stattdessen über den API-Schlüssel.
  • Das Modul funktioniert vollständig ohne CRM-Installation — wer darauf verzichtet, verliert trotzdem keine Anfrage.

Häufige Fragen

Welche Odoo-Editionen werden unterstützt?

Das Modul läuft mit Odoo Community und Odoo Enterprise in der Version 19.0 — selbst gehostet oder auf Odoo.sh. Odoo Online, die gehostete SaaS-Variante, lässt keine Apps aus dem Store zu; dort läuft kein Drittanbieter-Modul.

Welche Abhängigkeiten hat das Modul?

Erfordert die Odoo-Module base, web, website und eq_web_json_widget, die Odoo automatisch installiert.

Braucht das Modul zusätzliche Python-Pakete?

Ja — requests, für den Aufruf des LangDock-Webhooks. Odoo installiert Modul-Abhängigkeiten selbst, Python-Pakete jedoch nicht: Die richtet Ihr Administrator einmalig auf dem Server ein. Ohne es lässt sich das Modul nicht installieren.

Wie wird dieses Paket installiert?

Selbst gehostet (eigener Server, Docker): Paket in dieselbe Python-Umgebung installieren, in der Odoo läuft, und den Dienst neu starten — pip install requests. In einem Docker-Setup dieselbe Zeile im Image ergänzen, damit sie einen Container-Rebuild überlebt.

Odoo.sh: requests in eine requirements.txt im Repository eintragen — entweder im Branch-Wurzelverzeichnis oder in dem Ordner, der die Addons enthält. Odoo.sh installiert es beim nächsten Build; ein pip install in der Shell wäre mit dem nächsten Build wieder weg. Die Installation erscheint im Build-Log (~/logs/pip.log).

Das Paket ist auf PyPI veröffentlicht und braucht keinen eigenen Lizenzschlüssel.

Braucht das Modul ein CRM?

Nein. Kontaktanfragen nutzen ein eigenes Datenmodell — eq_website_contact_webhook lässt sich unabhängig installieren, ganz ohne CRM-Abhängigkeit.

Sind die gespeicherten Kontaktdaten personenbezogen?

Ja. Das Protokoll speichert Namen, E-Mail-Adressen, Telefonnummern und IP-Adressen. Behandeln Sie sie entsprechend: Beschränken Sie den Zugriff und löschen Sie Einträge nach Ihren eigenen Aufbewahrungsregeln.

Wie ist der Webhook abgesichert?

Jede Website authentifiziert sich mit ihrem eigenen API-Schlüssel, der zeitkonstant verglichen wird. Sensible Kopfzeilen werden vor dem Speichern entfernt, und die LangDock-Zieladresse wird vor der Nutzung gegen private, lokale und Cloud-Metadaten-Adressbereiche geprüft.

Was passiert, wenn LangDock nicht erreichbar ist?

Der Auftrag wiederholt einen fehlgeschlagenen Weiterleitungsversuch bis zu fünfmal, bevor er ihn als gescheitert markiert. Die Anfrage selbst geht dabei nie verloren — sie bleibt im Protokoll, und „Erneut senden“ stößt jederzeit einen weiteren Versuch an.

Muss ich selbst für Rate-Limiting sorgen?

Ja. /webhook/contact ist öffentlich aus dem Internet erreichbar, und der API-Schlüssel wird erst nach Empfang des Requests geprüft — setzen Sie ein Rate-Limit davor. Ein anpassbares nginx-Beispiel liegt der Moduldokumentation bei.

Bieten Sie Support?

Ja, wenden Sie sich an support@equitania.de.

¿Seguirá funcionando tras las actualizaciones de Odoo?

Sí, dentro de la versión 19.0.x. Un cambio de versión mayor se entrega como una nueva versión del módulo.

Support · Kontakt

We are happy to support you · Wir unterstützen Sie gerne.

Equitania Software GmbH ownERP
Equitania Software GmbH
Weiherstraße 13
75173 Pforzheim
Deutschland · Germany
Telefon: +49 7231 16 604 0
Telefax: +49 7231 16 604 200
Homepage: www.ownerp.com
Support: support.equitania.de
E-Mail: support@equitania.de

ES · Toda la información de esta página tiene carácter descriptivo y no es jurídicamente vinculante. No constituye una garantía de calidad ni el aseguramiento de un alcance funcional determinado, de la idoneidad para un fin concreto o de un resultado específico; únicamente son determinantes los acuerdos contractuales y el alcance de suministro de la versión efectivamente instalada. Las imágenes muestran configuraciones de ejemplo. Los nombres de productos y empresas mencionados son marcas o marcas registradas de sus respectivos titulares; su mención no implica vinculación con dichos titulares ni recomendación por su parte. Esta descripción se ha elaborado con ayuda de IA y ha sido revisada y aprobada antes de su publicación; la versión alemana es la determinante.