diff --git a/Gemfile.lock b/Gemfile.lock
index 5db098e7c..d5e97a9ba 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -644,7 +644,7 @@ GEM
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.8.1)
- rack (3.2.0)
+ rack (3.2.3)
rack-attack (6.7.0)
rack (>= 1.0, < 4)
rack-contrib (2.5.0)
@@ -935,7 +935,7 @@ GEM
unicode-emoji (~> 4.0, >= 4.0.4)
unicode-emoji (4.0.4)
uniform_notifier (1.17.0)
- uri (1.0.3)
+ uri (1.0.4)
uri_template (0.7.0)
valid_email2 (5.2.6)
activemodel (>= 3.2)
diff --git a/app/controllers/devise_overrides/omniauth_callbacks_controller.rb b/app/controllers/devise_overrides/omniauth_callbacks_controller.rb
index fd3dba87c..900125670 100644
--- a/app/controllers/devise_overrides/omniauth_callbacks_controller.rb
+++ b/app/controllers/devise_overrides/omniauth_callbacks_controller.rb
@@ -19,6 +19,19 @@ class DeviseOverrides::OmniauthCallbacksController < DeviseTokenAuth::OmniauthCa
redirect_to login_page_url(email: encoded_email, sso_auth_token: @resource.generate_sso_auth_token)
end
+ def sign_in_user_on_mobile
+ @resource.skip_confirmation! if confirmable_enabled?
+
+ # once the resource is found and verified
+ # we can just send them to the login page again with the SSO params
+ # that will log them in
+ encoded_email = ERB::Util.url_encode(@resource.email)
+ params = { email: encoded_email, sso_auth_token: @resource.generate_sso_auth_token }.to_query
+
+ mobile_deep_link_base = GlobalConfigService.load('MOBILE_DEEP_LINK_BASE', 'chatwootapp')
+ redirect_to "#{mobile_deep_link_base}://auth/saml?#{params}", allow_other_host: true
+ end
+
def sign_up_user
return redirect_to login_page_url(error: 'no-account-found') unless account_signup_allowed?
return redirect_to login_page_url(error: 'business-account-only') unless validate_signup_email_is_business_domain?
diff --git a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
index 60038253c..87fe57564 100644
--- a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/am/integrations.json b/app/javascript/dashboard/i18n/locale/am/integrations.json
index c59ec66df..6c1c9e484 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/am/settings.json b/app/javascript/dashboard/i18n/locale/am/settings.json
index 9ddc3b805..812b0cd8b 100644
--- a/app/javascript/dashboard/i18n/locale/am/settings.json
+++ b/app/javascript/dashboard/i18n/locale/am/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
index 1314ed561..61bfaa199 100644
--- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrations.json b/app/javascript/dashboard/i18n/locale/ar/integrations.json
index ca7e7c553..f5cc4427b 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "لا شيء",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "مفتاح API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "كلمة المرور",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "النوع"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "العدد",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "مطلوب"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json
index 1a24cf67f..22b9cb254 100644
--- a/app/javascript/dashboard/i18n/locale/ar/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "الرئيسية",
"AGENTS": "وكيل الدعم",
"AGENT_BOTS": "الروبوتات",
diff --git a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
index 60038253c..87fe57564 100644
--- a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/az/integrations.json b/app/javascript/dashboard/i18n/locale/az/integrations.json
index c59ec66df..6c1c9e484 100644
--- a/app/javascript/dashboard/i18n/locale/az/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/az/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/az/settings.json b/app/javascript/dashboard/i18n/locale/az/settings.json
index 9ddc3b805..812b0cd8b 100644
--- a/app/javascript/dashboard/i18n/locale/az/settings.json
+++ b/app/javascript/dashboard/i18n/locale/az/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
index e540e8c1e..46f61010e 100644
--- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrations.json b/app/javascript/dashboard/i18n/locale/bg/integrations.json
index 0ebfc0fc8..1d9c9c370 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Тип"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/bg/settings.json b/app/javascript/dashboard/i18n/locale/bg/settings.json
index 1b7fabeaf..7879190b6 100644
--- a/app/javascript/dashboard/i18n/locale/bg/settings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Агенти",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
index c8670b02d..30614f2dd 100644
--- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrations.json b/app/javascript/dashboard/i18n/locale/ca/integrations.json
index 29d1d9546..e354ccc2e 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ningú",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Contrasenya",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipus"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Necessari"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json
index f843b0b6d..bf9ec5edc 100644
--- a/app/javascript/dashboard/i18n/locale/ca/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Inici",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
index 9bced9936..ac45d9edd 100644
--- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrations.json b/app/javascript/dashboard/i18n/locale/cs/integrations.json
index 5480257cc..97744ae27 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nic",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Heslo",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json
index c0a307d56..616e16942 100644
--- a/app/javascript/dashboard/i18n/locale/cs/settings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Domů",
"AGENTS": "Agenti",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
index 03345d326..5fc3eb6e9 100644
--- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/da/integrations.json b/app/javascript/dashboard/i18n/locale/da/integrations.json
index f0ee6e29f..4f5290ba6 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ingen",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Nøgle"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Adgangskode",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nummer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Påkrævet"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json
index 3c312894d..b2db02ef5 100644
--- a/app/javascript/dashboard/i18n/locale/da/settings.json
+++ b/app/javascript/dashboard/i18n/locale/da/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Hjem",
"AGENTS": "Agenter",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
index ad1134cb3..1b23f7613 100644
--- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/de/integrations.json b/app/javascript/dashboard/i18n/locale/de/integrations.json
index a8c115ea1..485ab7110 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Keine",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API-Schlüssel"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Passwort",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Typ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nummer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Benötigt"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json
index 5a97adb72..190880321 100644
--- a/app/javascript/dashboard/i18n/locale/de/settings.json
+++ b/app/javascript/dashboard/i18n/locale/de/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Hauptseite",
"AGENTS": "Agenten",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
index 92b7e5c59..bc15d16ab 100644
--- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/el/integrations.json b/app/javascript/dashboard/i18n/locale/el/integrations.json
index f0e2bf220..a79ab4253 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Κανένα",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Κλειδί API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Κωδικός",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Τύπος"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Αριθμός",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Υποχρεωτικό"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json
index a71c447f9..da4c4dec5 100644
--- a/app/javascript/dashboard/i18n/locale/el/settings.json
+++ b/app/javascript/dashboard/i18n/locale/el/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Αρχική",
"AGENTS": "Πράκτορες",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
index b1aac6d09..a6decf95f 100644
--- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/es/integrations.json b/app/javascript/dashboard/i18n/locale/es/integrations.json
index aa720521d..c81a18d41 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ninguna",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Clave de API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Contraseña",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Requerido"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "Preguntas frecuentes",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json
index 35be4335c..37a1bfda4 100644
--- a/app/javascript/dashboard/i18n/locale/es/settings.json
+++ b/app/javascript/dashboard/i18n/locale/es/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Asistentes",
"CAPTAIN_DOCUMENTS": "Documentos",
"CAPTAIN_RESPONSES": "Preguntas frecuentes",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Inicio",
"AGENTS": "Agentes",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
index 3a8e24b35..de1ebdb78 100644
--- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrations.json b/app/javascript/dashboard/i18n/locale/fa/integrations.json
index e911eb7e3..18402ea9c 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "هیچکدام",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "رمز عبور",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "نوع"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "شماره",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "ضروری"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json
index 84c1c7455..ae309c5bc 100644
--- a/app/javascript/dashboard/i18n/locale/fa/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "صفحه اصلی",
"AGENTS": "ایجنت ها",
"AGENT_BOTS": "رباتها",
diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
index 8409f4bab..3d352511e 100644
--- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrations.json b/app/javascript/dashboard/i18n/locale/fi/integrations.json
index c49e18379..270dcd525 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Salasana",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json
index f5755c52a..3fbcfe345 100644
--- a/app/javascript/dashboard/i18n/locale/fi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Koti",
"AGENTS": "Edustajat",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
index 583de65a9..f974e2cd6 100644
--- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrations.json b/app/javascript/dashboard/i18n/locale/fr/integrations.json
index 379f91eb9..3ee092519 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Outils",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Aucun",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Clé de l'API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Mot de passe",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nombre",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obligatoire"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json
index a951d668b..f04045ea6 100644
--- a/app/javascript/dashboard/i18n/locale/fr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Outils",
"HOME": "Accueil",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
index 7bb57e2e7..32c03ad13 100644
--- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json
index a1b30db1a..37ca8a139 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "כלום",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "מפתח API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "סיסמה",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "סוג"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "מספר",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "נדרש"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/he/settings.json b/app/javascript/dashboard/i18n/locale/he/settings.json
index bc4a2ec7c..1601016eb 100644
--- a/app/javascript/dashboard/i18n/locale/he/settings.json
+++ b/app/javascript/dashboard/i18n/locale/he/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "בית",
"AGENTS": "סוכנים",
"AGENT_BOTS": "בוטים",
diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
index 00a9c78f0..e85b262c0 100644
--- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrations.json b/app/javascript/dashboard/i18n/locale/hi/integrations.json
index f2d79d5d7..97fffa5c8 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json
index 52f28443b..256f77c04 100644
--- a/app/javascript/dashboard/i18n/locale/hi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
index 2b64f5d43..f2bb07484 100644
--- a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json
index d73281dbb..8976cbb2a 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Broj",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/hr/settings.json b/app/javascript/dashboard/i18n/locale/hr/settings.json
index 4c9d58c66..51e35e25b 100644
--- a/app/javascript/dashboard/i18n/locale/hr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agenti",
"AGENT_BOTS": "Botovi",
diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
index 3f585db3e..7d719877d 100644
--- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrations.json b/app/javascript/dashboard/i18n/locale/hu/integrations.json
index 544358514..2112ef0c8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nincs",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API kulcs"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Jelszó",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Típus"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Szám",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Kötelező"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json
index 1788fbdcd..0bda60edd 100644
--- a/app/javascript/dashboard/i18n/locale/hu/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Nyitólap",
"AGENTS": "Ügynökök",
"AGENT_BOTS": "Botok",
diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
index e8cf88458..1f9aeae27 100644
--- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrations.json b/app/javascript/dashboard/i18n/locale/hy/integrations.json
index 03898d278..081ddbde8 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/hy/settings.json b/app/javascript/dashboard/i18n/locale/hy/settings.json
index 9ddc3b805..812b0cd8b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
index 5409c4bb7..9ddc88efe 100644
--- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/id/integrations.json b/app/javascript/dashboard/i18n/locale/id/integrations.json
index 9dd89b13b..4da713720 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Tidak ada",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Kata Sandi",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipe"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nomor",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Diperlukan"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json
index 863f7e562..75324f02f 100644
--- a/app/javascript/dashboard/i18n/locale/id/settings.json
+++ b/app/javascript/dashboard/i18n/locale/id/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Beranda",
"AGENTS": "Agen",
"AGENT_BOTS": "Bot Agen",
diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
index e78d89c1a..5db8fe769 100644
--- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/is/integrations.json b/app/javascript/dashboard/i18n/locale/is/integrations.json
index 53a81dc2f..e8193f541 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Enginn",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Lykill"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Lykilorð",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Nauðsynlegt"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/is/settings.json b/app/javascript/dashboard/i18n/locale/is/settings.json
index 776cbf10a..076f19542 100644
--- a/app/javascript/dashboard/i18n/locale/is/settings.json
+++ b/app/javascript/dashboard/i18n/locale/is/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Þjónustufulltrúar",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/it/general.json b/app/javascript/dashboard/i18n/locale/it/general.json
index aca059969..3c3d2f0fa 100644
--- a/app/javascript/dashboard/i18n/locale/it/general.json
+++ b/app/javascript/dashboard/i18n/locale/it/general.json
@@ -7,6 +7,6 @@
},
"CLOSE": "Chiudi",
"BETA": "Beta",
- "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it."
+ "BETA_DESCRIPTION": "Questa funzione è in beta e può cambiare mentre la miglioriamo."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
index b4ba15a0d..0443b482a 100644
--- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json
index 7b6dee7f7..390923320 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nessuno",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Chiave API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numero",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obbligatorio"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json
index 7dc7d5d01..8a014ceae 100644
--- a/app/javascript/dashboard/i18n/locale/it/settings.json
+++ b/app/javascript/dashboard/i18n/locale/it/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agenti",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
index 99953d1cc..25c9b494b 100644
--- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "承認済み",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrations.json b/app/javascript/dashboard/i18n/locale/ja/integrations.json
index 978ab5172..e287b8bb9 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "なし",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "APIキー"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "パスワード",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "タイプ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "数値",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "必須"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQ",
"ADD_NEW": "新しいFAQを作成",
diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json
index 7020d5f38..297fb854a 100644
--- a/app/javascript/dashboard/i18n/locale/ja/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "アシスタント",
"CAPTAIN_DOCUMENTS": "ドキュメント",
"CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "ホーム",
"AGENTS": "担当者",
"AGENT_BOTS": "ボット",
diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
index 00a9c78f0..e85b262c0 100644
--- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrations.json b/app/javascript/dashboard/i18n/locale/ka/integrations.json
index 03898d278..081ddbde8 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ka/settings.json b/app/javascript/dashboard/i18n/locale/ka/settings.json
index 52f28443b..256f77c04 100644
--- a/app/javascript/dashboard/i18n/locale/ka/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
index 1e21c4d18..f459867e6 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrations.json b/app/javascript/dashboard/i18n/locale/ko/integrations.json
index 929cecfc0..bb4e23b89 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "내용",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "없음",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "비밀번호",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "숫자",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json
index c24c08f1b..4e4af2242 100644
--- a/app/javascript/dashboard/i18n/locale/ko/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "홈",
"AGENTS": "에이전트",
"AGENT_BOTS": "봇",
diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
index 20e34fa24..6331e3e72 100644
--- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrations.json b/app/javascript/dashboard/i18n/locale/lt/integrations.json
index c655e1868..d1ee89a6f 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nėra",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API raktas"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Slaptažodis",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipas"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numeris",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Reikalingas"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/lt/settings.json b/app/javascript/dashboard/i18n/locale/lt/settings.json
index 53fd20b6d..7b0b24e1c 100644
--- a/app/javascript/dashboard/i18n/locale/lt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Pagrindinis",
"AGENTS": "Agentai",
"AGENT_BOTS": "Botai",
diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
index 888760213..365c91af1 100644
--- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Apstiprināts",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrations.json b/app/javascript/dashboard/i18n/locale/lv/integrations.json
index a6d4764ee..35df60e06 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nav",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API atslēga"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Parole",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tips"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numurs",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Nepieciešams"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "Bieži uzdotie jautājumi",
"ADD_NEW": "Izveidot jaunu sarakstu ar bieži uzdotiem jautājumiem",
diff --git a/app/javascript/dashboard/i18n/locale/lv/settings.json b/app/javascript/dashboard/i18n/locale/lv/settings.json
index 94c2307e9..663754aec 100644
--- a/app/javascript/dashboard/i18n/locale/lv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Asistenti",
"CAPTAIN_DOCUMENTS": "Dokumenti",
"CAPTAIN_RESPONSES": "Bieži uzdotie jautājumi",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Sākums",
"AGENTS": "Aģenti",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
index b957d22c7..5543d4cf2 100644
--- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrations.json b/app/javascript/dashboard/i18n/locale/ml/integrations.json
index b9011e415..e09e2008d 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "പാസ്വേഡ്",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json
index f698f0dd7..4fa67d25e 100644
--- a/app/javascript/dashboard/i18n/locale/ml/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "ഹോം",
"AGENTS": "ഏജന്റുമാർ",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
index 389123146..b63a7df5c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrations.json b/app/javascript/dashboard/i18n/locale/ms/integrations.json
index 572e58b04..bc6839c3c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nombor",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ms/settings.json b/app/javascript/dashboard/i18n/locale/ms/settings.json
index 36df89c78..57032fa82 100644
--- a/app/javascript/dashboard/i18n/locale/ms/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Ejen",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
index d9fc7e643..21a0d4986 100644
--- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json
index cfdd76b7c..9bdcfa2b2 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json
index 5779c540b..28cc081e0 100644
--- a/app/javascript/dashboard/i18n/locale/ne/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
index 24f4701bd..d333bac2d 100644
--- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrations.json b/app/javascript/dashboard/i18n/locale/nl/integrations.json
index 73fe8761c..d75ac2e3a 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Geen",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API sleutel"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Wachtwoord",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Getal",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json
index 0b2d4ac90..e75351d6d 100644
--- a/app/javascript/dashboard/i18n/locale/nl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Startpagina",
"AGENTS": "Medewerkers",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
index beca8fb5a..f8f0bb64f 100644
--- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json
index 62e54852c..80eb47d35 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Passord",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json
index f4e7d03dd..7ed01e244 100644
--- a/app/javascript/dashboard/i18n/locale/no/settings.json
+++ b/app/javascript/dashboard/i18n/locale/no/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Hjem",
"AGENTS": "Agenter",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
index 7ee2d9779..e848df371 100644
--- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrations.json b/app/javascript/dashboard/i18n/locale/pl/integrations.json
index b3f26646a..eab58299c 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Brak",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Klucz API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Hasło",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Typ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Wymagane"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json
index 5fecc7f77..0314c4375 100644
--- a/app/javascript/dashboard/i18n/locale/pl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Strona główna",
"AGENTS": "Agenci",
"AGENT_BOTS": "Boty",
diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
index 3c0bbf337..d6032baa3 100644
--- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrations.json b/app/javascript/dashboard/i18n/locale/pt/integrations.json
index 785036a76..992991440 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Ferramentas",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nenhuma",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Chave da API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Palavra-passe",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obrigatório"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json
index 72b46a67a..8e71ed9a2 100644
--- a/app/javascript/dashboard/i18n/locale/pt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Ferramentas",
"HOME": "Principal",
"AGENTS": "Agentes",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
index 5212f63d4..13153cedf 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Aceito",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
index 63a4bc0a3..fba12cd5f 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Ferramentas",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nenhuma",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Chave API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Senha",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obrigatório"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Criar nova FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
index 7f5944967..8c4f3050c 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistentes",
"CAPTAIN_DOCUMENTS": "Documentos",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Ferramentas",
"HOME": "Principal",
"AGENTS": "Agentes",
"AGENT_BOTS": "Robôs",
diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
index 049398332..343024e17 100644
--- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ro/integrations.json b/app/javascript/dashboard/i18n/locale/ro/integrations.json
index 9d192cd77..bd460905d 100644
--- a/app/javascript/dashboard/i18n/locale/ro/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ro/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descriere",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nimic",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Cheie API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Parola",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tip"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Număr",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Necesar"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ro/settings.json b/app/javascript/dashboard/i18n/locale/ro/settings.json
index 2ae1524e6..def3181f6 100644
--- a/app/javascript/dashboard/i18n/locale/ro/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Acasa",
"AGENTS": "Agenți",
"AGENT_BOTS": "Boți",
diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
index 3b0a8802b..2033217a8 100644
--- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Одобрено",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ru/integrations.json b/app/javascript/dashboard/i18n/locale/ru/integrations.json
index 929c76186..3ff5e6d4e 100644
--- a/app/javascript/dashboard/i18n/locale/ru/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ru/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Да, удалить",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ничего",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Ключ API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Пароль",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Тип"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Число",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Обязательно"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQ",
"ADD_NEW": "Создать новый FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ru/settings.json b/app/javascript/dashboard/i18n/locale/ru/settings.json
index 788f86940..8651142e8 100644
--- a/app/javascript/dashboard/i18n/locale/ru/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Ассистенты",
"CAPTAIN_DOCUMENTS": "Документы",
"CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Главная",
"AGENTS": "Операторы",
"AGENT_BOTS": "Боты",
diff --git a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
index 77024f23c..29c36f7be 100644
--- a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sh/integrations.json b/app/javascript/dashboard/i18n/locale/sh/integrations.json
index 03898d278..081ddbde8 100644
--- a/app/javascript/dashboard/i18n/locale/sh/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sh/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sh/settings.json b/app/javascript/dashboard/i18n/locale/sh/settings.json
index 9ddc3b805..812b0cd8b 100644
--- a/app/javascript/dashboard/i18n/locale/sh/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
index fa3214620..9b4950a7e 100644
--- a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sk/integrations.json b/app/javascript/dashboard/i18n/locale/sk/integrations.json
index 1bf86ffe2..efb87fb1b 100644
--- a/app/javascript/dashboard/i18n/locale/sk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sk/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Žiadne",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API kľúč"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Povinné"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sk/settings.json b/app/javascript/dashboard/i18n/locale/sk/settings.json
index 44457e288..719146e9e 100644
--- a/app/javascript/dashboard/i18n/locale/sk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agenti",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
index 69290a1a2..9871ec605 100644
--- a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sl/integrations.json b/app/javascript/dashboard/i18n/locale/sl/integrations.json
index e4216f051..660e1cf2c 100644
--- a/app/javascript/dashboard/i18n/locale/sl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sl/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Geslo",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Številka",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sl/settings.json b/app/javascript/dashboard/i18n/locale/sl/settings.json
index f137e56c9..b5df89409 100644
--- a/app/javascript/dashboard/i18n/locale/sl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Boti",
diff --git a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
index 0cf3267ff..f79a29e5b 100644
--- a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sq/integrations.json b/app/javascript/dashboard/i18n/locale/sq/integrations.json
index a4c2bb121..7e94c3097 100644
--- a/app/javascript/dashboard/i18n/locale/sq/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sq/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sq/settings.json b/app/javascript/dashboard/i18n/locale/sq/settings.json
index dda91af84..a05b4a5d8 100644
--- a/app/javascript/dashboard/i18n/locale/sq/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
index a4fece97a..c8a2c6f55 100644
--- a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sr/integrations.json b/app/javascript/dashboard/i18n/locale/sr/integrations.json
index 97bbdcb69..ab939f0d1 100644
--- a/app/javascript/dashboard/i18n/locale/sr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sr/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Niko",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API ključ"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Lozinka",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tip"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Broj",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obavezno"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sr/settings.json b/app/javascript/dashboard/i18n/locale/sr/settings.json
index 070361cd9..2bcf552c1 100644
--- a/app/javascript/dashboard/i18n/locale/sr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Početak",
"AGENTS": "Agenti",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
index cfa768b2d..9ef4bb21c 100644
--- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/sv/integrations.json b/app/javascript/dashboard/i18n/locale/sv/integrations.json
index c9eef1a7f..a77873a93 100644
--- a/app/javascript/dashboard/i18n/locale/sv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sv/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivning",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Lösenord",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/sv/settings.json b/app/javascript/dashboard/i18n/locale/sv/settings.json
index 1041ef3d9..f545647b2 100644
--- a/app/javascript/dashboard/i18n/locale/sv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Hem",
"AGENTS": "Agenter",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
index 32f0db539..93713c076 100644
--- a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ta/integrations.json b/app/javascript/dashboard/i18n/locale/ta/integrations.json
index ada1a1f10..8f4a50584 100644
--- a/app/javascript/dashboard/i18n/locale/ta/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ta/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "பாஸ்வேர்ட்",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ta/settings.json b/app/javascript/dashboard/i18n/locale/ta/settings.json
index 9f3df3486..8881d2028 100644
--- a/app/javascript/dashboard/i18n/locale/ta/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "முகப்பு",
"AGENTS": "ஏஜென்ட்கள்",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
index 3ed841223..b158f3d9d 100644
--- a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/th/integrations.json b/app/javascript/dashboard/i18n/locale/th/integrations.json
index 295e55571..5fc74f233 100644
--- a/app/javascript/dashboard/i18n/locale/th/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/th/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "คำอธิบาย",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "ไม่มี",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "หรัสผ่าน",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "ประเภท"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "ตัวเลข",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "โปรดระบุ"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/th/settings.json b/app/javascript/dashboard/i18n/locale/th/settings.json
index 49cb4e087..065d9fcb2 100644
--- a/app/javascript/dashboard/i18n/locale/th/settings.json
+++ b/app/javascript/dashboard/i18n/locale/th/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "หน้าหลัก",
"AGENTS": "พนักงาน",
"AGENT_BOTS": "บอท",
diff --git a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
index 60038253c..87fe57564 100644
--- a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/tl/integrations.json b/app/javascript/dashboard/i18n/locale/tl/integrations.json
index c59ec66df..6c1c9e484 100644
--- a/app/javascript/dashboard/i18n/locale/tl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tl/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/tl/settings.json b/app/javascript/dashboard/i18n/locale/tl/settings.json
index 9ddc3b805..812b0cd8b 100644
--- a/app/javascript/dashboard/i18n/locale/tl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
index cb131e8fc..e8c39e733 100644
--- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Değerlendirme mevcut değil"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Mevcut değil"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/tr/integrations.json b/app/javascript/dashboard/i18n/locale/tr/integrations.json
index c214105c6..74c9fd61e 100644
--- a/app/javascript/dashboard/i18n/locale/tr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tr/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Araçlar",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Evet, sil",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Açıklama",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Hiç",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Anahtarı"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Parola",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tip"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Sayı",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Zorunlu"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/tr/settings.json b/app/javascript/dashboard/i18n/locale/tr/settings.json
index 22cc50c9c..120acd2f4 100644
--- a/app/javascript/dashboard/i18n/locale/tr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Araçlar",
"HOME": "Anasayfa",
"AGENTS": "Kullanıcılar",
"AGENT_BOTS": "Botlar",
diff --git a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
index b3b2108b0..7b63997e5 100644
--- a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/uk/integrations.json b/app/javascript/dashboard/i18n/locale/uk/integrations.json
index 52d74e197..d08bbf1c7 100644
--- a/app/javascript/dashboard/i18n/locale/uk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/uk/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Так, видалити",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Опис",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Нiчого",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API ключ"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Пароль",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Тип"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Номер",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Обов'язково"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/uk/settings.json b/app/javascript/dashboard/i18n/locale/uk/settings.json
index d973668e9..6d480d63b 100644
--- a/app/javascript/dashboard/i18n/locale/uk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Головна",
"AGENTS": "Агенти",
"AGENT_BOTS": "Боти",
diff --git a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
index 7c36d716f..fabfa956f 100644
--- a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ur/integrations.json b/app/javascript/dashboard/i18n/locale/ur/integrations.json
index 5b33237af..4bae35b73 100644
--- a/app/javascript/dashboard/i18n/locale/ur/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ur/settings.json b/app/javascript/dashboard/i18n/locale/ur/settings.json
index a91b5c96e..dda7ab163 100644
--- a/app/javascript/dashboard/i18n/locale/ur/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "ایجنٹ",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
index 757ba2ca8..b683eacff 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
index 03898d278..081ddbde8 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
index 52f28443b..256f77c04 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
index 81bc1b8eb..8c56eccf7 100644
--- a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/vi/integrations.json b/app/javascript/dashboard/i18n/locale/vi/integrations.json
index 4968ebfc6..6d8fee8ae 100644
--- a/app/javascript/dashboard/i18n/locale/vi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/vi/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Có, xoá",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Mô tả",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Không có",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Khoá API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Mật khẩu",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Kiểu"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Số",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Bắt buộc"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/vi/settings.json b/app/javascript/dashboard/i18n/locale/vi/settings.json
index 6196b02bf..1f5c43834 100644
--- a/app/javascript/dashboard/i18n/locale/vi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "Trang Chủ",
"AGENTS": "Đại lý",
"AGENT_BOTS": "Bots",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
index 93e79d04d..009ac5eff 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "已批准",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
index 6558e5a4b..fdc96f2ba 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "工具",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "是的,删除",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "啥都没有",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API 密钥"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "密码",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "类型"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "号码",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "必填项"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "常见问题",
"ADD_NEW": "创建新常见问题",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
index 25c7e3f0d..478816f53 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "助手",
"CAPTAIN_DOCUMENTS": "文档",
"CAPTAIN_RESPONSES": "常见问题",
+ "CAPTAIN_TOOLS": "工具",
"HOME": "首页",
"AGENTS": "客服代理",
"AGENT_BOTS": "机器人",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
index 02fd64aff..95a0f6f20 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
@@ -648,14 +648,16 @@
"TIER_1K": "1K customers per 24h",
"TIER_10K": "10K customers per 24h",
"TIER_100K": "100K customers per 24h",
- "TIER_UNLIMITED": "Unlimited customers per 24h"
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
},
"STATUSES": {
"APPROVED": "Approved",
"PENDING_REVIEW": "Pending Review",
"AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
"REJECTED": "Rejected",
- "DECLINED": "Declined"
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
},
"MODES": {
"SANDBOX": "Sandbox",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
index cf00f291a..a781e7728 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
@@ -752,6 +752,115 @@
}
}
},
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "是的,刪除",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述資訊",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "無",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "密碼",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "類別"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "數字",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
"RESPONSES": {
"HEADER": "FAQs",
"ADD_NEW": "Create new FAQ",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
index 3a544d72f..7840c4bad 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
@@ -304,6 +304,7 @@
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
"CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
"HOME": "首頁",
"AGENTS": "客服",
"AGENT_BOTS": "機器人",
diff --git a/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue b/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue
index fc3905014..8ba3d69a9 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/billing/Index.vue
@@ -1,9 +1,11 @@
diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/BusinessDay.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/BusinessDay.vue
index 14ba5b371..b90ea92ad 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/BusinessDay.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/BusinessDay.vue
@@ -96,11 +96,12 @@ export default {
return parse(this.toTime, 'hh:mm a', new Date());
},
totalHours() {
- if (this.timeSlot.openAllDay) {
- return 24;
- }
- const totalHours = differenceInMinutes(this.toDate, this.fromDate) / 60;
- return totalHours;
+ if (this.timeSlot.openAllDay) return '24h';
+
+ const totalMinutes = differenceInMinutes(this.toDate, this.fromDate);
+ const [h, m] = [Math.floor(totalMinutes / 60), totalMinutes % 60];
+
+ return [h && `${h}h`, m && `${m}m`].filter(Boolean).join(' ') || '0m';
},
hasError() {
return !this.timeSlot.valid;
@@ -211,7 +212,7 @@ export default {
v-if="isDayEnabled && !hasError"
class="label bg-n-brand/10 dark:bg-n-brand/30 text-n-blue-text text-xs inline-block px-2 py-1 rounded-lg cursor-default whitespace-nowrap"
>
- {{ totalHours }} {{ $t('INBOX_MGMT.BUSINESS_HOURS.DAY.HOURS') }}
+ {{ totalHours }}
diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/businessHour.js b/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/businessHour.js
index 69089bf3c..b73368035 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/businessHour.js
+++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/businessHour.js
@@ -53,6 +53,7 @@ export const generateTimeSlots = (step = 15) => {
Generates a list of time strings from 12:00 AM to next 24 hours. Each new string
will be generated by adding `step` minutes to the previous one.
The list is generated by starting with a random day and adding step minutes till end of the same day.
+ Always includes 11:59 PM as the final slot to complete the day.
*/
const date = new Date(1970, 1, 1);
const slots = [];
@@ -66,6 +67,13 @@ export const generateTimeSlots = (step = 15) => {
);
date.setMinutes(date.getMinutes() + step);
}
+
+ // Always add 11:59 PM as the final slot if it's not already included
+ const lastSlot = '11:59 PM';
+ if (!slots.includes(lastSlot)) {
+ slots.push(lastSlot);
+ }
+
return slots;
};
diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/specs/businessHour.spec.js b/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/specs/businessHour.spec.js
index 077337ae6..c9cfa2d24 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/specs/businessHour.spec.js
+++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/helpers/specs/businessHour.spec.js
@@ -7,10 +7,19 @@ import {
} from '../businessHour';
describe('#generateTimeSlots', () => {
- it('returns correct number of time slots', () => {
- expect(generateTimeSlots(15).length).toStrictEqual((60 / 15) * 24);
+ it('returns correct number of time slots for 15-minute intervals', () => {
+ const slots = generateTimeSlots(15);
+ // 24 hours * 4 slots per hour + 1 for 11:59 PM = 97 slots
+ expect(slots.length).toStrictEqual(97);
});
- it('returns correct time slots', () => {
+
+ it('returns correct number of time slots for 30-minute intervals', () => {
+ const slots = generateTimeSlots(30);
+ // 24 hours * 2 slots per hour + 1 for 11:59 PM = 49 slots
+ expect(slots.length).toStrictEqual(49);
+ });
+
+ it('returns correct time slots for 4-hour intervals', () => {
expect(generateTimeSlots(240)).toStrictEqual([
'12:00 AM',
'04:00 AM',
@@ -18,8 +27,51 @@ describe('#generateTimeSlots', () => {
'12:00 PM',
'04:00 PM',
'08:00 PM',
+ '11:59 PM',
]);
});
+
+ it('always starts with 12:00 AM', () => {
+ expect(generateTimeSlots(15)[0]).toStrictEqual('12:00 AM');
+ expect(generateTimeSlots(30)[0]).toStrictEqual('12:00 AM');
+ expect(generateTimeSlots(60)[0]).toStrictEqual('12:00 AM');
+ });
+
+ it('always ends with 11:59 PM', () => {
+ const slots15 = generateTimeSlots(15);
+ const slots30 = generateTimeSlots(30);
+ const slots60 = generateTimeSlots(60);
+
+ expect(slots15[slots15.length - 1]).toStrictEqual('11:59 PM');
+ expect(slots30[slots30.length - 1]).toStrictEqual('11:59 PM');
+ expect(slots60[slots60.length - 1]).toStrictEqual('11:59 PM');
+ });
+
+ it('includes 11:59 PM even when it would not be in regular intervals', () => {
+ const slots = generateTimeSlots(30);
+ expect(slots).toContain('11:59 PM');
+ expect(slots).toContain('11:30 PM'); // Regular interval
+ });
+
+ it('does not duplicate 11:59 PM if it already exists in regular intervals', () => {
+ // Test with a step that would naturally include 11:59 PM
+ const slots = generateTimeSlots(1); // 1-minute intervals
+ const count11_59 = slots.filter(slot => slot === '11:59 PM').length;
+ expect(count11_59).toStrictEqual(1);
+ });
+
+ it('generates correct time format', () => {
+ const slots = generateTimeSlots(60);
+ expect(slots).toContain('01:00 AM');
+ expect(slots).toContain('12:00 PM');
+ expect(slots).toContain('01:00 PM');
+ expect(slots).toContain('11:00 PM');
+ });
+
+ it('handles edge case with very large step', () => {
+ const slots = generateTimeSlots(1440); // 24 hours
+ expect(slots).toStrictEqual(['12:00 AM', '11:59 PM']);
+ });
});
describe('#getTime', () => {
diff --git a/app/javascript/dashboard/store/modules/conversationStats.js b/app/javascript/dashboard/store/modules/conversationStats.js
index 917781bbf..353c1e59a 100644
--- a/app/javascript/dashboard/store/modules/conversationStats.js
+++ b/app/javascript/dashboard/store/modules/conversationStats.js
@@ -25,8 +25,8 @@ const fetchMetaData = async (commit, params) => {
}
};
-const debouncedFetchMetaData = debounce(fetchMetaData, 500, false, 1000);
-const longDebouncedFetchMetaData = debounce(fetchMetaData, 500, false, 5000);
+const debouncedFetchMetaData = debounce(fetchMetaData, 500, false, 1500);
+const longDebouncedFetchMetaData = debounce(fetchMetaData, 1000, false, 8000);
const superLongDebouncedFetchMetaData = debounce(
fetchMetaData,
1500,
@@ -36,7 +36,7 @@ const superLongDebouncedFetchMetaData = debounce(
export const actions = {
get: async ({ commit, state: $state }, params) => {
- if ($state.allCount > 10000) {
+ if ($state.allCount > 5000) {
superLongDebouncedFetchMetaData(commit, params);
} else if ($state.allCount > 100) {
longDebouncedFetchMetaData(commit, params);
diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js b/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
index 3d627e3ef..96f4a0123 100644
--- a/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
+++ b/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
@@ -154,7 +154,10 @@ const equalTo = (filterValue, conversationValue) => {
* It only works with string values and returns false for non-string types.
*/
const contains = (filterValue, conversationValue) => {
- if (typeof conversationValue === 'string') {
+ if (
+ typeof conversationValue === 'string' &&
+ typeof filterValue === 'string'
+ ) {
return conversationValue.toLowerCase().includes(filterValue.toLowerCase());
}
return false;
@@ -190,10 +193,8 @@ const compareDates = (conversationValue, filterValue, compareFn) => {
const matchesCondition = (conversationValue, filter) => {
const { filter_operator: filterOperator, values } = filter;
- // Handle null/undefined values
- if (conversationValue === null || conversationValue === undefined) {
- return filterOperator === 'is_not_present';
- }
+ const isNullish =
+ conversationValue === null || conversationValue === undefined;
const filterValue = Array.isArray(values)
? values.map(resolveValue)
@@ -213,10 +214,10 @@ const matchesCondition = (conversationValue, filter) => {
return !contains(filterValue, conversationValue);
case 'is_present':
- return true; // We already handled null/undefined above
+ return !isNullish;
case 'is_not_present':
- return false; // We already handled null/undefined above
+ return isNullish;
case 'is_greater_than':
return compareDates(conversationValue, filterValue, (a, b) => a > b);
@@ -225,6 +226,10 @@ const matchesCondition = (conversationValue, filter) => {
return compareDates(conversationValue, filterValue, (a, b) => a < b);
case 'days_before': {
+ if (isNullish) {
+ return false;
+ }
+
const today = new Date();
const daysInMilliseconds = filterValue * 24 * 60 * 60 * 1000;
const targetDate = new Date(today.getTime() - daysInMilliseconds);
diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js b/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
index 096481c69..db1017407 100644
--- a/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
+++ b/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
@@ -192,6 +192,32 @@ describe('filterHelpers', () => {
expect(matchesFilters(conversation, filters)).toBe(true);
});
+ it('should not match conversation with equal_to operator when assignee is null', () => {
+ const conversation = { meta: { assignee: null } };
+ const filters = [
+ {
+ attribute_key: 'assignee_id',
+ filter_operator: 'equal_to',
+ values: { id: 1, name: 'John Doe' },
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ it('should match conversation with not_equal_to operator when assignee is null', () => {
+ const conversation = { meta: { assignee: null } };
+ const filters = [
+ {
+ attribute_key: 'assignee_id',
+ filter_operator: 'not_equal_to',
+ values: { id: 1, name: 'John Doe' },
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
it('should match conversation with is_not_present operator for assignee_id', () => {
const conversation = { meta: { assignee: null } };
const filters = [
@@ -285,6 +311,58 @@ describe('filterHelpers', () => {
expect(matchesFilters(conversation, filters)).toBe(false);
});
+ it('should not match contains operator when display_id is null', () => {
+ const conversation = { id: null };
+ const filters = [
+ {
+ attribute_key: 'display_id',
+ filter_operator: 'contains',
+ values: '234',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ it('should not match contains operator when filter value is null', () => {
+ const conversation = { id: '12345' };
+ const filters = [
+ {
+ attribute_key: 'display_id',
+ filter_operator: 'contains',
+ values: null,
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ it('should match does_not_contain operator when display_id is null', () => {
+ const conversation = { id: null };
+ const filters = [
+ {
+ attribute_key: 'display_id',
+ filter_operator: 'does_not_contain',
+ values: '234',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ it('should match does_not_contain operator when filter value is null', () => {
+ const conversation = { id: '12345' };
+ const filters = [
+ {
+ attribute_key: 'display_id',
+ filter_operator: 'does_not_contain',
+ values: null,
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
it('should match conversation with does_not_contain operator when value is not present', () => {
const conversation = { id: '12345' };
const filters = [
diff --git a/app/javascript/v3/views/login/Index.vue b/app/javascript/v3/views/login/Index.vue
index 028af4f72..04fb939c8 100644
--- a/app/javascript/v3/views/login/Index.vue
+++ b/app/javascript/v3/views/login/Index.vue
@@ -22,6 +22,8 @@ import MfaVerification from 'dashboard/components/auth/MfaVerification.vue';
const ERROR_MESSAGES = {
'no-account-found': 'LOGIN.OAUTH.NO_ACCOUNT_FOUND',
'business-account-only': 'LOGIN.OAUTH.BUSINESS_ACCOUNTS_ONLY',
+ 'saml-authentication-failed': 'LOGIN.SAML.API.ERROR_MESSAGE',
+ 'saml-not-enabled': 'LOGIN.SAML.API.ERROR_MESSAGE',
};
const IMPERSONATION_URL_SEARCH_KEY = 'impersonation';
diff --git a/app/javascript/v3/views/login/Saml.vue b/app/javascript/v3/views/login/Saml.vue
index bbb61914d..95749d7e2 100644
--- a/app/javascript/v3/views/login/Saml.vue
+++ b/app/javascript/v3/views/login/Saml.vue
@@ -15,6 +15,10 @@ const props = defineProps({
type: String,
default: '',
},
+ target: {
+ type: String,
+ default: 'web',
+ },
});
const store = useStore();
@@ -107,6 +111,7 @@ onMounted(async () => {
name="authenticity_token"
:value="csrfToken"
/>
+
({
authError: route.query.error,
+ target: route.query.target,
}),
},
{
diff --git a/app/models/concerns/activity_message_handler.rb b/app/models/concerns/activity_message_handler.rb
index 54e58b4d9..c25aba47f 100644
--- a/app/models/concerns/activity_message_handler.rb
+++ b/app/models/concerns/activity_message_handler.rb
@@ -106,7 +106,7 @@ module ActivityMessageHandler
end
def generate_assignee_change_activity_content(user_name)
- params = { assignee_name: assignee&.name, user_name: user_name }.compact
+ params = { assignee_name: assignee&.name || '', user_name: user_name }
key = assignee_id ? 'assigned' : 'removed'
key = 'self_assigned' if self_assign? assignee_id
I18n.t("conversations.activity.assignee.#{key}", **params)
diff --git a/app/models/contact.rb b/app/models/contact.rb
index a3570b2af..0dc92b51e 100644
--- a/app/models/contact.rb
+++ b/app/models/contact.rb
@@ -21,6 +21,7 @@
# created_at :datetime not null
# updated_at :datetime not null
# account_id :integer not null
+# company_id :bigint
#
# Indexes
#
@@ -28,6 +29,7 @@
# index_contacts_on_account_id_and_contact_type (account_id,contact_type)
# index_contacts_on_account_id_and_last_activity_at (account_id,last_activity_at DESC NULLS LAST)
# index_contacts_on_blocked (blocked)
+# index_contacts_on_company_id (company_id)
# index_contacts_on_lower_email_account_id (lower((email)::text), account_id)
# index_contacts_on_name_email_phone_number_identifier (name,email,phone_number,identifier) USING gin
# index_contacts_on_nonempty_fields (account_id,email,phone_number,identifier) WHERE (((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))
@@ -244,3 +246,4 @@ class Contact < ApplicationRecord
Rails.configuration.dispatcher.dispatch(CONTACT_DELETED, Time.zone.now, contact: self)
end
end
+Contact.include_mod_with('Concerns::Contact')
diff --git a/app/models/message.rb b/app/models/message.rb
index dbab19df3..2079e31a9 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -39,7 +39,7 @@
#
class Message < ApplicationRecord
- searchkick callbacks: :async if ChatwootApp.advanced_search_allowed?
+ searchkick callbacks: false if ChatwootApp.advanced_search_allowed?
include MessageFilterHelpers
include Liquidable
@@ -135,6 +135,7 @@ class Message < ApplicationRecord
after_create_commit :execute_after_create_commit_callbacks
after_update_commit :dispatch_update_event
+ after_commit :reindex_for_search, if: :should_index?, on: [:create, :update]
def channel_token
@token ||= inbox.channel.try(:page_access_token)
@@ -436,6 +437,10 @@ class Message < ApplicationRecord
conversation.update_columns(last_activity_at: created_at)
# rubocop:enable Rails/SkipsModelValidations
end
+
+ def reindex_for_search
+ reindex(mode: :async)
+ end
end
Message.prepend_mod_with('Message')
diff --git a/app/models/super_admin.rb b/app/models/super_admin.rb
index 316d60c7b..9bcee9b8a 100644
--- a/app/models/super_admin.rb
+++ b/app/models/super_admin.rb
@@ -19,7 +19,7 @@
# message_signature :text
# name :string not null
# otp_backup_codes :text
-# otp_required_for_login :boolean default(FALSE), not null
+# otp_required_for_login :boolean default(FALSE)
# otp_secret :string
# provider :string default("email"), not null
# pubsub_token :string
diff --git a/app/models/user.rb b/app/models/user.rb
index 4923d0a35..cc25357f6 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -19,7 +19,7 @@
# message_signature :text
# name :string not null
# otp_backup_codes :text
-# otp_required_for_login :boolean default(FALSE), not null
+# otp_required_for_login :boolean default(FALSE)
# otp_secret :string
# provider :string default("email"), not null
# pubsub_token :string
diff --git a/app/services/whatsapp/populate_template_parameters_service.rb b/app/services/whatsapp/populate_template_parameters_service.rb
index 3f9f64b91..6ea3e6e05 100644
--- a/app/services/whatsapp/populate_template_parameters_service.rb
+++ b/app/services/whatsapp/populate_template_parameters_service.rb
@@ -34,8 +34,9 @@ class Whatsapp::PopulateTemplateParametersService
return nil if url.blank?
sanitized_url = sanitize_parameter(url)
- validate_url(sanitized_url)
- build_media_type_parameter(sanitized_url, media_type.downcase, media_name)
+ normalized_url = normalize_url(sanitized_url)
+ validate_url(normalized_url)
+ build_media_type_parameter(normalized_url, media_type.downcase, media_name)
end
def build_named_parameter(parameter_name, value)
@@ -138,9 +139,20 @@ class Whatsapp::PopulateTemplateParametersService
sanitized[0...1000] # Limit length to prevent DoS
end
+ def normalize_url(url)
+ # Use Addressable::URI for better URL normalization
+ # It handles spaces, special characters, and encoding automatically
+ Addressable::URI.parse(url).normalize.to_s
+ rescue Addressable::URI::InvalidURIError
+ # Fallback: simple space encoding if Addressable fails
+ url.gsub(' ', '%20')
+ end
+
def validate_url(url)
return if url.blank?
+ # url is already normalized by the caller
+
uri = URI.parse(url)
raise ArgumentError, "Invalid URL scheme: #{uri.scheme}. Only http and https are allowed" unless %w[http https].include?(uri.scheme)
raise ArgumentError, 'URL too long (max 2000 characters)' if url.length > 2000
diff --git a/config/locales/am.yml b/config/locales/am.yml
index c91f19922..28b6f375a 100644
--- a/config/locales/am.yml
+++ b/config/locales/am.yml
@@ -86,7 +86,7 @@ am:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ am:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 777216dd5..369e73507 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -86,7 +86,7 @@ ar:
validations:
name: لا ينبغي أن تبدأ أو تنتهي بالرموز، ولا ينبغي أن يكون أقل من > / \ أحرف @ .
custom_filters:
- number_of_records: تم الوصول إلى الحد الأقصى. الحد الأقصى لعدد عوامل التصفية المخصصة المسموح به للمستخدم لكل حساب هو 50.
+ number_of_records: تم الوصول إلى الحد الأقصى. الحد الأقصى لعدد عوامل التصفية المخصصة المسموح به للمستخدم لكل حساب هو 1000.
invalid_attribute: مفتاح السمة غير صالح - [%{key}]. يجب أن يكون المفتاح واحد من [%{allowed_keys}] أو سمة مخصصة محددة في الحساب.
invalid_operator: مشغل غير صالح. المشغل المسموح به لـ %{attribute_name} هو [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ar:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: البحث عن مقالة حسب العنوان أو الجسم...
diff --git a/config/locales/az.yml b/config/locales/az.yml
index 582e5d233..3b04a2a82 100644
--- a/config/locales/az.yml
+++ b/config/locales/az.yml
@@ -86,7 +86,7 @@ az:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ az:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index be1ebaf87..0b65acf7e 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -86,7 +86,7 @@ bg:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ bg:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index e678aa96d..62537fbb2 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -86,7 +86,7 @@ ca:
validations:
name: no hauria de començar ni acabar amb símbols, i no hauria de tenir caràcters < > / \ @.
custom_filters:
- number_of_records: S'ha arribat al límit. El nombre màxim de filtres personalitzats permesos per a un usuari per compte és de 50.
+ number_of_records: S'ha arribat al límit. El nombre màxim de filtres personalitzats permesos per a un usuari per compte és de 1000.
invalid_attribute: 'Clau d''atribut no vàlida: [%{key}]. La clau hauria de ser una de [%{allowed_keys}] o un atribut personalitzat definit al compte.'
invalid_operator: Operador no vàlid. Els operadors permesos per a %{attribute_name} son [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ca:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Cerca l'article per títol o cos...
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 270a955c6..39d56b284 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -86,7 +86,7 @@ cs:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ cs:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/da.yml b/config/locales/da.yml
index d449604c7..b15244766 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -86,7 +86,7 @@ da:
validations:
name: bør ikke starte eller slutte med symboler, og det skal ikke have < > / \ @ tegn.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ da:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/de.yml b/config/locales/de.yml
index d9d6fb23d..44863a78f 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -86,7 +86,7 @@ de:
validations:
name: Sollte nicht mit Symbolen beginnen oder enden, und es sollte keine < > / \ @ Zeichen enthalten.
custom_filters:
- number_of_records: Limit erreicht. Die maximale Anzahl an benutzerdefinierten Filtern pro Benutzerkonto beträgt 50.
+ number_of_records: Limit erreicht. Die maximale Anzahl an benutzerdefinierten Filtern pro Benutzerkonto beträgt 1000.
invalid_attribute: Ungültiger Attribut schlüssel - [%{key}]. Der Schlüssel sollte einer von [%{allowed_keys}] oder ein benutzerdefiniertes Attribut sein, das im Konto definiert ist.
invalid_operator: Ungültiger Operator. Die erlaubten Operatoren für %{attribute_name} sind [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ de:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Artikel nach Titel oder Text suchen...
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 034462107..c9578bbbf 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -86,7 +86,7 @@ el:
validations:
name: δεν πρέπει να ξεκινά ή να τελειώνει με σύμβολα, και δεν πρέπει να περιέχει τους χαρακτήρες < > / \ @
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ el:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Αναζήτηση άρθρου με τίτλο ή περιεχόμενο...
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 0c76f8beb..6afab9253 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -76,6 +76,9 @@ en:
invalid: Invalid email
phone_number:
invalid: should be in e164 format
+ companies:
+ domain:
+ invalid: must be a valid domain name
categories:
locale:
unique: should be unique in the category and portal
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 6f81f1d67..6e679273d 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -86,7 +86,7 @@ es:
validations:
name: no debe comenzar ni terminar con símbolos, y no debe tener caracteres < > / \ @.
custom_filters:
- number_of_records: Límite alcanzado. El número máximo de filtros personalizados permitidos para un usuario por cuenta es de 50.
+ number_of_records: Límite alcanzado. El número máximo de filtros personalizados permitidos para un usuario por cuenta es de 1000.
invalid_attribute: Clave de atributo no válida - [%{key}]. La clave debe ser una de [%{allowed_keys}] o un atributo personalizado definido en la cuenta.
invalid_operator: Operador no válido. Los operadores permitidos para %{attribute_name} son [%{allowed_keys}].
invalid_query_operator: El operador de consulta debe ser "Y" o "O".
@@ -322,6 +322,8 @@ es:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Buscar artículo por título o cuerpo...
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 232396757..bbe2fc8cf 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -86,7 +86,7 @@ fa:
validations:
name: نباید با نمادها شروع یا ختم شود و نباید دارای کاراکترهای < > / \ @ باشد.
custom_filters:
- number_of_records: سررسید محدودیت. حداکثر تعداد قابل قبول فیلترها برای یک کاربر در هر اکانت 50 می باشند.
+ number_of_records: سررسید محدودیت. حداکثر تعداد قابل قبول فیلترها برای یک کاربر در هر اکانت 1000 می باشند.
invalid_attribute: کلید ویژگی معتبر نیست (%{key}). کلید باید یکی از %{allowed_keys} باشد یا یک ویژگی سفارشی ایجاد شده در حساب.
invalid_operator: این عملیات مجاز نیست. عملیات های مجاز برای %{attribute_name} شامل %{allowed_keys} می باشد.
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ fa:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: جستجوی مقاله براساس عنوان یا متن...
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 6e7db9ad7..09d6451d3 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -86,7 +86,7 @@ fi:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ fi:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index edab001cb..284a87ac0 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -86,7 +86,7 @@ fr:
validations:
name: 'ne doit pas commencer ou se terminer par des symboles, et ne doit pas comporter les caractères suivants : "< > / \ @".'
custom_filters:
- number_of_records: Limite atteinte. Le nombre maximum de filtres personnalisés autorisés pour un utilisateur par compte est de 50.
+ number_of_records: Limite atteinte. Le nombre maximum de filtres personnalisés autorisés pour un utilisateur par compte est de 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ fr:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Rechercher un article par titre ou contenu...
diff --git a/config/locales/he.yml b/config/locales/he.yml
index a2f309a3a..f006ed806 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -86,7 +86,7 @@ he:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ he:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
index 82f962f92..98bbda2ec 100644
--- a/config/locales/hi.yml
+++ b/config/locales/hi.yml
@@ -86,7 +86,7 @@ hi:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ hi:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 3828ebd40..2eb2b7756 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -86,7 +86,7 @@ hr:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ hr:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 8ded57a47..901148f83 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -86,7 +86,7 @@ hu:
validations:
name: nem kezdődhet vagy végződhet szimbólummal, és nem tartalmazhat < > / \ @ karaktereket.
custom_filters:
- number_of_records: Limit túllépve. Maximum 50 speciális szűrőt használhat egy fiók.
+ number_of_records: Limit túllépve. Maximum 1000 speciális szűrőt használhat egy fiók.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ hu:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Keress a bejegyzések címében és tartalmában...
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 3119df585..b1a0ca023 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -86,7 +86,7 @@ hy:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ hy:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/id.yml b/config/locales/id.yml
index ffe340f74..3b4527420 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -86,7 +86,7 @@ id:
validations:
name: tidak boleh dimulai atau diakhiri dengan simbol, dan tidak boleh memiliki karakter < > / \ @.
custom_filters:
- number_of_records: Batas tercapai. Jumlah maksimum filter ubahsuaian yang diizinkan untuk satu pengguna per akun adalah 50.
+ number_of_records: Batas tercapai. Jumlah maksimum filter ubahsuaian yang diizinkan untuk satu pengguna per akun adalah 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ id:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Telusuri artikel menurut judul atau isi...
diff --git a/config/locales/is.yml b/config/locales/is.yml
index c9b96fd74..24c01f849 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -86,7 +86,7 @@ is:
validations:
name: ætti ekki að byrja eða enda á táknum, og það ætti ekki að hafa < > / \ @ táknin.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ is:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 2d2720acd..806c3e0a9 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -86,7 +86,7 @@ it:
validations:
name: non dovrebbe iniziare o terminare con i simboli, e non dovrebbe avere < > / \ @ caratteri.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ it:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 5e44bda34..336f70b91 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -86,7 +86,7 @@ ja:
validations:
name: 記号で開始または終了しないでください。< > / \ @ を使用しないでください。
custom_filters:
- number_of_records: 制限に達しました。1つのアカウントにつき、ユーザーごとに許可されるカスタムフィルターの最大数は 50 です。
+ number_of_records: 制限に達しました。1つのアカウントにつき、ユーザーごとに許可されるカスタムフィルターの最大数は 1000 です。
invalid_attribute: 無効な属性キー - [%{key}]。キーは[%{allowed_keys}]のいずれかである必要があります。または、アカウント内で定義されたカスタム属性でなければなりません。
invalid_operator: 無効な演算子です。%{attribute_name} に許可されている演算子は [%{allowed_keys}] です。
invalid_query_operator: クエリ演算子は "AND" または "OR" でなければなりません。
@@ -322,6 +322,8 @@ ja:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: タイトルまたは本文で記事を検索...
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index cb3d5637b..c8f9d200d 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -86,7 +86,7 @@ ka:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ka:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 2a655fcce..042e2fae4 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -86,7 +86,7 @@ ko:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ko:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: 게시물을 제목이나 내용으로 검색하세요...
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 51018d3aa..63b508066 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -86,7 +86,7 @@ lt:
validations:
name: neturėtų prasidėti ar baigtis simboliais ir jame neturėtų būti simbolių < > / \ @.
custom_filters:
- number_of_records: Pasiekta riba. Didžiausias leistinas personalizuotų filtrų skaičius vienam vartotojui yra 50.
+ number_of_records: Pasiekta riba. Didžiausias leistinas personalizuotų filtrų skaičius vienam vartotojui yra 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ lt:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Ieškokite straipsnio pagal pavadinimą arba turinį...
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 639194239..12b1d85a7 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -86,7 +86,7 @@ lv:
validations:
name: nevajadzētu sākties vai beigties ar simboliem, un nevajadzētu saturēt <> / \ @ rakstzīmes.
custom_filters:
- number_of_records: Sasniegts limits. Maksimālais atļauto pielāgoto filtru skaits vienam lietotājam ir 50.
+ number_of_records: Sasniegts limits. Maksimālais atļauto pielāgoto filtru skaits vienam lietotājam ir 1000.
invalid_attribute: Nederīga atribūta atslēga - [%{key}]. Atslēgai ir jābūt vienai no [%{allowed_keys}] vai pielāgotam atribūtam, kas definēts kontā.
invalid_operator: Nederīgs operators. Atļautie operatori priekš %{attribute_name} ir [%{allowed_keys}].
invalid_query_operator: Vaicājuma operatoram ir jābūt "UN" vai "VAI".
@@ -322,6 +322,8 @@ lv:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Meklēt rakstu pēc nosaukuma vai pamatteksta...
diff --git a/config/locales/ml.yml b/config/locales/ml.yml
index 2f411ea56..80bd12a50 100644
--- a/config/locales/ml.yml
+++ b/config/locales/ml.yml
@@ -86,7 +86,7 @@ ml:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ml:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 7a1902b8e..5d6963421 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -86,7 +86,7 @@ ms:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ms:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ne.yml b/config/locales/ne.yml
index 2690a7d47..b4477805a 100644
--- a/config/locales/ne.yml
+++ b/config/locales/ne.yml
@@ -86,7 +86,7 @@ ne:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ne:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 641516129..1d361f807 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -86,7 +86,7 @@ nl:
validations:
name: mag niet beginnen of eindigen met symbolen, en mag geen < > / \ @ karakters hebben.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ nl:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/no.yml b/config/locales/no.yml
index c1b736fb3..ebb23976d 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -86,7 +86,7 @@
validations:
name: ikke kan starte eller slutte med symboler, og den kan ikke ha < > / \ @ tegn.
custom_filters:
- number_of_records: Grense nådd. Maksimalt antall tillatte filtre for en bruker per konto er 50.
+ number_of_records: Grense nådd. Maksimalt antall tillatte filtre for en bruker per konto er 1000.
invalid_attribute: Ugyldig attributtnøkkel - [%{key}]. Nøkkelen bør være en av [%{allowed_keys}] eller en egendefinert attributt definert på kontoen.
invalid_operator: Ugyldig operatør. De tillatte operatørene for %{attribute_name} er [%{allowed_keys}].
invalid_query_operator: Spørrings-operatør må være enten "AND" eller "OR".
@@ -322,6 +322,8 @@
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index c21d42d0f..9ade3104a 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -86,7 +86,7 @@ pl:
validations:
name: nie powinno zaczynać się ani kończyć symbolami i nie powinno zawierać znaków < > / \ @.
custom_filters:
- number_of_records: Osiągnięto limit. Maksymalna liczba dozwolonych filtrów niestandardowych dla użytkownika na konto wynosi 50.
+ number_of_records: Osiągnięto limit. Maksymalna liczba dozwolonych filtrów niestandardowych dla użytkownika na konto wynosi 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ pl:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Wyszukaj artykuł według tytułu lub treści...
diff --git a/config/locales/pt.yml b/config/locales/pt.yml
index 8b78ee036..cf5b51e07 100644
--- a/config/locales/pt.yml
+++ b/config/locales/pt.yml
@@ -86,7 +86,7 @@ pt:
validations:
name: não deve iniciar ou terminar com símbolos, nem deve ter < > / \ @ caracteres.
custom_filters:
- number_of_records: Limite atingido. O número máximo de filtros personalizados permitidos para um utilizador por conta é de 50.
+ number_of_records: Limite atingido. O número máximo de filtros personalizados permitidos para um utilizador por conta é de 1000.
invalid_attribute: Chave de atributo inválida - [%{key}]. A chave deve ser uma das [%{allowed_keys}] ou um atributo personalizado definido na conta.
invalid_operator: Operador inválido. Os operadores permitidos para %{attribute_name} são [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ pt:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Pesquisar artigo por título ou corpo...
diff --git a/config/locales/pt_BR.yml b/config/locales/pt_BR.yml
index 80c4eb574..01e532aad 100644
--- a/config/locales/pt_BR.yml
+++ b/config/locales/pt_BR.yml
@@ -86,7 +86,7 @@ pt_BR:
validations:
name: 'não deve iniciar ou terminar com símbolos e não deve ter os caracteres: < > / \ @.'
custom_filters:
- number_of_records: Limite atingido. O número máximo de filtros personalizados permitidos para um usuário por conta é de 50.
+ number_of_records: Limite atingido. O número máximo de filtros personalizados permitidos para um usuário por conta é de 1000.
invalid_attribute: Chave de atributo inválido - [%{key}]. A chave deve ser uma das [%{allowed_keys}] ou um atributo personalizado definido na conta.
invalid_operator: Operador inválido. Os operadores permitidos para %{attribute_name} são [%{allowed_keys}].
invalid_query_operator: Operador de consulta deve ser "E" ou "OU".
@@ -322,6 +322,8 @@ pt_BR:
processing_pages: 'Processando páginas %{start}-%{end} (iteração %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Erro ao processar as páginas %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Pesquisar por artigo por título ou corpo...
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index bdf8f6237..ae7ca5605 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -86,7 +86,7 @@ ro:
validations:
name: nu ar trebui să înceapă sau să se termine cu simboluri și nu ar trebui să aibă < > / \ @ caractere.
custom_filters:
- number_of_records: Limita atinsă. Numărul maxim de filtre personalizate permise pentru un utilizator per cont este de 50.
+ number_of_records: Limita atinsă. Numărul maxim de filtre personalizate permise pentru un utilizator per cont este de 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ro:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Căutați articol după titlu sau corp...
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index ee104a126..3dc011305 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -86,7 +86,7 @@ ru:
validations:
name: Не должен начинаться или заканчиваться символами, и у него Не должно быть < > / \ @ символов.
custom_filters:
- number_of_records: Достигнут лимит. Максимальное количество разрешенных пользовательских фильтров для каждого пользователя - 50.
+ number_of_records: Достигнут лимит. Максимальное количество разрешенных пользовательских фильтров для каждого пользователя - 1000.
invalid_attribute: Недопустимый ключ атрибута - [%{key}]. Ключ должен быть одним из [%{allowed_keys}] или пользовательским атрибутом, указанным в учетной записи.
invalid_operator: Неверный оператор. Допустимыми операторами для %{attribute_name} являются [%{allowed_keys}].
invalid_query_operator: Оператор запроса должен быть "AND" или "OR".
@@ -322,6 +322,8 @@ ru:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Поиск статьи по названию или содержанию...
diff --git a/config/locales/sh.yml b/config/locales/sh.yml
index e4598bccf..b52dd4af5 100644
--- a/config/locales/sh.yml
+++ b/config/locales/sh.yml
@@ -86,7 +86,7 @@ sh:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sh:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 09067eed7..9c0b5c0a3 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -86,7 +86,7 @@ sk:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sk:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 1e4c32133..76b21fb83 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -86,7 +86,7 @@ sl:
validations:
name: se ne sme začeti ali končati s simboli in ne sme vsebovati znakov < > / \ @.
custom_filters:
- number_of_records: Omejitev dosežena. Največje dovoljeno število filtrov po meri za uporabnika na račun je 50.
+ number_of_records: Omejitev dosežena. Največje dovoljeno število filtrov po meri za uporabnika na račun je 1000.
invalid_attribute: Neveljaven ključ atributa - [%{key}]. Ključ mora biti eden od [%{allowed_keys}] ali atribut po meri, določen v računu.
invalid_operator: Neveljaven operater. Dovoljeni operaterji za %{attribute_name} so [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sl:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Iskanje članka po naslovu ali telesu ...
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 8717b39fa..d87ab44e2 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -86,7 +86,7 @@ sq:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sq:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 99140fa02..a8f9b23a8 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -86,7 +86,7 @@ sr-Latn:
validations:
name: ne treba početi ili se završiti sa simbolima i ne treba da sadrži < > / \ @ karaktere.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sr-Latn:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index fc0170c3a..77a3a1e84 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -86,7 +86,7 @@ sv:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ sv:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Sök efter artikel baserat på rubrik eller brödtext...
diff --git a/config/locales/ta.yml b/config/locales/ta.yml
index 2323ab68e..2af7ba7bb 100644
--- a/config/locales/ta.yml
+++ b/config/locales/ta.yml
@@ -86,7 +86,7 @@ ta:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ta:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 137cfd4fd..287f6d4f2 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -86,7 +86,7 @@ th:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ th:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/tl.yml b/config/locales/tl.yml
index 947ca15f9..fb6de4e8c 100644
--- a/config/locales/tl.yml
+++ b/config/locales/tl.yml
@@ -86,7 +86,7 @@ tl:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ tl:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index ab3fce25d..f046ee82e 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -86,7 +86,7 @@ tr:
validations:
name: sembollerle başlamamalı veya bitmemeli, < > / \ @ karakterlerini içermemeli.
custom_filters:
- number_of_records: Limit aşıldı. Bir kullanıcının bir hesap için izin verilen özel filtre sayısı 50'dir.
+ number_of_records: Limit aşıldı. Bir kullanıcının bir hesap için izin verilen özel filtre sayısı 1000'dir.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ tr:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Başlık veya içerikle makale arayın...
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index da1f328ac..29006859a 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -86,7 +86,7 @@ uk:
validations:
name: не повинно починатись або закінчуватися символами, і він не повинен мати < > / \ @ символів.
custom_filters:
- number_of_records: Досягнуто ліміту. Максимальна кількість дозволених користувацьких фільтрів для користувача на рахунок становить 50.
+ number_of_records: Досягнуто ліміту. Максимальна кількість дозволених користувацьких фільтрів для користувача на рахунок становить 1000.
invalid_attribute: Некоректний ключ атрибута - [%{key}]. Ключ повинен бути одним з [%{allowed_keys}] або налаштованим атрибутом, визначеним в обліковому записі.
invalid_operator: Некоректний оператор. Дозволені оператори для %{attribute_name} є [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ uk:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Пошук статті за заголовком або змістом...
diff --git a/config/locales/ur.yml b/config/locales/ur.yml
index 5fd822348..1f033f2a6 100644
--- a/config/locales/ur.yml
+++ b/config/locales/ur.yml
@@ -86,7 +86,7 @@ ur:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ur:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/ur_IN.yml b/config/locales/ur_IN.yml
index 3ed18d377..304c8f405 100644
--- a/config/locales/ur_IN.yml
+++ b/config/locales/ur_IN.yml
@@ -86,7 +86,7 @@ ur:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ ur:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 9f2597037..ba84f6bbd 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -86,7 +86,7 @@ vi:
validations:
name: không nên bắt đầu hoặc kết thúc bằng các ký hiệu và không nên có kí tự < > / \ @.
custom_filters:
- number_of_records: Đã đạt giới hạn. Số lượng tuỳ chọn lọc tối đa cho mỗi mỗi người dùng mỗi tài khoản là 50.
+ number_of_records: Đã đạt giới hạn. Số lượng tuỳ chọn lọc tối đa cho mỗi mỗi người dùng mỗi tài khoản là 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ vi:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Tìm bài viết theo tiêu đề hoặc nội dung...
diff --git a/config/locales/zh_CN.yml b/config/locales/zh_CN.yml
index 4702af460..234c3758d 100644
--- a/config/locales/zh_CN.yml
+++ b/config/locales/zh_CN.yml
@@ -86,7 +86,7 @@ zh_CN:
validations:
name: 不应该以符号开头或结尾,它不应该有 < > / \ @ 字符。
custom_filters:
- number_of_records: 已达到上限。每个账户允许用户自定义过滤器的最大数目为50个。
+ number_of_records: 已达到上限。每个账户允许用户自定义过滤器的最大数目为1000个。
invalid_attribute: 无效的属性键 - [%{key}]。键应为 [%{allowed_keys}] 之一或帐户中定义的自定义属性。
invalid_operator: 无效的操作符。%{attribute_name} 允许的操作符为 [%{allowed_keys}]。
invalid_query_operator: 查询操作符必须为 "AND" 或 "OR"。
@@ -322,6 +322,8 @@ zh_CN:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: 搜索文章的标题或正文...
diff --git a/config/locales/zh_TW.yml b/config/locales/zh_TW.yml
index ad47d8333..572271664 100644
--- a/config/locales/zh_TW.yml
+++ b/config/locales/zh_TW.yml
@@ -86,7 +86,7 @@ zh_TW:
validations:
name: should not start or end with symbols, and it should not have < > / \ @ characters.
custom_filters:
- number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 50.
+ number_of_records: Limit reached. The maximum number of allowed custom filters for a user per account is 1000.
invalid_attribute: Invalid attribute key - [%{key}]. The key should be one of [%{allowed_keys}] or a custom attribute defined in the account.
invalid_operator: Invalid operator. The allowed operators for %{attribute_name} are [%{allowed_keys}].
invalid_query_operator: Query operator must be either "AND" or "OR".
@@ -322,6 +322,8 @@ zh_TW:
processing_pages: 'Processing pages %{start}-%{end} (iteration %{iteration})'
chunk_generated: 'Chunk generated %{chunk_faqs} FAQs. Total so far: %{total_faqs}'
page_processing_error: 'Error processing pages %{start}-%{end}: %{error}'
+ custom_tool:
+ slug_generation_failed: 'Unable to generate unique slug after 5 attempts'
public_portal:
search:
search_placeholder: Search for article by title or body...
diff --git a/config/routes.rb b/config/routes.rb
index 4eae70fdc..6712ce6e3 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -153,6 +153,7 @@ Rails.application.routes.draw do
end
end
+ resources :companies, only: [:index, :show, :create, :update, :destroy]
resources :contacts, only: [:index, :show, :update, :create, :destroy] do
collection do
get :active
diff --git a/db/migrate/20250929105219_create_companies.rb b/db/migrate/20250929105219_create_companies.rb
new file mode 100644
index 000000000..10fa415c1
--- /dev/null
+++ b/db/migrate/20250929105219_create_companies.rb
@@ -0,0 +1,14 @@
+class CreateCompanies < ActiveRecord::Migration[7.1]
+ def change
+ create_table :companies do |t|
+ t.string :name, null: false
+ t.string :domain
+ t.text :description
+ t.references :account, null: false
+
+ t.timestamps
+ end
+ add_index :companies, [:name, :account_id]
+ add_index :companies, [:domain, :account_id]
+ end
+end
diff --git a/db/migrate/20250929132305_add_company_to_contacts.rb b/db/migrate/20250929132305_add_company_to_contacts.rb
new file mode 100644
index 000000000..e79de34b8
--- /dev/null
+++ b/db/migrate/20250929132305_add_company_to_contacts.rb
@@ -0,0 +1,5 @@
+class AddCompanyToContacts < ActiveRecord::Migration[7.1]
+ def change
+ add_reference :contacts, :company, null: true
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 8106241ee..c432a4f8e 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -570,6 +570,18 @@ ActiveRecord::Schema[7.1].define(version: 2025_10_07_111938) do
t.index ["phone_number"], name: "index_channel_whatsapp_on_phone_number", unique: true
end
+ create_table "companies", force: :cascade do |t|
+ t.string "name", null: false
+ t.string "domain"
+ t.text "description"
+ t.bigint "account_id", null: false
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ t.index ["account_id"], name: "index_companies_on_account_id"
+ t.index ["domain", "account_id"], name: "index_companies_on_domain_and_account_id"
+ t.index ["name", "account_id"], name: "index_companies_on_name_and_account_id"
+ end
+
create_table "contact_inboxes", force: :cascade do |t|
t.bigint "contact_id"
t.bigint "inbox_id"
@@ -602,6 +614,7 @@ ActiveRecord::Schema[7.1].define(version: 2025_10_07_111938) do
t.string "location", default: ""
t.string "country_code", default: ""
t.boolean "blocked", default: false, null: false
+ t.bigint "company_id"
t.index "lower((email)::text), account_id", name: "index_contacts_on_lower_email_account_id"
t.index ["account_id", "contact_type"], name: "index_contacts_on_account_id_and_contact_type"
t.index ["account_id", "email", "phone_number", "identifier"], name: "index_contacts_on_nonempty_fields", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))"
@@ -609,6 +622,7 @@ ActiveRecord::Schema[7.1].define(version: 2025_10_07_111938) do
t.index ["account_id"], name: "index_contacts_on_account_id"
t.index ["account_id"], name: "index_resolved_contact_account_id", where: "(((email)::text <> ''::text) OR ((phone_number)::text <> ''::text) OR ((identifier)::text <> ''::text))"
t.index ["blocked"], name: "index_contacts_on_blocked"
+ t.index ["company_id"], name: "index_contacts_on_company_id"
t.index ["email", "account_id"], name: "uniq_email_per_account_contact", unique: true
t.index ["identifier", "account_id"], name: "uniq_identifier_per_account_contact", unique: true
t.index ["name", "email", "phone_number", "identifier"], name: "index_contacts_on_name_email_phone_number_identifier", opclass: :gin_trgm_ops, using: :gin
diff --git a/enterprise/app/controllers/api/v1/accounts/companies_controller.rb b/enterprise/app/controllers/api/v1/accounts/companies_controller.rb
new file mode 100644
index 000000000..a33e4c6b2
--- /dev/null
+++ b/enterprise/app/controllers/api/v1/accounts/companies_controller.rb
@@ -0,0 +1,40 @@
+class Api::V1::Accounts::CompaniesController < Api::V1::Accounts::EnterpriseAccountsController
+ before_action :check_authorization
+ before_action :fetch_company, only: [:show, :update, :destroy]
+
+ def index
+ @companies = Current.account.companies.ordered_by_name
+ end
+
+ def show; end
+
+ def create
+ @company = Current.account.companies.build(company_params)
+ @company.save!
+ end
+
+ def update
+ @company.update!(company_params)
+ end
+
+ def destroy
+ @company.destroy!
+ head :ok
+ end
+
+ private
+
+ def check_authorization
+ raise Pundit::NotAuthorizedError unless ChatwootApp.enterprise?
+
+ authorize(Company)
+ end
+
+ def fetch_company
+ @company = Current.account.companies.find(params[:id])
+ end
+
+ def company_params
+ params.require(:company).permit(:name, :domain, :description, :avatar)
+ end
+end
diff --git a/enterprise/app/controllers/api/v1/auth_controller.rb b/enterprise/app/controllers/api/v1/auth_controller.rb
index 091d4f8f8..b0d8e1366 100644
--- a/enterprise/app/controllers/api/v1/auth_controller.rb
+++ b/enterprise/app/controllers/api/v1/auth_controller.rb
@@ -5,7 +5,9 @@ class Api::V1::AuthController < Api::BaseController
def saml_login
return if @account.nil?
- saml_initiation_url = "/auth/saml?account_id=#{@account.id}"
+ relay_state = params[:target] || 'web'
+
+ saml_initiation_url = "/auth/saml?account_id=#{@account.id}&RelayState=#{relay_state}"
redirect_to saml_initiation_url, status: :temporary_redirect
end
@@ -44,7 +46,18 @@ class Api::V1::AuthController < Api::BaseController
end
def render_saml_error
- redirect_to sso_login_page_url(error: 'saml-authentication-failed')
+ error = 'saml-authentication-failed'
+
+ if mobile_target?
+ mobile_deep_link_base = GlobalConfigService.load('MOBILE_DEEP_LINK_BASE', 'chatwootapp')
+ redirect_to "#{mobile_deep_link_base}://auth/saml?error=#{ERB::Util.url_encode(error)}", allow_other_host: true
+ else
+ redirect_to sso_login_page_url(error: error)
+ end
+ end
+
+ def mobile_target?
+ params[:target]&.casecmp('mobile')&.zero?
end
def sso_login_page_url(error: nil)
diff --git a/enterprise/app/controllers/enterprise/devise_overrides/omniauth_callbacks_controller.rb b/enterprise/app/controllers/enterprise/devise_overrides/omniauth_callbacks_controller.rb
index 973f26650..4856ca443 100644
--- a/enterprise/app/controllers/enterprise/devise_overrides/omniauth_callbacks_controller.rb
+++ b/enterprise/app/controllers/enterprise/devise_overrides/omniauth_callbacks_controller.rb
@@ -32,17 +32,40 @@ module Enterprise::DeviseOverrides::OmniauthCallbacksController
end
end
+ def omniauth_failure
+ return super unless params[:provider] == 'saml'
+
+ relay_state = saml_relay_state
+ error = params[:message] || 'authentication-failed'
+
+ if for_mobile?(relay_state)
+ redirect_to_mobile_error(error, relay_state)
+ else
+ redirect_to login_page_url(error: "saml-#{error}")
+ end
+ end
+
private
def handle_saml_auth
account_id = extract_saml_account_id
- return redirect_to login_page_url(error: 'saml-not-enabled') unless saml_enabled_for_account?(account_id)
+ relay_state = saml_relay_state
+
+ unless saml_enabled_for_account?(account_id)
+ return redirect_to_mobile_error('saml-not-enabled') if for_mobile?(relay_state)
+
+ return redirect_to login_page_url(error: 'saml-not-enabled')
+ end
@resource = SamlUserBuilder.new(auth_hash, account_id).perform
if @resource.persisted?
+ return sign_in_user_on_mobile if for_mobile?(relay_state)
+
sign_in_user
else
+ return redirect_to_mobile_error('saml-authentication-failed') if for_mobile?(relay_state)
+
redirect_to login_page_url(error: 'saml-authentication-failed')
end
end
@@ -51,6 +74,19 @@ module Enterprise::DeviseOverrides::OmniauthCallbacksController
params[:account_id] || session[:saml_account_id] || request.env['omniauth.params']&.dig('account_id')
end
+ def saml_relay_state
+ session[:saml_relay_state] || request.env['omniauth.params']&.dig('RelayState')
+ end
+
+ def for_mobile?(relay_state)
+ relay_state.to_s.casecmp('mobile').zero?
+ end
+
+ def redirect_to_mobile_error(error)
+ mobile_deep_link_base = GlobalConfigService.load('MOBILE_DEEP_LINK_BASE', 'chatwootapp')
+ redirect_to "#{mobile_deep_link_base}://auth/saml?error=#{ERB::Util.url_encode(error)}", allow_other_host: true
+ end
+
def saml_enabled_for_account?(account_id)
return false if account_id.blank?
diff --git a/enterprise/app/models/company.rb b/enterprise/app/models/company.rb
new file mode 100644
index 000000000..764cb2a9c
--- /dev/null
+++ b/enterprise/app/models/company.rb
@@ -0,0 +1,33 @@
+# == Schema Information
+#
+# Table name: companies
+#
+# id :bigint not null, primary key
+# description :text
+# domain :string
+# name :string not null
+# created_at :datetime not null
+# updated_at :datetime not null
+# account_id :bigint not null
+#
+# Indexes
+#
+# index_companies_on_account_id (account_id)
+# index_companies_on_domain_and_account_id (domain,account_id)
+# index_companies_on_name_and_account_id (name,account_id)
+#
+class Company < ApplicationRecord
+ include Avatarable
+ validates :account_id, presence: true
+ validates :name, presence: true, length: { maximum: Limits::COMPANY_NAME_LENGTH_LIMIT }
+ validates :domain, allow_blank: true, format: {
+ with: /\A[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)+\z/,
+ message: I18n.t('errors.companies.domain.invalid')
+ }
+ validates :description, length: { maximum: Limits::COMPANY_DESCRIPTION_LENGTH_LIMIT }
+
+ belongs_to :account
+ has_many :contacts, dependent: :nullify
+
+ scope :ordered_by_name, -> { order(:name) }
+end
diff --git a/enterprise/app/models/enterprise/concerns/account.rb b/enterprise/app/models/enterprise/concerns/account.rb
index b82d84b0a..cae32e86c 100644
--- a/enterprise/app/models/enterprise/concerns/account.rb
+++ b/enterprise/app/models/enterprise/concerns/account.rb
@@ -13,6 +13,7 @@ module Enterprise::Concerns::Account
has_many :captain_custom_tools, dependent: :destroy_async, class_name: 'Captain::CustomTool'
has_many :copilot_threads, dependent: :destroy_async
+ has_many :companies, dependent: :destroy_async
has_many :voice_channels, dependent: :destroy_async, class_name: '::Channel::Voice'
has_one :saml_settings, dependent: :destroy_async, class_name: 'AccountSamlSettings'
diff --git a/enterprise/app/models/enterprise/concerns/contact.rb b/enterprise/app/models/enterprise/concerns/contact.rb
new file mode 100644
index 000000000..9139fc67e
--- /dev/null
+++ b/enterprise/app/models/enterprise/concerns/contact.rb
@@ -0,0 +1,6 @@
+module Enterprise::Concerns::Contact
+ extend ActiveSupport::Concern
+ included do
+ belongs_to :company, optional: true
+ end
+end
diff --git a/enterprise/app/policies/company_policy.rb b/enterprise/app/policies/company_policy.rb
new file mode 100644
index 000000000..1c252967c
--- /dev/null
+++ b/enterprise/app/policies/company_policy.rb
@@ -0,0 +1,21 @@
+class CompanyPolicy < ApplicationPolicy
+ def index?
+ true
+ end
+
+ def show?
+ true
+ end
+
+ def create?
+ true
+ end
+
+ def update?
+ true
+ end
+
+ def destroy?
+ @account_user.administrator?
+ end
+end
diff --git a/enterprise/app/views/api/v1/accounts/companies/_company.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/_company.json.jbuilder
new file mode 100644
index 000000000..71c4d3b9b
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/_company.json.jbuilder
@@ -0,0 +1,7 @@
+json.id company.id
+json.name company.name
+json.domain company.domain
+json.description company.description
+json.avatar_url company.avatar_url
+json.created_at company.created_at
+json.updated_at company.updated_at
diff --git a/enterprise/app/views/api/v1/accounts/companies/create.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/create.json.jbuilder
new file mode 100644
index 000000000..b3bc80cfd
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/create.json.jbuilder
@@ -0,0 +1,3 @@
+json.payload do
+ json.partial! 'company', company: @company
+end
diff --git a/enterprise/app/views/api/v1/accounts/companies/index.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/index.json.jbuilder
new file mode 100644
index 000000000..e68bd8543
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/index.json.jbuilder
@@ -0,0 +1,5 @@
+json.payload do
+ json.array! @companies do |company|
+ json.partial! 'company', company: company
+ end
+end
diff --git a/enterprise/app/views/api/v1/accounts/companies/show.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/show.json.jbuilder
new file mode 100644
index 000000000..b3bc80cfd
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/show.json.jbuilder
@@ -0,0 +1,3 @@
+json.payload do
+ json.partial! 'company', company: @company
+end
diff --git a/enterprise/app/views/api/v1/accounts/companies/update.json.jbuilder b/enterprise/app/views/api/v1/accounts/companies/update.json.jbuilder
new file mode 100644
index 000000000..b3bc80cfd
--- /dev/null
+++ b/enterprise/app/views/api/v1/accounts/companies/update.json.jbuilder
@@ -0,0 +1,3 @@
+json.payload do
+ json.partial! 'company', company: @company
+end
diff --git a/enterprise/config/initializers/omniauth_saml.rb b/enterprise/config/initializers/omniauth_saml.rb
index f73e3a109..f39e9d511 100644
--- a/enterprise/config/initializers/omniauth_saml.rb
+++ b/enterprise/config/initializers/omniauth_saml.rb
@@ -9,18 +9,22 @@ SAML_SETUP_PROC = proc do |env|
account_id = request.params['account_id'] ||
request.session[:saml_account_id] ||
env['omniauth.params']&.dig('account_id')
+ relay_state = request.params['RelayState'] || ''
if account_id
# Store in session and omniauth params for callback
request.session[:saml_account_id] = account_id
+ request.session[:saml_relay_state] = relay_state
env['omniauth.params'] ||= {}
env['omniauth.params']['account_id'] = account_id
+ env['omniauth.params']['RelayState'] = relay_state
# Find SAML settings for this account
settings = AccountSamlSettings.find_by(account_id: account_id)
if settings
# Configure the strategy options dynamically
+ env['omniauth.strategy'].options[:idp_sso_service_url_runtime_params] = { RelayState: :RelayState }
env['omniauth.strategy'].options[:assertion_consumer_service_url] = "#{ENV.fetch('FRONTEND_URL', 'http://localhost:3000')}/omniauth/saml/callback?account_id=#{account_id}"
env['omniauth.strategy'].options[:sp_entity_id] = settings.sp_entity_id
env['omniauth.strategy'].options[:idp_entity_id] = settings.idp_entity_id
diff --git a/lib/integrations/slack/slack_message_helper.rb b/lib/integrations/slack/slack_message_helper.rb
index 52ec4caad..0ee328fb3 100644
--- a/lib/integrations/slack/slack_message_helper.rb
+++ b/lib/integrations/slack/slack_message_helper.rb
@@ -70,7 +70,9 @@ module Integrations::Slack::SlackMessageHelper
case attachment[:filetype]
when 'png', 'jpeg', 'gif', 'bmp', 'tiff', 'jpg'
:image
- when 'pdf'
+ when 'mp4', 'avi', 'mov', 'wmv', 'flv', 'webm'
+ :video
+ else
:file
end
end
diff --git a/lib/limits.rb b/lib/limits.rb
index 5da178bf4..c0fc03806 100644
--- a/lib/limits.rb
+++ b/lib/limits.rb
@@ -6,6 +6,8 @@ module Limits
GREETING_MESSAGE_MAX_LENGTH = 10_000
CATEGORIES_PER_PAGE = 1000
AUTO_ASSIGNMENT_BULK_LIMIT = 100
+ COMPANY_NAME_LENGTH_LIMIT = 100
+ COMPANY_DESCRIPTION_LENGTH_LIMIT = 1000
MAX_CUSTOM_FILTERS_PER_USER = 1000
def self.conversation_message_per_minute_limit
diff --git a/spec/enterprise/controllers/api/v1/accounts/companies_controller_spec.rb b/spec/enterprise/controllers/api/v1/accounts/companies_controller_spec.rb
new file mode 100644
index 000000000..f62991ad1
--- /dev/null
+++ b/spec/enterprise/controllers/api/v1/accounts/companies_controller_spec.rb
@@ -0,0 +1,141 @@
+require 'rails_helper'
+
+RSpec.describe 'Companies API', type: :request do
+ let(:account) { create(:account) }
+
+ describe 'GET /api/v1/accounts/{account.id}/companies' do
+ context 'when it is an unauthenticated user' do
+ it 'returns unauthorized' do
+ get "/api/v1/accounts/#{account.id}/companies"
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+
+ context 'when it is an authenticated user' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+ let!(:company1) { create(:company, name: 'Company 1', account: account) }
+ let!(:company2) { create(:company, account: account) }
+
+ it 'returns all companies' do
+ get "/api/v1/accounts/#{account.id}/companies",
+ headers: admin.create_new_auth_token,
+ as: :json
+ expect(response).to have_http_status(:success)
+ response_body = response.parsed_body
+ expect(response_body['payload'].size).to eq(2)
+ expect(response_body['payload'].map { |c| c['name'] }).to contain_exactly(company1.name, company2.name)
+ end
+ end
+ end
+
+ describe 'GET /api/v1/accounts/{account.id}/companies/{id}' do
+ context 'when it is an authenticated user' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+ let(:company) { create(:company, account: account) }
+
+ it 'returns the company' do
+ get "/api/v1/accounts/#{account.id}/companies/#{company.id}",
+ headers: admin.create_new_auth_token,
+ as: :json
+ expect(response).to have_http_status(:success)
+ response_body = response.parsed_body
+ expect(response_body['payload']['name']).to eq(company.name)
+ expect(response_body['payload']['id']).to eq(company.id)
+ end
+ end
+ end
+
+ describe 'POST /api/v1/accounts/{account.id}/companies' do
+ context 'when it is an authenticated user' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+ let(:valid_params) do
+ {
+ company: {
+ name: 'New Company',
+ domain: 'newcompany.com',
+ description: 'A new company'
+ }
+ }
+ end
+
+ it 'creates a new company' do
+ expect do
+ post "/api/v1/accounts/#{account.id}/companies",
+ params: valid_params,
+ headers: admin.create_new_auth_token,
+ as: :json
+ end.to change(Company, :count).by(1)
+
+ expect(response).to have_http_status(:success)
+ response_body = response.parsed_body
+ expect(response_body['payload']['name']).to eq('New Company')
+ expect(response_body['payload']['domain']).to eq('newcompany.com')
+ end
+
+ it 'returns error for invalid params' do
+ invalid_params = { company: { name: '' } }
+
+ post "/api/v1/accounts/#{account.id}/companies",
+ params: invalid_params,
+ headers: admin.create_new_auth_token,
+ as: :json
+ expect(response).to have_http_status(:unprocessable_entity)
+ end
+ end
+ end
+
+ describe 'PATCH /api/v1/accounts/{account.id}/companies/{id}' do
+ context 'when it is an authenticated user' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+ let(:company) { create(:company, account: account) }
+ let(:update_params) do
+ {
+ company: {
+ name: 'Updated Company Name',
+ domain: 'updated.com'
+ }
+ }
+ end
+
+ it 'updates the company' do
+ patch "/api/v1/accounts/#{account.id}/companies/#{company.id}",
+ params: update_params,
+ headers: admin.create_new_auth_token,
+ as: :json
+ expect(response).to have_http_status(:success)
+ response_body = response.parsed_body
+ expect(response_body['payload']['name']).to eq('Updated Company Name')
+ expect(response_body['payload']['domain']).to eq('updated.com')
+ end
+ end
+ end
+
+ describe 'DELETE /api/v1/accounts/{account.id}/companies/{id}' do
+ context 'when it is an authenticated administrator' do
+ let(:admin) { create(:user, account: account, role: :administrator) }
+ let(:company) { create(:company, account: account) }
+
+ it 'deletes the company' do
+ company
+ expect do
+ delete "/api/v1/accounts/#{account.id}/companies/#{company.id}",
+ headers: admin.create_new_auth_token,
+ as: :json
+ end.to change(Company, :count).by(-1)
+ expect(response).to have_http_status(:ok)
+ end
+ end
+
+ context 'when it is a regular agent' do
+ let(:agent) { create(:user, account: account, role: :agent) }
+ let(:company) { create(:company, account: account) }
+
+ it 'returns unauthorized' do
+ delete "/api/v1/accounts/#{account.id}/companies/#{company.id}",
+ headers: agent.create_new_auth_token,
+ as: :json
+ expect(response).to have_http_status(:unauthorized)
+ end
+ end
+ end
+end
diff --git a/spec/enterprise/controllers/api/v1/auth_controller_spec.rb b/spec/enterprise/controllers/api/v1/auth_controller_spec.rb
index f1e2ef1c7..767011a50 100644
--- a/spec/enterprise/controllers/api/v1/auth_controller_spec.rb
+++ b/spec/enterprise/controllers/api/v1/auth_controller_spec.rb
@@ -36,6 +36,12 @@ RSpec.describe 'Api::V1::Auth', type: :request do
expect(response.location).to eq('http://www.example.com/app/login/sso?error=saml-authentication-failed')
end
+
+ it 'redirects to mobile deep link with error when target is mobile' do
+ post '/api/v1/auth/saml_login', params: { email: 'nonexistent@example.com', target: 'mobile' }
+
+ expect(response.location).to eq('chatwootapp://auth/saml?error=saml-authentication-failed')
+ end
end
context 'when user exists but has no SAML enabled accounts' do
@@ -48,6 +54,12 @@ RSpec.describe 'Api::V1::Auth', type: :request do
expect(response.location).to eq('http://www.example.com/app/login/sso?error=saml-authentication-failed')
end
+
+ it 'redirects to mobile deep link with error when target is mobile' do
+ post '/api/v1/auth/saml_login', params: { email: user.email, target: 'mobile' }
+
+ expect(response.location).to eq('chatwootapp://auth/saml?error=saml-authentication-failed')
+ end
end
context 'when user has account without SAML feature enabled' do
@@ -65,6 +77,12 @@ RSpec.describe 'Api::V1::Auth', type: :request do
expect(response.location).to eq('http://www.example.com/app/login/sso?error=saml-authentication-failed')
end
+
+ it 'redirects to mobile deep link with error when target is mobile' do
+ post '/api/v1/auth/saml_login', params: { email: user.email, target: 'mobile' }
+
+ expect(response.location).to eq('chatwootapp://auth/saml?error=saml-authentication-failed')
+ end
end
context 'when user has valid SAML configuration' do
@@ -82,6 +100,12 @@ RSpec.describe 'Api::V1::Auth', type: :request do
expect(response.location).to include("/auth/saml?account_id=#{account.id}")
end
+
+ it 'redirects to SAML initiation URL with mobile relay state' do
+ post '/api/v1/auth/saml_login', params: { email: user.email, target: 'mobile' }
+
+ expect(response.location).to include("/auth/saml?account_id=#{account.id}&RelayState=mobile")
+ end
end
context 'when user has multiple accounts with SAML' do
diff --git a/spec/enterprise/models/company_spec.rb b/spec/enterprise/models/company_spec.rb
new file mode 100644
index 000000000..820e6ee7d
--- /dev/null
+++ b/spec/enterprise/models/company_spec.rb
@@ -0,0 +1,38 @@
+require 'rails_helper'
+
+RSpec.describe Company, type: :model do
+ context 'with validations' do
+ it { is_expected.to validate_presence_of(:account_id) }
+ it { is_expected.to validate_presence_of(:name) }
+ it { is_expected.to validate_length_of(:name).is_at_most(100) }
+ it { is_expected.to validate_length_of(:description).is_at_most(1000) }
+
+ describe 'domain validation' do
+ it { is_expected.to allow_value('example.com').for(:domain) }
+ it { is_expected.to allow_value('sub.example.com').for(:domain) }
+ it { is_expected.to allow_value('').for(:domain) }
+ it { is_expected.to allow_value(nil).for(:domain) }
+ it { is_expected.not_to allow_value('invalid-domain').for(:domain) }
+ it { is_expected.not_to allow_value('.example.com').for(:domain) }
+ end
+ end
+
+ context 'with associations' do
+ it { is_expected.to belong_to(:account) }
+ it { is_expected.to have_many(:contacts).dependent(:nullify) }
+ end
+
+ describe 'scopes' do
+ let(:account) { create(:account) }
+ let!(:company_b) { create(:company, name: 'B Company', account: account) }
+ let!(:company_a) { create(:company, name: 'A Company', account: account) }
+ let!(:company_c) { create(:company, name: 'C Company', account: account) }
+
+ describe '.ordered_by_name' do
+ it 'orders companies by name alphabetically' do
+ companies = described_class.where(account: account).ordered_by_name
+ expect(companies.map(&:name)).to eq([company_a.name, company_b.name, company_c.name])
+ end
+ end
+ end
+end
diff --git a/spec/enterprise/policies/company_policy_spec.rb b/spec/enterprise/policies/company_policy_spec.rb
new file mode 100644
index 000000000..9f7d9f0cc
--- /dev/null
+++ b/spec/enterprise/policies/company_policy_spec.rb
@@ -0,0 +1,33 @@
+require 'rails_helper'
+
+RSpec.describe CompanyPolicy, type: :policy do
+ subject(:company_policy) { described_class }
+
+ let(:account) { create(:account) }
+ let(:administrator) { create(:user, :administrator, account: account) }
+ let(:agent) { create(:user, account: account) }
+ let(:company) { create(:company, account: account) }
+
+ let(:administrator_context) { { user: administrator, account: account, account_user: account.account_users.first } }
+ let(:agent_context) { { user: agent, account: account, account_user: account.account_users.first } }
+
+ permissions :index?, :show?, :create?, :update? do
+ context 'when administrator' do
+ it { expect(company_policy).to permit(administrator_context, company) }
+ end
+
+ context 'when agent' do
+ it { expect(company_policy).to permit(agent_context, company) }
+ end
+ end
+
+ permissions :destroy? do
+ context 'when administrator' do
+ it { expect(company_policy).to permit(administrator_context, company) }
+ end
+
+ context 'when agent' do
+ it { expect(company_policy).not_to permit(agent_context, company) }
+ end
+ end
+end
diff --git a/spec/factories/companies.rb b/spec/factories/companies.rb
new file mode 100644
index 000000000..bdf7e9e9f
--- /dev/null
+++ b/spec/factories/companies.rb
@@ -0,0 +1,20 @@
+FactoryBot.define do
+ factory :company do
+ sequence(:name) { |n| "Company #{n}" }
+ sequence(:domain) { |n| "company#{n}.com" }
+ description { 'A sample company description' }
+ account
+
+ trait :without_domain do
+ domain { nil }
+ end
+
+ trait :with_avatar do
+ avatar { fixture_file_upload(Rails.root.join('spec/assets/avatar.png'), 'image/png') }
+ end
+
+ trait :with_long_description do
+ description { 'A' * 500 }
+ end
+ end
+end
diff --git a/spec/lib/integrations/slack/incoming_message_builder_spec.rb b/spec/lib/integrations/slack/incoming_message_builder_spec.rb
index 608324e8f..2ce206489 100644
--- a/spec/lib/integrations/slack/incoming_message_builder_spec.rb
+++ b/spec/lib/integrations/slack/incoming_message_builder_spec.rb
@@ -157,6 +157,19 @@ describe Integrations::Slack::IncomingMessageBuilder do
expect(conversation.messages.count).to eql(messages_count)
end
+
+ it 'handles different file types correctly' do
+ expect(hook).not_to be_nil
+ video_attachment_params = message_with_attachments.deep_dup
+ video_attachment_params[:event][:files][0][:filetype] = 'mp4'
+ video_attachment_params[:event][:files][0][:mimetype] = 'video/mp4'
+
+ builder = described_class.new(video_attachment_params)
+ allow(builder).to receive(:sender).and_return(nil)
+
+ expect { builder.perform }.not_to raise_error
+ expect(conversation.messages.last.attachments).to be_any
+ end
end
context 'when link shared' do
diff --git a/spec/models/message_spec.rb b/spec/models/message_spec.rb
index a0bd48e39..c5e080677 100644
--- a/spec/models/message_spec.rb
+++ b/spec/models/message_spec.rb
@@ -4,6 +4,12 @@ require 'rails_helper'
require Rails.root.join 'spec/models/concerns/liquidable_shared.rb'
RSpec.describe Message do
+ before do
+ # rubocop:disable RSpec/AnyInstance
+ allow_any_instance_of(described_class).to receive(:reindex_for_search).and_return(true)
+ # rubocop:enable RSpec/AnyInstance
+ end
+
context 'with validations' do
it { is_expected.to validate_presence_of(:inbox_id) }
it { is_expected.to validate_presence_of(:conversation_id) }
@@ -678,4 +684,54 @@ RSpec.describe Message do
end
end
end
+
+ describe '#reindex_for_search callback' do
+ let(:account) { create(:account) }
+ let(:conversation) { create(:conversation, account: account) }
+
+ before do
+ allow(ChatwootApp).to receive(:advanced_search_allowed?).and_return(true)
+ account.enable_features('advanced_search_indexing')
+ end
+
+ context 'when message should be indexed' do
+ it 'calls reindex_for_search for incoming message on create' do
+ message = build(:message, conversation: conversation, account: account, message_type: :incoming)
+ expect(message).to receive(:reindex_for_search)
+ message.save!
+ end
+
+ it 'calls reindex_for_search for outgoing message on update' do
+ # rubocop:disable RSpec/AnyInstance
+ allow_any_instance_of(described_class).to receive(:reindex_for_search).and_return(true)
+ # rubocop:enable RSpec/AnyInstance
+ message = create(:message, conversation: conversation, account: account, message_type: :outgoing)
+ expect(message).to receive(:reindex_for_search).and_return(true)
+ message.update!(content: 'Updated content')
+ end
+ end
+
+ context 'when message should not be indexed' do
+ it 'does not call reindex_for_search for activity message' do
+ message = build(:message, conversation: conversation, account: account, message_type: :activity)
+ expect(message).not_to receive(:reindex_for_search)
+ message.save!
+ end
+
+ it 'does not call reindex_for_search for unpaid account on cloud' do
+ allow(ChatwootApp).to receive(:chatwoot_cloud?).and_return(true)
+ account.disable_features('advanced_search_indexing')
+ message = build(:message, conversation: conversation, account: account, message_type: :incoming)
+ expect(message).not_to receive(:reindex_for_search)
+ message.save!
+ end
+
+ it 'does not call reindex_for_search when advanced search is not allowed' do
+ allow(ChatwootApp).to receive(:advanced_search_allowed?).and_return(false)
+ message = build(:message, conversation: conversation, account: account, message_type: :incoming)
+ expect(message).not_to receive(:reindex_for_search)
+ message.save!
+ end
+ end
+ end
end
diff --git a/spec/services/whatsapp/populate_template_parameters_service_spec.rb b/spec/services/whatsapp/populate_template_parameters_service_spec.rb
new file mode 100644
index 000000000..05390bd90
--- /dev/null
+++ b/spec/services/whatsapp/populate_template_parameters_service_spec.rb
@@ -0,0 +1,70 @@
+require 'rails_helper'
+
+describe Whatsapp::PopulateTemplateParametersService do
+ let(:service) { described_class.new }
+
+ describe '#normalize_url' do
+ it 'normalizes URLs with spaces' do
+ url_with_spaces = 'https://example.com/path with spaces'
+ normalized = service.send(:normalize_url, url_with_spaces)
+
+ expect(normalized).to eq('https://example.com/path%20with%20spaces')
+ end
+
+ it 'handles URLs with special characters' do
+ url = 'https://example.com/path?query=test value'
+ normalized = service.send(:normalize_url, url)
+
+ expect(normalized).to include('https://example.com/path')
+ expect(normalized).not_to include(' ')
+ end
+
+ it 'returns valid URLs unchanged' do
+ url = 'https://example.com/valid-path'
+ normalized = service.send(:normalize_url, url)
+
+ expect(normalized).to eq(url)
+ end
+ end
+
+ describe '#build_media_parameter' do
+ context 'when URL contains spaces' do
+ it 'normalizes the URL before building media parameter' do
+ url_with_spaces = 'https://example.com/image with spaces.jpg'
+ result = service.build_media_parameter(url_with_spaces, 'IMAGE')
+
+ expect(result[:type]).to eq('image')
+ expect(result[:image][:link]).to eq('https://example.com/image%20with%20spaces.jpg')
+ end
+ end
+
+ context 'when URL contains special characters in query string' do
+ it 'normalizes the URL correctly' do
+ url = 'https://example.com/video.mp4?title=My Video'
+ result = service.build_media_parameter(url, 'VIDEO', 'test_video')
+
+ expect(result[:type]).to eq('video')
+ expect(result[:video][:link]).not_to include(' ')
+ end
+ end
+
+ context 'when URL is already valid' do
+ it 'builds media parameter without changing URL' do
+ url = 'https://example.com/document.pdf'
+ result = service.build_media_parameter(url, 'DOCUMENT', 'test.pdf')
+
+ expect(result[:type]).to eq('document')
+ expect(result[:document][:link]).to eq(url)
+ expect(result[:document][:filename]).to eq('test.pdf')
+ end
+ end
+
+ context 'when URL is blank' do
+ it 'returns nil' do
+ result = service.build_media_parameter('', 'IMAGE')
+
+ expect(result).to be_nil
+ end
+ end
+ end
+end