diff --git a/addons/cetmix_tower_webhook/i18n/it.po b/addons/cetmix_tower_webhook/i18n/it.po
new file mode 100644
index 0000000..058f9d2
--- /dev/null
+++ b/addons/cetmix_tower_webhook/i18n/it.po
@@ -0,0 +1,822 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * cetmix_tower_webhook
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 16.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/constants.py:0
+#, python-format
+msgid ""
+"\n"
+"
Help for Webhook Authenticator Python Code
\n"
+"\n"
+"
\n"
+" The Python code for the webhook authenticator must return the result variable, which is a dictionary.
\n"
+" Allowed keys:\n"
+"
\n"
+" allowed (bool, required): Authentication result. True if allowed, False otherwise. \n"
+" http_code (int, optional): HTTP status code to return if authentication fails (default is 403). \n"
+" message (str, optional): Error message to show to the client. \n"
+"
\n"
+"
Examples:\n"
+"
\n"
+"# Allow all requests\n"
+"result = {\"allowed\": True}\n"
+"\n"
+"# Deny with custom code and message\n"
+"result = {\"allowed\": False, \"http_code\": 401, \"message\": \"Unauthorized request\"}\n"
+" \n"
+" \n"
+"
Available variables:\n"
+"
\n"
+msgstr ""
+"\n"
+"Aiuto per il codice Python di autenticazione webhook
\n"
+"\n"
+"
\n"
+" Il codice Python per l'autenticazione webhook deve restituire la variabile result, che è un dizionario.
\n"
+" Chiavi consentite:\n"
+"
\n"
+" allowed (bool, richiesto): risulatato autenticazione. True se abilitato, False altrimenti. \n"
+" http_code (int, opzionalel): codice stato HTTP da restituire se l'autenticazione fallisce (predefinito 403). \n"
+" message (str, opzionale): messaggio di errore da visualizzare al cliente. \n"
+"
\n"
+"
Esempi:\n"
+"
\n"
+"# Consenti tutte le richieste\n"
+"result = {\"allowed\": True}\n"
+"\n"
+"# Nega con codie e messaggio personalizzati\n"
+"result = {\"allowed\": False, \"http_code\": 401, \"message\": \"Richiesta non autorizzata\"}\n"
+" \n"
+" \n"
+"
Variabili disponibili:\n"
+"
\n"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/constants.py:0
+#, python-format
+msgid ""
+"\n"
+"Help for Webhook Python Code
\n"
+"\n"
+"
\n"
+" The webhook Python code must set the result variable, which is a dictionary.
\n"
+" Allowed keys:\n"
+"
\n"
+" exit_code (int, optional, default=0): Exit code (0 means success, other values indicate failure). \n"
+" message (str, optional): Message to return in the HTTP response and log. \n"
+"
\n"
+"
Example:\n"
+"
\n"
+"# Simple successful result\n"
+"result = {\"exit_code\": 0, \"message\": \"Webhook processed successfully\"}\n"
+"\n"
+"# Failure example\n"
+"result = {\"exit_code\": 1, \"message\": \"Something went wrong\"}\n"
+" \n"
+" \n"
+"
Available variables:\n"
+"
\n"
+msgstr ""
+"\n"
+"Aiuto per codice Python webhook
\n"
+"\n"
+"
\n"
+" Il codice Python webhook deve impostare la variabile result, che è un dizionario.
\n"
+" Chiavi consentitie:\n"
+"
\n"
+" exit_code (int, opzionale, predefinito=0): codice di uscita (0 significa successo, altri valori indicano fallimento). \n"
+" message (str, opzionale): messaggio da restituire nella risposta HTTP e nel log. \n"
+"
\n"
+"
Esempio:\n"
+"
\n"
+"# Risultato successo semplce\n"
+"result = {\"exit_code\": 0, \"message\": \"Webhook elaborato con successo\"}\n"
+"\n"
+"# Esempio di fallimento\n"
+"result = {\"exit_code\": 1, \"message\": \"Qualcosa è andato storto\"}\n"
+" \n"
+" \n"
+"
Variabili disponibili:\n"
+"
\n"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/constants.py:0
+#, python-format
+msgid ""
+"# Please refer to the 'Help' tab and documentation for more information.\n"
+"#\n"
+"# You can return authenticator result in the 'result' variable which is a dictionary:\n"
+"# result = {\"allowed\": , \"http_code\": , \"message\": }\n"
+"# default value is {\"allowed\": False}\n"
+msgstr ""
+"# Fare riferimento alla libuetta 'Help' e alla documentazione per informazioni aggiuntive.\n"
+"#\n"
+"# Si può restituire il risultato dell'autenticazione nella variabile 'result' che è un dizionario:\n"
+"# result = {\"allowed\": , \"http_code\": , \"message\": }\n"
+"# il valore predefinito è {\"allowed\": False}\n"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/constants.py:0
+#, python-format
+msgid ""
+"# Please refer to the 'Help' tab and documentation for more information.\n"
+"#\n"
+"# You can return webhook result in the 'result' variable which is a dictionary:\n"
+"# result = {\"exit_code\": , \"message\": , \"message\": "
+msgstr "Imposta il numero di giorni per cui conservare i registri dei webhook. I vecchi registri verranno eliminati automaticamente.
"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields.selection,name:cetmix_tower_webhook.selection__cx_tower_webhook_log__code_status__skipped
+msgid "Skipped"
+msgstr "Saltato"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields.selection,name:cetmix_tower_webhook.selection__cx_tower_webhook_log__authentication_status__success
+#: model:ir.model.fields.selection,name:cetmix_tower_webhook.selection__cx_tower_webhook_log__code_status__success
+msgid "Success"
+msgstr "Successo"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook__code
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook_authenticator__code
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook_eval_mixin__code
+msgid "This field will be rendered using variables"
+msgstr "Questo campo verrà visualizzato utilizzando le variabili"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_authenticator__trusted_proxy_ips
+msgid "Trusted Proxy IPs"
+msgstr "IP proxy autorizzati"
+
+#. module: cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_log_view_search
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_view_search
+msgid "User"
+msgstr "Utente"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook_log__user_id
+msgid "User as which the webhook code was executed (if set)."
+msgstr "Utente per conto del quale è stato eseguito il codice webhook (se impostato)."
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook__variable_ids
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_authenticator__variable_ids
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_eval_mixin__variable_ids
+msgid "Variables"
+msgstr "Variabili"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model,name:cetmix_tower_webhook.model_cx_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_variable__webhook_ids
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_log__webhook_id
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_log_view_search
+msgid "Webhook"
+msgstr "Webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model,name:cetmix_tower_webhook.model_cx_tower_webhook_authenticator
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_variable__webhook_authenticator_ids
+msgid "Webhook Authenticator"
+msgstr "Autenticatore webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_variable__webhook_authenticator_ids_count
+msgid "Webhook Authenticator Count"
+msgstr "Conteggio autenticatore webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.actions.act_window,name:cetmix_tower_webhook.cx_tower_webhook_authenticator_action
+#: model:ir.ui.menu,name:cetmix_tower_webhook.menu_cetmix_tower_webhook_authenticator
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_variable_view_form
+msgid "Webhook Authenticators"
+msgstr "Autenticatori webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model,name:cetmix_tower_webhook.model_cx_tower_webhook_log
+msgid "Webhook Call Log"
+msgstr "Registro chiamata webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.ui.menu,name:cetmix_tower_webhook.menu_cetmix_tower_webhook_log
+msgid "Webhook Calls"
+msgstr "Chiamate webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_log__code_status
+msgid "Webhook Code Status"
+msgstr "Stato codice webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_variable__webhook_ids_count
+msgid "Webhook Count"
+msgstr "Conteggio webhook"
+
+#. module: cetmix_tower_webhook
+#: model:ir.actions.act_window,name:cetmix_tower_webhook.cx_tower_webhook_log_action
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_log_view_search
+msgid "Webhook Logs"
+msgstr "Registri webhook"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/cx_tower_webhook.py:0
+#, python-format
+msgid "Webhook code execution error: %(error)s"
+msgstr "Errore esecuzione codie webhook: %(error)s"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook__endpoint
+msgid "Webhook endpoint. The complete URL will be /cetmix_tower_webhooks/"
+msgstr "Endpoint del webhook. L'URL completo sarà /cetmix_tower_webhooks/"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,help:cetmix_tower_webhook.field_cx_tower_webhook_log__webhook_id
+msgid "Webhook that received the call."
+msgstr "Webhook che ha ricevuto la chiamata"
+
+#. module: cetmix_tower_webhook
+#. odoo-python
+#: code:addons/cetmix_tower_webhook/models/cx_tower_webhook_eval_mixin.py:0
+#, python-format
+msgid "Webhook/Authenticator code error: result is not a dict"
+msgstr "Errore codice webhook/autenticatore: il risultato non è un dizionario"
+
+#. module: cetmix_tower_webhook
+#: model:ir.actions.act_window,name:cetmix_tower_webhook.cx_tower_webhook_action
+#: model:ir.ui.menu,name:cetmix_tower_webhook.menu_cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_variable_view_form
+msgid "Webhooks"
+msgstr "Webhook"
+
+#. module: cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_authenticator_view_form
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_view_form
+msgid "YAML"
+msgstr "YAML"
+
+#. module: cetmix_tower_webhook
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook__yaml_code
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_authenticator__yaml_code
+#: model:ir.model.fields,field_description:cetmix_tower_webhook.field_cx_tower_webhook_eval_mixin__yaml_code
+msgid "Yaml Code"
+msgstr "Codice YAML"
+
+#. module: cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_authenticator_view_form
+msgid "You must be a member of the \"YAML/Export\" group to export data as YAML"
+msgstr "Bisogna essere membro del gruppo \"YAML/Export\" per esportare i dati come YAML"
+
+#. module: cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_view_form
+msgid "You must be a member of the \"YAML/Export\" group to export data as YAML."
+msgstr "Bisogna essere membro del gruppo \"YAML/Export\" per esportare i dati come YAML."
+
+#. module: cetmix_tower_webhook
+#: model_terms:ir.ui.view,arch_db:cetmix_tower_webhook.cx_tower_webhook_authenticator_view_form
+msgid "e.g.: 192.168.1.10, 192.168.2.0/24, 2001:db8::/32, 2a00:1450:4001:824::200e"
+msgstr "es.: 192.168.1.10, 192.168.2.0/24, 2001:db8::/32, 2a00:1450:4001:824::200e"
+