OpsIQ Tài liệu

Xây dựng, hoạt động và mở rộng OpsIQ.

Đây là tài liệu đầy đủ cho OpsIQ Thiết lập sản phẩm, chạy hỗ trợ hỗ trợ, cấu hình AI, quản lý CRM, cài đặt thiết bị, xây dựng kết nối, gọi hệ thống RET API Nhận weboks, ứng dụng thị trường gói hàng, và hoạt động triển khai tự chủ.

Hướng dẫn khách hàngHướng dẫn Quản trịHướng dẫn nhà phát triểnTài liệu tham khảo CRMNối SDKRORT APITự tạo
Phạm vị

Phạm vi của cuốn sách này

Tất cả OpsIQ làm thế nào để kết nối hệ thống của chính bạn và cách xây dựng ở trên đỉnh của nó. bắt đầu từ bất cứ đâu, các phần theo cùng thứ tự với thanh quảng cáo.

Phạm vị
Sơ đồ tài liệuCuốn sổ tay được sắp xếp quanh OpsIQ sản phẩm, theo cùng thứ tự với quảng cáo.Sơ đồ tài liệuOpsIQ sản phẩmAUDIENCETổng đàiBUILLLNhà phát triểnRUNQuản trịQUAN ĐIỂM CÔNG VIỆC SỐNGDùng OpsIQMàn hình sản xuất và luồng công việcĐã bao gồmMở rộng OpsIQCác liên kết, APIs và ô điều khiểnĐã bao gồmOperateOpsIQBảo vệ, cron và triển khaiĐã bao gồmTham khảoGói, API và hợp đồng móc câuĐã bao gồm1CHOOSE AUDIENCETrình phát triển/ điều phối tổng đài2FOLLOW THE UIMột phần gương OpsIQ3USE SOURCE TRUTHTrạng thái đến từ xây dựng
Cuốn sổ tay được sắp xếp quanh OpsIQ sản phẩm, theo cùng thứ tự với quảng cáo.
Hướng dẫn trường điêu khắc cổng

Sử dụng các nhà quản trị tận tụy và nhà phát triển cho kiến trúc cổng, trang, thành phần, xem thử, Trung tâm trợ giúp, nhân dạng, SCIM, sự giải phóng được chi phối, mở rộng, di cư và chứng nhận.

Mở hướng dẫn phòng thu cổng

Cái gì trong này?

Chạy sản phẩm

Mọi màn hình trong ban quản trị: phân tích, trò chuyện trực tiếp, vé phạt,CRM Cơ sở tri thức, tình báo Site, thăng cấp và cổng tài khoản khách hàng. và phải làm gì khi họ nhìn sai.

Kết nối hệ thống của bạn

Các ô điều khiển nơi Mạng, hộp thư điện tử, các giao diện web kết nối và ra ngoài, và thư viện kết nối cho các nền tảng nhưShopify, WooCommerce, WHMCS, Zendesk, Stripe, SlackvàGmail.

Tự xây dựng cho mình đi

Bộ xây dựng kết nối cho các tổ chức không mã, hành động & gây nên nếu bạn không muốn sử dụng các kết nối, và ORT API với mọi hành động, phạm vi và mã lỗi.

Cho nó hoạt động đi.

Vai trò và quyền hạn, an ninh, cron, chẩn đoán, hỗ trợ, và cả hai đều có máy chủ và tự lập.

Bắt đầu từ đâu đây?

1
Nếu anh chạy trốn OpsIQ ngày này qua ngày khác

Hãy đọc các phần màn hình theo thứ tự thanh bên, mỗi phần mở với những gì trang này dùng để làm, vì vậy bạn có thể dừng lại ngay khi bạn có những gì bạn cần.

2
Nếu anh chịu trách nhiệm

Thêm thắt, bảo mật, chẩn đoán, Cron và sản xuất.

3
Nếu bạn đang xây dựng một sự tích hợp

Bắt đầu tại Kết nối, sau đó là bộ xây dựng kết nối, và sau đó REST API Đọc chúng theo thứ tự và bạn sẽ thấy mọi cách OpsIQ có thể nói chuyện với một hệ thống khác.

💡
Hai điều thay đổi những gì bạn thấy. Quyền giấu trang không thể mở, vì vậy một phần được mô tả ở đây có thể bị thiếu khỏi thanh bên. Yêu cầu quản trị kiểm tra vai trò của bạn. và các nhà kết nối mang nhãn hiệu thành thục của sản xuất, Beta, xem thử hay mẫu; việc xây dựng và danh sách kết nối của nó là thẩm quyền mà bạn có, chứ không phải trang này.
Bắt đầu từ đây

Sao? OpsIQ cho công việc của bạn

OpsIQ Nó thay thế nền tảng kinh doanh phân tích, trò chuyện trực tiếp, giúp đỡ, CRM, SEO công cụ, tích hợp phần mềm trung gian và phát triển một nền tảng đồng nhất nơi mà mọi công cụ chia sẻ cùng bối cảnh khách hàng. 8-12 Các sản phẩm SaaS riêng biệt, bạn cài đặt OpsIQ Một lần và vận hành mọi thứ từ một màn hình.

Nền tảng
OpsIQ Nền tảng hợp nhấtMột bộ não AI trung tâm kết nối với trò chuyện trực tiếp,CRM Vé, tình báo Site, thăng chức và phân tích.Trò chuyện trực tiếpTăng cấpAl CRMThông tin về vị tríPhân tíchOpsIQAl BRAIN1ONE WORKSPACEMọi công cụ trong một quảng cáo2SHARED BRAINMột bối cảnh khách hàng3ANYWHEREĐám mây hoặc tự lưu trữ
OpsIQ là một nền tảng với cùng một bối cảnh khách hàng, mọi nguồn cấp dữ liệu công cụ, và được cung cấp năng lượng bởi cùng một bộ não AI.

Tất cả OpsIQ không rõ ràng

Phân tích và trí thông minh của khách truy cập web

Theo dõi khách truy cập thời gian thực

Mỗi trang tải, click, cuộn và định vị được ghi lại trong thời gian thực. xem ai ở trên trang của bạn ngay bây giờ, trang nào họ đang xem, chúng đã chi tiêu bao lâu, và nơi họ đến, tất cả đều không có bánh quy thứ ba.

Bản ghi và phiên chạy khách

Lịch sử đầy đủ của mỗi khách truy cập với thiết bị, trình duyệt, hệ điều hành, đất nước, thành phố, tham chiếu, tham số UTM, trang hạ cánh, và sự phân giải danh tính. Các phiên chạy nhóm xem trong các chuyến đi để bạn có thể thấy toàn bộ con đường mà du khách đi.

Phát lại phiên

Chương trình phát lại kiểu thời gian cho các phiên truy cập bị bắt. Xem chính xác những gì người dùng đã làm: di chuyển chuột, click, cuộn giấy, chuyển đổi trang và tạo tương tác. Dùng nó để chẩn đoán vấn đề UX, hiểu điểm bỏ ra, và kiểm tra luồng chuyển hóa.

Thức ăn trực tiếp

Một luồng hoạt động của khách truy cập thực sự như nó xảy ra. Xem các ô xem trang, chat bắt đầu, tạo thông tin và định ý sẽ cập nhật mỗi vài giây. Lọc bằng quốc gia, thiết bị hoặc tham chiếu tập trung vào phân khúc giao thông cụ thể.

Trang đầu

Trang xếp hạng theo các cuộc thăm dò, thời gian đính hôn, tốc độ nảy mầm, chuyển đổi, và hoạt động hỗ trợ. Xác định nội dung và trang web cần được cải thiện cao nhất.

Thông minh địa lý

Quốc gia, thành phố và khu vực bị đổ vỡ bởi bản đồ, sự phân phối thiết bị và duyệt, phân tích nguồn thông tin giao thông, công cụ tìm kiếm cho thấy sự theo dõi và thâm nhập thị trường.

Ý định là ống dẫn

Theo dõi các tín hiệu khách thăm viếng (dùng trang, trả lại, trình duyệt và hỗ trợ tương tác với khách thăm quan, hoặc cần giúp đỡ.

Thí nghiệm A/B

Chạy các thử nghiệm tách biệt trên trang web của bạn trực tiếp từ OpsIQ. tạo biến thể, đặt sự định vị giao thông, xác định mục tiêu chuyển đổi và đo tầm quan trọng thống kê. Không cần công cụ thử nghiệm bên ngoài.

JavaScript lỗi theo dõi

Chụp bên khách hàng JavaScript lỗi từ trang Mạng của bạn tự động. Xem thông điệp lỗi, chồng dấu vết, ảnh hưởng đến trình duyệt, số tần số và trang nào gây ra chúng. Các vấn đề giao diện gỡ lỗi mà không cần kiểm tra lỗi riêng.

Bản ghi sự kiện

Mỗi sự kiện được theo dõi (xem trang, sự kiện riêng, tương tác chat, nộp đơn, mua) trong bản ghi tìm kiếm có thể lọc với siêu dữ liệu đầy đủ.

Bán và cải đạo

Các lệnh truy tìm, thu nhập, hoàn lại tiền, đăng ký đổi mới và quy định chuyển đổi từ nguồn giao thông, chiến dịch tranh cử và du khách.

& Dẫn

Những du khách có nhiều sở thích được nhận diện theo kiểu hành vi. Điểm số dẫn đầu dựa trên các cuộc thăm dò trang, thời gian trên trang web, tần số trở lại, tương tác hỗ trợ và tín hiệu tùy chỉnh.CRMĐường ống.

Thông tin tình báo vị trí (S SEO và phân tích nội dung)

Side bò

Tự động bò trên toàn bộ trang web của bạn để khám phá trang, phát hiện liên kết bị hỏng, tìm các siêu thẻ còn thiếu, kiểm tra ảnh alt text, xác thực chính sách URLs Lịch trình di chuyển hàng ngày, hàng tuần, hoặc theo yêu cầu.

Kỹ thuật SEO Kiểm toán

Phân tích kỹ thuật đầy đủ: điểm tốc độ trang, phản hồi điện thoại di động, kết nối Web, SSL Tình trạng chứng nhận, chuyển hướng chuỗi, sao chép nội dung, phân tích độ sâu thu thập và cấu trúc dữ liệu hợp lệ.

Kiểm tra nội dung

Đánh giá mỗi trang về chất lượng nội dung, số từ, điểm đọc được, mật độ từ khóa, cấu trúc tiêu đề, tỷ lệ liên kết trong/ ngoài và sự mới lạ. Xác định nội dung mỏng, các trang sao chép và khoảng trống nội dung.

Tìm kiếm năng lượng Al

Tìm kiếm Semantic trên toàn bộ nội dung trang web. Hỏi câu hỏi ngôn ngữ tự nhiên về nội dung của bạn và nhận được các câu trả lời tổng hợp AI với tham chiếu từ trang nguồn.

Theo dõi cấp độ SERP

Theo dõi các máy tìm kiếm của bạn phân loại từ khóa mục tiêu qua Google và các động cơ khác. theo dõi thay đổi vị trí theo thời gian, so sánh với đối thủ cạnh tranh, và xem trang nào được xếp hạng cho các điều khoản nào.

Nghiên cứu từ khoá

Phát hiện cơ hội từ khóa dựa trên nội dung, phân tích đối thủ và tìm kiếm dữ liệu khối lượng.

Phân tích đường dẫn ngược

Theo dõi hồ sơ liên kết đang tới. Xem nơi nào liên kết đến bạn, theo dõi các liên kết mới và bị mất, phân tích bản phân phối văn bản neo, và xác định cơ hội xây dựng liên kết.

Cục bộ SEO lưới

Đối với các doanh nghiệp có địa điểm vật lý: Hãy hình dung tầm nhìn của bạn về việc tìm kiếm địa lý trên mạng lưới địa lý, xem mức độ khác nhau của bạn như thế nào khi phân loại theo địa điểm, khoảng cách với công việc và mục đích tìm kiếm.

Đồng bộ hồ sơ kinh doanh Google

Kết nối hồ sơ doanh nghiệp Google của bạn với. OpsIQ. đồng bộ hóa đánh giá, bài đăng, Q&A, ảnh và thông tin kinh doanh. quản lý danh sách GBP của bạn từ bên trong OpsIQTrả lời các đánh giá, công bố bài viết và theo dõi nhận thức.

Đã lên lịch báo cáo

Báo cáo SEO và phân tích tự động được tạo theo lịch trình của bạn (hằng ngày, hàng tuần, hàng tháng). Các báo cáo bao gồm thay đổi xếp hạng, xu hướng lưu lượng, vấn đề kỹ thuật tìm thấy, và hiệu suất nội dung. Kết quả có thể in nhãn trắng cho các cơ quan. Name

Hỗ trợ năng lượng Al

Trò chuyện với người mua Al

AI trả lời câu hỏi của khách hàng trên trang web của bạn 24/7 dùng cơ sở kiến thức, dữ liệu nền đã kết nối (hàng thứ tự, tài khoản, đặt dài hạn) và các lời nhắc nhở huấn luyện tùy thích. Hỗ trợ nhiều nhà cung cấp AI: Claude (những người cung cấp hệ thống định dạng).Anthropic), GPT-4o (OpenAI), Gemini (Google) và Grok (xAI).

Phụ tá Quản trị AI

Một phi công phụ bên trong bảng điều khiển quảng cáo giúp bạn viết các câu trả lời vé, soạn thảo giao tiếp khách hàng, phân tích xu hướng hỗ trợ, tìm kiếm dữ liệu khách hàng qua nền tảng đã kết nối, và thực hiện hành động thông qua hệ thống kết nối.

Hiểu biết chung quanh Al

AI được dựa trên các bài viết cơ bản của bạn, mục nhập FAQ, tài liệu sản phẩm và dữ liệu kết nối nền tảng. Nó không ảo giác. Nó trả lời từ thông tin kinh doanh thực sự hoặc tăng khi bạn không chắc chắn.

Tự động giao cho con người

Khi AI không thể giải quyết một câu hỏi, phát hiện sự thất vọng, hoặc khách hàng yêu cầu một con người, nó tự động gửi cho đội của bạn với đầy đủ bối cảnh đối thoại. Giảm dần khả năng tự động/ thời gian ra trả lời cho AI.

Luyện tập AI

Viết các hướng dẫn riêng cho AI và admin-Al. Giọng điều khiển, ranh giới, luật tăng cường, chủ đề cấm, và hành vi riêng biệt làm việc của khách hàng. Hỗ trợ cấu hình trên không gian làm việc.

Lịch sử AI và kiểm toán

Mỗi cuộc trò chuyện AI được ghi lại với đầy đủ yêu cầu/các câu trả lời, sử dụng đồ vật, theo dõi chi phí, nhà cung cấp và phiên bản mô hình. Xem lại các cuộc trò chuyển thoại để xác định khoảng trống đào tạo và cải tiến độ chính xác của AI.

Hiểu rõ AI

Phân tích tự động các mô hình giao tiếp AI. và các khu vực mà AI cần đào tạo tốt hơn.

Cấu hình AI mỗi không gian làm việc

Mỗi nơi Mạng/Pworkspace có thể sử dụng nhà cung cấp AI, mô hình, nhiệt độ, ngân sách bảo đảm và các nhắc nhở đào tạo.

Quản lý AI và BYOK

Hai chế độ AI: quản lý AI (trong kế hoạch của bạn, không API Chìa khóa cần thiết) hoặc tự mang chìa khóa (hãy dùng chìa khóa riêng của bạn OpenAI/Anthropic/ Google/xAI API Chìa khóa để điều khiển hoàn toàn chọn mô hình và chi phí. Cả hai đều là hạng nhất, mọi tính năng đều hoạt động với chế độ.

Ngân sách token AI và kiểm soát chi phí

Đặt ngân sách hàng tháng, giới hạn liên tục và cảnh báo ít cân bằng. Theo dõi chi tiêu mỗi nhà cung cấp, mỗi không gian làm việc, và mỗi cuộc trò chuyện. Ngăn chặn chi phí chạy trốn với trần cứng.

Vé và trợ giúp

Hệ thống vé bản địa

Toàn bộ trợ giúp với các bộ phận, thứ tự ưu tiên (low/medium/ High/Rout), statuss, SLA Theo dõi, ghi chú nội bộ, trả lời khách hàng, đính kèm tập tin và các cuộc đối thoại có chỉ dẫn. Không cần trợ giúp bên ngoài.

AI triage và tự động trả lời

AlI tự động kiểm tra các vé đến theo sở sở và ưu tiên. Bật tự động các bộ phận an toàn. Bản nháp AI và gửi đáp ứng sau một sự chậm trễ có thể cấu hình (mặc định: 2 phút) để con người có thể can thiệp trước.

Thư điện tử

Kết nối một hộp thư (Gmail, IMAP, hoặc cụ thể nhà cung cấp) để tạo vé từ email tới. Ngược lại để xem thông báo cập nhật chỉ vé.

Cổng thông tin vé

Đính vào một cổng vé khách hàng trên trang web của bạn. khách hàng có thể đăng nhập vé, xem lịch sử của họ, trả lời để mở vé, và kiểm tra tình trạng, tất cả các nhãn hiệu cho thiết kế của bạn

Kết hợp vé

Phiên bản sao của mỗi chỉ một lần. Các vé đã nhập sẽ được hiển thị trên dòng chủ đề.

Trở lại AI

Sau khi một nhân viên con người nhận vé, sử dụng "Hãy trở lại AI" để cho AI tiếp tục tự động trên vé đó. hữu ích khi phần yêu cầu của con người được giải quyết nhưng khách hàng đã theo dõi các câu hỏi AI có thể xử lý.

Điều khiển hộp thư

Quản lý vé được hỗ trợ từ góc nhìn trong hộp thư. và có thể thực hiện hành động trên nền tảng kết nối.

Hỗ trợ trò chuyện và thời gian thực

Hộp thoại

Cuộc trò chuyện khách hàng thời gian thực được quản lý từ một hộp thư đến thống nhất. xem tất cả các cuộc trò chuyện hoạt động, danh tính khách hàng, lịch sử đối thoại và các đề nghị AI. nhiều đặc vụ có thể hợp tác trong một cuộc trò chuyện.

Quy tắc trò chuyện chủ động

Kích hoạt tin nhắn chat dựa trên hành vi của khách truy cập: Thời gian trên trang, cụ thể URL Thăm viếng, cuộn giấy, đếm lại số lần thăm, mục đích thoát hoặc tùy chỉnh. 60 Trên trang giá.

Thẻ trò chuyện

Một thiết bị chat có thể tùy chỉnh được nhúng vào trang Mạng của bạn. Hỗ trợ tán gẫu AI, tin nhắn trực tiếp, gửi thông tin về vé, tìm kiếm cơ sở dữ liệu và đặc điểm nhận diện khách truy cập. Có thể truy cập, và có hiệu lực.

Các cuộc thăm dò CSAT

Thu thập tỷ lệ hài lòng khách hàng sau khi chat và các giao tiếp vé. Thiết kế khảo sát với câu hỏi của riêng bạn, tỉ lệ đánh giá, và các nhắc tiếp theo. kết quả được đưa vào thành tích của đội và độ sâu của AI.

Khảo sát email sau khi kết thúc

Sau khi kết thúc cuộc trò chuyện, du khách với một email đã biết có thể nhận được một bưu kiện bằng một bản tóm tắt của những gì đã được xử lý và nhấn chuột vào nó dễ dàng không? Vâng, một lần mỗi sợi, ký kết đơn, mỗi gửi đăng nhập, và kết quả là các trang FFback là tín hiệu riêng của nó bên cạnh các ngôi sao trong.

Vòng nhận dạng phản hồi

Mỗi mục phản hồi mang theo một người cho họ thấy: tên, email, nhấn chuột vào cuộc hành trình đầy đủ khách hàng của họ và CRM liên lạc, và một nhấn vào email hoặc đáp án Al-draft dựa trên lịch sử thực tế của họ.

Viết AI

Trình trợ lý viết AI riêng rẽ để soạn thảo bản nháp email, trả lời vé, thông báo và liên lạc khách hàng. Dùng dấu nhắc (không phải bộ não chat) cho việc viết kinh doanh chuyên nghiệp.

CRM AI-First

Trung tâm điều khiển CRM

Một màn hình đơn cho thấy toàn bộ CRM Nhà nước: giá trị đường ống, vận tốc thương mại, công việc đang được thực hiện, các giao dịch rủi ro, hoạt động đặc vụ, và khuyến cáo AI.CRM Trang chủ là điểm khởi đầu hàng ngày của bạn.

Liên lạc và công ty

Quản lý các liên lạc khách hàng với hồ sơ đầy đủ: tên, email, điện thoại, công ty, thẻ, sân khấu cuộc sống, lịch sử trò chuyện, lịch sử vé, lịch trình mua bán và trường tùy chỉnh. Liên kết đến các công ty để quản lý mối quan hệ B2B.

Thỏa thuận và bảng đường ống

Hình ảnh của ban quản lý các giao dịch kiểu Kanban với các giai đoạn tùy chỉnh.

Al deal uấn luyện

AI phân tích mỗi giao dịch và cung cấp các tín hiệu rủi ro (đi quá yên tĩnh, cạnh tranh với nhau được đề cập đến, quan tâm ngân sách), khuyến cáo hành động tiếp theo, giành được xác suất, và đề nghị thời gian tiếp theo.

Báo cáo và thông báo trước

Các báo cáo bao gồm các đường ống bằng giai đoạn, nguồn gốc, tỷ lệ chuyển đổi, kích thước trung bình và chu kỳ bán hàng.

Tác nhân dự đoán (SDR)

Khả năng tìm kiếm của AI giúp xác định khách hàng tiềm năng từ dữ liệu khách truy cập, tín hiệu dẫn, và hoạt động kết nối. đề nghị các mục tiêu tiếp cận, phác thảo tin nhắn đầu tiên, và chất lượng dẫn đầu.

Chuỗi theo dõi

Chuỗi theo dõi nhiều bước tự động: email, chờ đợi, email, kiểm tra phản hồi, tăng cấp. Định nghĩa chuỗi cho các khách hàng tiềm năng mới, giao dịch bị đình trệ, kỹ thuật sau mua và chiến dịch tái tham gia.

Xe đạp cứu sinh và sự sống lại

Theo dõi giai đoạn sống của khách hàng (theo đầu, triển vọng, khách hàng, khuấy động) với chuyển đổi tự động. màn hình giám sát để đánh dấu tín hiệu và cho thấy sự can thiệp.

Nhân viên quản lý dữ liệu

Đặc vụ AI luôn làm sạch và làm giàu dữ liệu CRM: làm mờ các liên lạc, lấp đầy các trường bị mất tích, xác nhận email, tiêu chuẩn hóa tên công ty, và cờ cũ.

Xây dựng của tôi CRM

Ngôn ngữ tự nhiên CRM Cấu hình: nói với AI quá trình bán hàng của bạn như thế nào và nó xây dựng giai đoạn đường ống, trường tùy chỉnh, mẫu giao dịch, và quy tắc tự động hóa.

CRM Kiểm tra sức khỏe

Kiểm tra tự động chất lượng dữ liệu CRM: nhân đôi liên lạc, thỏa thuận mà không có bước tiếp theo, đường ống cũ, thông tin liên lạc bị mất và dữ liệu hoàn tất.

Điện thoại tin cậy

Điều khiển 3 cấp tự trị cho mỗi tác nhân CRM Al: tự động hoạt động độc lập, phụ lái (AI đề nghị, chấp thuận con người), và hướng dẫn (chỉ xem). Đặt số trên mỗi tác vụ, mỗi kiểu hành động, và mỗi ngưỡng giá trị giao dịch.

4 đặc vụ Al

Hạt CRM Điều khiển bốn tác nhân AI chuyên biệt: Steward (đức tính dữ liệu), SDR (chứng nhận), In ấn ( biện pháp phòng ngừa tai tiếng), và Analyst (tin tưởng vào thông tin và sự hiểu biết). Mỗi tác nhân có thiết lập quay số riêng.

Kết nối và trộn

Kết nối đã xây dựng sẵn

Các liên kết sẵn sàng dùng cho Shopify, WooCommerce"BulCommerce, Magento 2, PrestaShopOpenCart, osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES, Postmark, Resend, SendGrid, Mailgun, Gmail, IMAP, Slack, và Google Business ProfileMỗi kết nối mang lại những hành động AI cụ thể, kiến thức và dữ liệu đồng bộ.

Trình tạo Kết nối

Xây dựng các kết nối tùy chỉnh cho mọi nền tảng, không mã, hỗ trợ AI-assed, hoặc mã đầy đủ.APIs, OAuthCho phép dòng mã truy cập, quản lý tự động kết nối webStripevà các sơ đồ chữ ký đơn giản, nút dừng (tắt, trang, con trỏ, và đầu liên kết), danh sách/ khủng bố biến đổi, ngữ cảnh đa hành động, và bao bọc thị trường.

Tác giả kết nối hỗ trợ bởi AI

Trình cấu trúc kết nối giúp bạn xây dựng các kết nối: mô tả những gì bạn muốn và nó gợi ý hành động, ghi các người quản lý yêu cầu, và bản đồ API Đáp ứng. Xử lý xác thực, tạo mẫu và lỗi tự động xử lý.

OAuth Name

GenericName OAuth Cho phép dòng chảy hoạt động với bất kỳ kết nối nào. hỗ trợ PK, quản lý trạng thái có kính hiển thị trang Mạng, tự động cập nhật lại. Kết nối OAuth Tham số và OpsIQ Xử lý dòng chảy.

Xe buýt có thể sử dụng (mở rộng toàn bộ hình nền)

Kết nối không chỉ thêm các hành động nền tảng. Họ có thể cung cấp năng lượng lõi thông qua khả năng "buckers". Một kết nối tuyên bố một khả năng (calendar, phong phú, eign in CRM; danh sách địa phương, xếp hạng_data trong Site Intel; web_ anaticics in Analyics; thanh toán_ provider in Payment; email_ Ecy trong hộp thư điện tử;_ ecying in CEMs; và thực hiện phương pháp nhỏ của nó; OpsIQ Phát hiện ra nó thông qua sự hợp tác và dây nó vào UI, khách hàng 360 Thời gian, và các hành động AI. Một số kết nối có thể cung cấp cùng một khả năng mà không cần khóa. Xem kết nối/PLATORM_CONCTS.md.

Cài đặt sẵn để chống lại bộ điều khiển thị trường

Kết nối trực tiếp trong một trong hai dây. Các kết nối đã cài đặt sẵn ( kết nối/) đang hoạt động ra khỏi hộp, giữ nghiêng về chỉ các tài liệu tham khảo không khóa và nhà cung cấp sử dụng nhất trên mỗi khả năng (v. d.Google Calendar, Gmail, Google Business Profile). Các kết nối đến siêu thị (site_connectors/) có thể phát hiện nhưng không tìm thấy được cho đến khi cài đặt, e.g.Microsoft 365Lịch,Outlook, DocuSign,Stripe, GA4 SerpApi, Zoom. Mỗi cây cầu xuất hiện một danh sách thị trường để UI và AI có thể thúc đẩy " Cài đặt từ khu chợ" (được chú thích đến cài đặt) khi một khả năng không sẵn sàng cung cấp, không bao giờ bị hỏng.

Thị trường Nối

Công bố các kết nối của bạn OpsIQ Kết nối với hồ sơ.json kiến thức.json làm việc, lưu lượng công việc.json Khu tiếp thị hỗ trợ miễn phí và được trả tiền từ các dự luật đa nguồn.

Ký kết nối

Mọi kết nối được ký một cách mật mã để xác thực sự toàn vẹn. Việc ký tên sẽ được kiểm tra vào lúc cài đặt. Hãy dùng công cụ từ chức « all_ connects » để ký lại sau khi cập nhật.

SmartLookup

Hệ thống tương thích độ mờ cho hành động kết nối. Định nghĩa xem lại quy tắc và OpsIQ khớp các thư mục người dùng với các thực thể nền bằng các thuật toán mờ đục và thông minh. Ví dụ: tìm « _dân số » tương ứng với Đức 88.9% Tự tin.

Hợp đồng hành động

Tướng quân.OpsIQ APIxuất bản mọi thư mục đã đăng kýJSONthao tác như là một hành động có tên được phát hiện. Dùng siêu hành động cho tổng các hợp đồng đang sống và đã gõ chính xác; kết nối gói khác tuyên bố hành động của nhà cung cấp của họ thông qua bộ xử lý Hành động Hợp nhất.

Công thức & trình lọc

Những công thức được xây dựng sẵn để kết hợp nhiều hành động kết nối với nhau thành luồng công việc chung. ví dụ: "Khi có một trật tự mới xuất hiện Shopify Hãy tạo một vé, cập nhật CRM, và gửi thông báo của Slack."

Đồng bộ kiến thức

Các nhà cấu trúc kết nối tuyên bố các chủ đề tri thức đồng bộ với cơ sở kiến thức AI. Nền tảng trợ giúp cụ thể các bài, hướng dẫn thiết lập, và các bước cần thiết tự động sẵn sàng cho AI mà không có sự hiểu biết thủ công.

Nền tảng nhà phát triển

RORT API

Một cái tên JSON API bao gồm mỗi nhà quản trị đã đăng ký JSON thao tác, vớiAPI- Xác thực chìa khóa, cách ly không gian làm việc, phạm vi, mức độ giới hạn, giấy tờ tùy thân, OpenAPI, và bộ sưu tập bưu điện.

Webhooks

Các móc nối mạng bị giới hạn cho tất cả các sự kiện chính: lệnh, hóa đơn, đăng ký, vé, chats, dẫn đầu, đăng kí người dùng và gửi theo kiểu riêng qua hàng đợi công việc, thử lại cấp số nhân, bảo vệ SSRF, và tự động bỏ rơi sau đó có thể tự động. 15 Thất bại liên tiếp.

Ký Webhook

Tất cả các mạng lưới ngoài đều được ký kết.HMAC Xác nhận danh sách để đảm bảo tính xác thực của web, sự kiện ổn định.

Ô điều khiển SDK

JavaScript SDK cho ô điều khiển theo dõi với độ phân giải danh tính, theo dõi sự kiện tự chọn, điều khiển chat chương trình và cấu hình đặc trưng trang. Cài đặt công thức để phản hồi, Vue, Next.js, WordPress, Shopify và tĩnh HTML.

Bổ sung và SDK

Phần mềm SDK và bổ sung cho các khuôn khổ chung. WordPress bổ sung, WHMCS module, và thư viện tích hợp PHP/Node.js chung.

Sự kiện API

Đẩy sự kiện tự chọn vào OpsIQ từ hậu phương của bạn: mua, đăng nhập, sử dụng tính năng, lỗi hoặc bất kỳ sự kiện kinh doanh nào. Các sự kiện xuất hiện trong dòng thời gian khách truy cập và đưa vào ngữ cảnh phân tích và AI.

Kích hoạt Sổ tay nấu ăn

Xây dựng luồng công việc tự động được kích hoạt bởi sự kiện: vé mới, chat bắt đầu, người truy cập xác định, giai đoạn thỏa thuận đã thay đổi, hoặc sự kiện tùy chỉnh. Kích thích thực hiện hành động kết nối, gửi các móc nối, hồ sơ cập nhật, hoặc thông báo cho đội của bạn.

API Người xây dựng

Hiển thị API và Xây dựng KAlarm bên trong quảng cáo. Cấu hình điểm kết thúc, yêu cầu thử, kiểm tra phản ứng, và sự tích hợp gỡ lỗi mà không cần để lại OpsIQ.

Tổ chức và quản trị

Điều khiển truy cập dựa trên vai trò

Ba vai: Sở hữu (hoàn toàn truy cập, hóa đơn, vùng nguy hiểm), quản trị đầy đủ (tất cả các thao tác ngoại trừ Billing và vùng nguy hại), và Đặc vụ (chỉ các bộ phận được chỉ định, không có quyền truy cập). Tất cả các trang nhạy cảm đều bị kiểm tra theo vai trò.

Bảng điều khiển hiệu suất nhóm

Chủ sở hữu và chỉ quản trị toàn bộ bảng điều hành hiển thị thời gian giải quyết, phân phối công việc, xử lý độ sâu, các kênh bị hỏng, phân tích xu hướng,SLA Tuân lệnh,CSAT bởi đặc vụ, tỉ lệ tái mở cửa, đội quay và giờ bận rộn nhất. cập nhật trong thời gian thực.

Quản trị hiện diện và theo dõi trực tuyến

Trình phát hiện sự hiện diện dựa trên nhịp tim 60- Tín hiệu thứ hai, 300- mở rộng thứ hai, tự động phụ sau khi 120 Xem ban quản trị nào hiện đang hoạt động và trang nào.

Thiết lập không gian làm việc đơn

Mỗi nơi Mạng được kết nối (không gian làm việc) có thể có cấu hình AI riêng, thiết lập kết nối, các bộ phận vé, thương hiệu và quy tắc hoạt động. Mặc định toàn cầu đổ về vùng làm việc mà không chiếm quyền của chúng.

Quản lý nhiều chỗ

Quản lý nhiều trang web từ 1 OpsIQ Quản trị. Mỗi trang web có đoạn ghi chú theo dõi riêng, dữ liệu khách truy cập và cấu hình. chuyển đổi giữa các vị trí từ định vị quảng cáo.

Hệ thống mẫu thư điện tử

Các mẫu email được đăng ký cho mọi giao tiếp tự động: thông báo vé, bản ghi âm chat, chào mừng thư mục, thiết lập lại mật khẩu và cảnh báo hệ thống. Hãy sửa đổi. HTML Mẫu có ô xem thử trực tiếp, chip biến ({{customer_name}}, {{ticket_id}}), và điều khiển bố trí toàn cục.

Nhập và xuất

Nhập các bài học, liên lạc, vé và kiến thức từCSV/JSONXuất dữ liệu khách truy cập, báo cáo phân tích, và CRM Ghi chép, dữ liệu có khả năng di chuyển giữa các hệ thống.

An ninh, tuân thủ và hoạt động

Enterprise SSO

OIDC (Điều khiển OpenID Kết nối) đơn với thời gian chạy đầy đủ: phát hiện, cho phép, gọi lại, xác nhận chữ ký JWKS, người dùng thông tin, danh sách miền, hỗ trợ máy tính và bảo vệ trạng thái. SAML hỗ trợ cấu hình.

GDPR và làm theo dữ liệu

Xây dựngDSAR(Điều kiện truy cập vật thể) xử lý: xuất khẩu và xóa dữ liệu khách hàng trên tất cả các hệ thống.CRM Hồ sơ, bản ghi email, quản lý đồng thuận và các chính sách lưu trữ.

IP Bảo vệ vũ khí và vũ lực

Đặc biệt khối IPs hoặc khoảng từ truy cập trang web của bạn đến quản trị. Khóa tự động sau những nỗ lực đăng nhập thất bại có thể cấu hình được. Bảng ghi đăng nhập không thành công với IP, dấu thời gian và nhân viên người dùng.

HSTS và đội trưởng an ninh

Bảo mật giao thông HTTP chặt chẽ, quyền sử dụng đầu trang, và cấu hình cookie bảo mật. Việc tự thực hiện có thể thêm đầu đề hệ thống máy phục vụ.

Làm cứng cửa sổ ngoài

SSRF bảo vệ chặn các móc nối mạng tới Binh nhì/meadata IP Một giao dịch đặc biệt sẽ ngăn chặn các điểm kết thúc chậm khỏi ứng dụng của bạn. 15 Thất bại liên tiếp sẽ ngăn chặn sự lãng phí tài nguyên ở các điểm cuối.

cô lập vùng làm việc

Dữ liệu bị cách ly nghiêm ngặt giữa không gian làm việc, du khách, vé, chat,CRM Các cuộc đối thoại với AI được kiểm tra vào không gian làm việc của họ.

Trình quản lý chu kỳ tính tiền

Hỗ trợ cho chu kỳ định kì hàng tháng, bán năm, hai năm và cả đời.

Cron và tự động hóa theo lịch

Hệ thống cron xây dựng cho các nhiệm vụ đã được sắp xếp: báo cáo thế hệ, xóa dữ liệu, thay đổi đăng ký, cập nhật AI, đồng bộ hoá kết nối, và phục hồi kết nối. Chẩn đoán sức khỏe với chỉ thị cảnh báo.

Chính sách bảo vệ dữ liệu

Cấu hình xem các phiên họp người truy cập, bản ghi âm chat, lịch sử trò chuyện AI và bản ghi sự kiện được giữ lại bao lâu. Tự động làm sạch dữ liệu cũ để quản lý và tuân thủ các chính sách bảo mật.

Chẩn đoán và sức khỏe

Bảng điều khiển sức khỏe hệ thống hiển thị trạng thái cron, kết nối cơ sở dữ liệu, trạng thái cung cấp Al, sức khỏe kết nối, tỷ lệ giao lưỡi hái và cách sử dụng lưu trữ. Cảnh báo về các vấn đề cấu hình và khả năng co bóp.

Ai? OpsIQ là cho

Cửa hàng điện tử

Lưu

Hãy theo dõi tất cả các vị khách từ hạ cánh đến mua. Shopify/WooCommerce Dữ liệu lớn. Quản lý vé hỗ trợ với hệ thống điều hành tự động. Chạy một đường ống giao dịch cho thương mại và B2B dẫn doanh thu về nguồn giao thông và chiến dịch.

Các công ty phần mềm SaaS

SaaS

Theo dõi việc ký tên và nhận dạng tính năng với khả năng xem lại phiên chạy. Theo dõi trang tài liệu nào chuyển đổi. Hỗ trợ tự động với AI được dựa vào phiên chạy của bạnAPICác bác sĩ. Quản lý các giao dịch mở rộng và thu nhập dài hạn trên hệ thống CRM. Kết nối nền tảng hoá đơn (Stripe, WHMCSĐể theo dõi MRI thời gian thực. sử dụng nhân viên CM để phát hiện và ngăn chặn rối loạn.

Những người nam và tự do

Cơ quan

Cung cấp nhãn trắng phân tích và các cổng hỗ trợ khách hàng. Theo dõi dẫn ngang nhiều nơi khách hàng từ một quảng cáo. Dùng đường ống CRM để quản lý triển vọng và dự án. Xây dựng kết nối tùy chỉnh cho nền tảng máy tính khách sử dụng trình xây dựng kết cấu. Tạo ra báo cáo SEO với Máy phát minh Side. resell kết nối tới các dịch vụ thêm giá trị.

Tiếp xúc với cơ sở hạ tầng

Máy

Sâu WHMCS Kết hợp với 80 Hành động AI để tìm kiếm thứ tự, quản lý dịch vụ, DNS và cung cấp. Tự động trả lời các câu hỏi thông thường bằng các bài cơ bản tri thức. Theo dõi sự đính hôn trang trạng thái máy chủ. Quản lý vé hỗ trợ kỹ thuật với tài khoản AIage. Dùng thang vòng lặp cho việc quản lý hàng tháng qua các kế hoạch tổ chức đời.

Hỗ trợ doanh nghiệp nặng nề

Hỗ trợ

Con trượt 40-70% Các câu hỏi liên tục với AI chat dựa trên nền tảng kiến thức của bạn SLA Tuân lệnh, và CSAT Dùng trí tuệ để soạn thảo trả lời chuyên nghiệp. theo dõi xu hướng hỗ trợ với các AI am hiểu.

Khu chợ vàSEOĐội

Khu chợ

Bộ quản lý thông tin tình báo Site: thu thập dữ liệu, kiểm tra kỹ thuật SAO, phân tích nội dung, theo dõi cấp độ SERP, nghiên cứu từ khoá, giám sát kết nối ngược, và mạng lưới SEO địa phương. Quản lý hồ sơ Google. lập lịch trình cho các báo cáo màu trắng nhãn cho khách hàng. A/B được xây dựng vào thiết bị theo dõi điều khiển.

Những người sáng lập Solo và những đội nhỏ

Khởi động

Bắt đầu với chỉ theo dõi và trò chuyện, thoải mái thêm, sau đó thêm vé khi bạn nhận được âm lượng hỗ trợ.CRM Khi bạn bắt đầu bán, hãy kết nối các nền tảng khi bạn nhận nuôi chúng.OpsIQcân từ một người làm tất cả mọi thứ đến một50- Nhóm tác chiến với RBAC, bộ phận, và đội theo dõi hiệu suất hàng đầu.

Tập đoàn và đa thương hiệu

Doanh nghiệp

Enterprise SSO với OIDC để xác thực trung tâm. cô lập không gian đa công việc cho các thương hiệu hoặc phân vùng riêng biệt. Cấu hình trên không gian làm việc với các nhà cung cấp và mô hình khác nhau. Phát triển kết nối tùy chỉnh với phân phối thị trường. GDPR Công cụ tuân thủ, và chính sách lưu trữ dữ liệu.

Sao? OpsIQ Thay thế

Google Analytics + Hotjar + Tiện ích

Toàn bộ trang web phân tích với theo dõi khách thăm quan, phiên họp lại, xếp hạng trang, địa lý thông minh, mục đích, chuyển đổi đường ống, sự kiện, thí nghiệm A/B, và JS lỗi theo dõi, tất cả các tính cách thân thiện, trong một nền tảng.

Giao thoa + Dlip + Tidio

Nói chuyện với các khách hàng có sức mạnh với kiến thức cơ bản, hỗ trợ trí tuệ đa ngành, giao dịch tự động với con người, quy tắc trò chuyện chủ động, lịch sử đối thoại,CSAT Các cuộc khảo sát, và vé máy bay từ chat.

Zendesk + Furpdesk+ Trợ giúp Hướng đạo sinh

Hệ thống vé bản địa với các bộ phận, ưu tiên, SLA, phân loại AI, tự động trả lời với thời gian trì hoãn cấu hình được, ăn uống email, gắn vé, sáp nhập vé, hộp thư điện tử copilot và khả năng trở lại AI.

Trung tâm và Hệ thống ống + Lực lượng bán hàng

AI-first CRM với bốn đại lý AI chuyên nghiệp (Steward, SDR, Retention, Analyst), kiểm soát tự chủ Trust Dial, bảng ống dẫn, huấn luyện hợp đồng, dự đoán, chuỗi, quản lý vòng đời và cấu hình ngôn ngữ tự nhiên CRM.

Ahrefs + SEMrush + Moz

Tình báo Site với dữ liệu tự động, kiểm tra kỹ thuật, phân tích nội dung, tìm kiếm thông tin nội dung của AI, theo dõi cấp độ SERP, nghiên cứu từ điển, phân tách kết nối, mạng lưới mật mã SEO địa phương và các báo cáo về nhãn trắng.

Trình chọn & màu

Nối SDK có 25+ các kết nối đã được xây dựng sẵn, cầu nối Xây dựng (không mã số/AI hỗ trợ/ đầy đủ) OAuth Dòng chảy, máy móc tự động điều chỉnh, một danh mục lớn các định nghĩa hành động kết nối chỉ có thể thực hiện được khi cài đặt, kích hoạt, cấu hình và xác nhận, thông minh lookup, thị trường và các gói đã ký.

Bộ quản lý hồ sơ kinh doanh Google

Toàn bộ kết nối GBP: quản lý duyệt, sau xuất bản, quản lý Q&A, tải ảnh lên, đồng bộ thông tin kinh doanh, theo dõi, và phản ứng phê bình AI, tất cả từ bên trong OpsIQ.

Công cụ mẫu email riêng

Các mẫu email có sẵn bằng hình ảnh với trình biên tập trực quan, xem thử trực tiếp, các thẻ biến, điều khiển bố trí toàn cầu, và tùy chỉnh mỗi phiên bản cho mọi giao tiếp tự động.

Bảng điều khiển nhóm

Hoạt động trong đội: giải quyết thời gian, tải công việc,SLA Tuân lệnh,CSAT bởi đặc vụ, tỉ lệ mở cửa lại, giờ bận rộn nhất, theo dõi sự hiện diện thời gian thực, và việc phân chia.

GDPR Công cụ tuân theo

Sở hữu DSAR Xử lý, xóa dữ liệu thông qua tất cả các hệ thống, quản lý sự đồng ý, các chính sách dự phòng, và kiểm toán, được xây dựng trên nền tảng, không bị khóa lại.

2 phiên bản

Đã máy

OpsIQ Chạy trên cơ sở hạ tầng quản lý. hoạt động sản xuất là giống nhau; cơ sở vật chất, cập nhật và hỗ trợ được quản lý bởi người tổ chức.OpsIQ Chạy hơn là tiếp thị hoặc tài khoản thương mại dòng chảy.

Mô- đun tự động

Cài đặt OpsIQ trên máy phục vụ riêng của bạn để kiểm soát toàn bộ dữ liệu, thương hiệu, cập nhật và tích hợp. Cần thiết PHP 8.4+, MySQL 5.7+ hay MariaDB 10.3+, HTTPS, và OpsIQ Sự hỗ trợ của cron WHMCS Sự kết hợp như một thành phần phụ tá, thống trị toàn bộ dữ liệu.

Yêu cầu thứ tự đọc

1
Mau bắt đầu

Đi theo 30- hướng dẫn lắp đặt phút để theo dõi, trò chuyện và tìm kiếm thông tin cơ bản trên trang web của bạn.

2
Bảng và phân tích

Hãy học cách đọc dữ liệu khách truy cập, lập lại phiên họp, xác định các đầu mối và hiểu các kiểu mẫu giao thông.

3
Thông minh định sẵn

Chạy đầu tiên SEO Bò, kiểm tra sức khỏe kỹ thuật của bạn, và thiết lập cấp độ SERP theo dõi các từ khóa mục tiêu của bạn.

4
Hỗ trợ

Thiết lập bộ phận, cấu hình tự động-tiếp cận với AI, kết nối email, và đào tạo AI của bạn để xử lý các câu hỏi thông thường.

5
CRM

Tổ chức các liên lạc, xây dựng đường ống, cấu hình các đặc vụ AI, thiết lập mức độ quay số tín nhiệm, và để AI hướng dẫn các thỏa thuận của bạn.

6
Công cụ tạo và kết nối

Kết nối nền tảng e-commerce/billing của bạn, xây dựng các kết nối tuỳ chỉnh, thiết lập các móc cắm web, và tích hợp thông qua hệ thống RET API.

💡
Mới sang OpsIQ• Bắt đầu với hướng dẫn bắt đầu nhanh bên dưới. Bạn có thể theo dõi và giao tiếp kiểu cơ bản Al chạy dưới 30 phút.
Bắt đầu từ đây

Mau bắt đầu đi 30 phút

Theo những bước này để có được OpsIQ chạy. mỗi bước được xây dựng trên bước trước. bạn sẽ có người truy cập theo dõi, trò chuyện AI và hỗ trợ vé.

Thiết lập
Danh sách bắt đầu nhanhMột bảng kiểm tra thiết lập hướng dẫn hiển thị các ô điều khiển cài đặt, nền tảng kết nối, đào tạo AI, đội mời và đi sống, với một 60 % thanh tiến trình.Bắt đầusetupCài đặt OpsIQ Ô điều khiểnXU - LEKết nối một nền tảng (WHMCS, Shopify...)XU - LEHuấn luyện AI của bạn về nội dung của bạnXU - LEMời đội của anh đếnKiểm tra và đi trực tiếpCài đặt tiến trình3 Tháng Ba 5 · 60%1STEP 1Cài đặt ô điều khiển2STEP 2Kết nối tàu Al3STEP 3Mời & đi trực tiếp
Hạt 30-con đường phút: cài đặt các thiết bị, kết nối một nền tảng, đào tạo AI của bạn, mời đội, rồi trực tiếp.

Hạt 30- Dàn xếp phút

1
Kích hoạt bằng lái

Nhập khóa chứng nhận vào OpsIQ Adam. Tới Thiết lập, nhập khóa chứng nhận được cung cấp cho cài đặt này, rồi nhấn vào nút Kích hoạt. Bạn sẽ thấy một phù hiệu xanh lá cây « Hoạt cảnh ».

2
Đặt danh tính doanh nghiệp của bạn

Tới thiết lập và điền vào tên doanh nghiệp, công nghiệp, múi giờ, tiền tệ mặc định và trợ giúp hỗ trợ. Thông tin này được dùng bởi AI khi trả lời câu hỏi của khách hàng và bởi phân tích cho báo cáo múi giờ.

3
Chọn một nhà cung cấp AI

Tới Cấu hình AI và chọn nhà cung cấp. Tùy chọn: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google), hoặc Grok (xAI). Nhập vào bạn API Phím nếu sử dụng phím riêng, hoặc sử dụng AI đã được quản lý nếu bạn có thể lên kế hoạch. Nhấn "Test connection" để xác minh.

4
Cài đặt ô điều khiển theo dõi

Go to Connected Sites, copy the tracking snippet, and paste it before the closing </body> tag on your website. Visit your site in a private browser, then check the Live Feed in OpsIQ. You should see yourself as a visitor within 15 seconds.

5
Kết nối nền tảng của bạn

Nếu anh dùng... Shopify, WooCommerce, WHMCS hoặc một nền tảng được hỗ trợ khác, hãy đến cầu nối, tìm nền tảng của bạn, nhập thông tin và nhấn kết nối thử ra. Điều này cho phép AI truy cập dữ liệu, hồ sơ khách hàng và ngữ cảnh hỗ trợ.

6
Mời đội của anh đến

Tới gặp đội, nhấn vào chỗ có khách, nhập email và vai trò của họ (Owner, full Admin, hoặc đặc vụ). Đặc vụ chỉ có thể truy cập các bộ phận bạn chỉ định.

Con đường nhanh nhất có thể (5 phút

Step 1: cài đặt ô điều khiển

Chép đoạn trích từ điểm kết nối và dán nó lên trang web của bạn. Nó cho bạn truy tìm ngay lập tức.

Step 2Bật AI

Tới cấu hình AI, chọn nhà cung cấp, gõ phím và lưu. chat AI bây giờ được bật trên trang Mạng của bạn.

Hoàn tất

Bây giờ bạn có người đến thăm theo dõi và trò chuyện với Al.CRM và kết nối sau.

Ngày 2: làm cho nó hữu ích

Thêm kiến thức

Hãy đi đến cơ sở hiểu biết và thêm vào 5-10 AI dùng những câu hỏi này để trả lời chính xác cho khách hàng.

Tạo bộ phận

Đánh dấu và tạo ít nhất 2 bộ phận (v. d., "Sales" và "Support". Hãy phân công các thành viên nhóm cho mỗi người.

Viết thư cho bạn

Hãy đến lớp đào tạo AI và viết một cuốn sách về khách hàng (I) để miêu tả công việc, giọng điệu và các quy tắc leo thang của bạn.

Kiểm tra một cuộc đối thoại

Mở trang web của bạn trong trình duyệt riêng và trò chuyện với AI như một khách hàng. Hãy kiểm tra xem câu trả lời là chính xác và sắc điệu là đúng.

Tuần 1: Hãy xây dựng hoạt động của bạn

Kết nối thư điện tử

Thiết lập một hộp thư (Gmail, IMAP hoặc một nhà cung cấp kết nối) do đó, thư điện tử tự động tạo vé.

Tự động cài đặt

Bật khả năng tự động đặt vé cho bộ phận an toàn. Đặt a 2- chậm lại để con người có thể can thiệp trước.

Xem lại những phân tích

Kiểm tra bảng thông tin hàng ngày. Xem số đếm của khách truy cập, tỷ lệ bật lên, trang đầu và doanh số nếu có kết nối.

Bắt đầu đi.CRM

Mở AI CRM và để OpsIQ Các liên lạc từ các nền tảng đã kết nối.

Tháng 1: Optimize

Xem lại lịch sử Al

Hãy kiểm tra trí tuệ của Al History hàng tuần: tìm kiếm những câu trả lời sai, bỏ lỡ các câu hỏi và cơ hội để thêm vào tri thức.

Thêm quy tắc hoạt động

Tạo một quy tắc: nếu người xem có giá trị trên trang web cho 60+ giây, hiển thị một tin nhắn chat yêu cầu nếu họ cần giúp đỡ.

Tạo một kết nối

Nếu bạn sử dụng một nền tảng không có một kết nối xây dựng sẵn, hãy dùng bộ xây dựng kết nối để tạo ra nó.

Cài đặt các móc cắm Mạng

Kết nối OpsIQ dùng những cái móc ngoài để mua vé, chat và bán hàng.

Tôi có thể bỏ qua AI và chỉ sử dụng theo dõi?+

Vâng, nhà cung cấp AI là tùy chọn. OpsIQ Làm việc như một nhà phân tích thuần túy và một nền tảng vé mà không cần AI. Bạn có thể cho phép AI sau này khi bạn đã sẵn sàng.

Tôi có thể bỏ qua các thiết bị kết nối và thêm vào sau không?+

Vâng, những người kết nối làm giàu cho AI với dữ liệu cụ thể, nhưng OpsIQ Bắt đầu với theo dõi và trò chuyện, sau đó kết nối các nền tảng khi cần thiết.

Nếu tôi chưa có trang web thì sao?+

Anh vẫn có thể dùng. OpsIQ Cho vé, CRM, và hợp tác với đội. Ô điều khiển theo dõi là tùy chọn. Thêm nó khi trang web sẵn sàng.

Làm sao tôi biết được nếu thiết bị đã được cài đặt đúng?+

Thăm nơi Mạng của bạn trong trình duyệt cá nhân/incognito. Sau đó kiểm tra OpsIQ Anh nên thấy cuộc viếng thăm của anh xuất hiện bên trong. 15 Nếu không, hãy kiểm tra: (1) là các mảnh dán chính xác, (2) là chìa khóa nơi trang web đúng, (3) là những người chặn quảng cáo hoặc những người đứng đầu hệ thống âm mưu chặn chữ.

Bắt đầu từ đây

Bản đồ sản phẩm hoàn chỉnh

OpsIQ Đây là một hệ thống hỗ trợ AI, vé/helpdesk, toàn bộ CRM với 4 đặc vụ AI, một bộ thông tin tình báo Site, một nền tảng kết nối với thị trường, và một bề mặt phát triển.

Quản trị điều hành

Bảng dữ liệu trực tiếp, nhật ký khách truy cập, các phiên điều khiển, phiên họp, trang đầu, thông tin địa lý, thông minh địa hình, thông báo sự kiện, bản ghi chú sự kiện A/B thí nghiệm, JS lỗi theo dõi, bán hàng và cải đạo, dẫn đầu, AI CRM (Trung tâm chỉ huy, liên lạc, công ty, thương mại, bảng điều khiển giao dịch, quản lý tài liệu, dự đoán, sắp xếp, chuỗi, xe đạp, quản lí dữ liệu, xây dựng CM, CRM, CM. API), vé, hộp chat, luật hoạt động, các cuộc thăm dò CSAT, bản nháp email, cấu hình tài liệu, AI đào tạo, lịch sử AI, kiến thức cơ sở, kết nối, nhà xây dựng, thị trường, các trang web kết nối , quản lý nhóm, hiệu suất đội, thiết lập, chẩn đoán và giấy phép.

Các bề mặt tự chọn

Ô điều khiển theo dõi web (máy tính bảng hiệu + trò chuyện và tìm kiếm vé tương ứng với dữ liệu cơ bản), trạm khách Al chat, cổng gửi vé, thẻ căn cước khách truy cập đang xử lý, tải lên tập tin, điều khiển khảo sát kiểu CSAT, và trung tâm trợ giúp khách hàng.

CRM AI-First

Trung tâm điều khiển, liên lạc, các công ty, thương lượng, bảng đường ống với kéo và thả, AI giao dịch huấn luyện (dấu hiệu rủi ro, hành động tiếp theo, giành được xác suất), doanh thu dự đoán, đại lý dự đoán (SDR), tự động theo dõi chuỗi, xe đạp cứu hộ và quản lý lại, quản lý dữ liệu (được bảo trì, phong phú, đáng tin cậy), xây dựngCRM(Tiếng nói tự nhiên)CRMcấu hình,CRMKiểm tra sức khỏe, quay số tín dụng (cơ quan điều khiển/ phụ lái/người lái mỗi tác nhân), bốn đặc vụ chuyên biệt (Steward, SDR, Retention, Analyst) vàCRM APIvới những cái móc mạng.

Phòng tình báo Site

Trang web tự động thu thập, kỹ thuật SEO Kiểm tra tốc độ, di động, Cơ quan Quản lý Mạng,SSL, chuyển hướng, dữ liệu cấu trúc), kiểm tra nội dung (từ ngữ, khả năng đọc, mật độ từ khóa, cấu trúc định hướng), tìm kiếm ngôn ngữ AI, cấp bậc SERP theo dõi qua các động cơ, nghiên cứu từ khoá với sự đánh dấu cơ hội, kết nối ngược và giám sát địa phương,SEO Hình ảnh hóa mạng, hồ sơ Google Business (xem, đăng, Q&A, hình ảnh, sự hiểu biết), các báo cáo được lên lịch (ngày/ tuần/ tháng) và nhãn trắngPDFxuất khẩu cho các cơ quan.

AI và tự động hóa

Cuộc trò chuyện giữa khách hàng và người tham quan. Gemini, Grok), phụ tá AImin Al, kiến thức nền, tự động sử dụng với cấu hình AI trên không gian, quản lý AI và BYOK Chế độ, ngân sách hiệu quả và kiểm soát chi phí, theo dõi lịch sử AI, phân tích trí tuệ, vé AIage, vé máy tính với sự chậm trễ, viết AI (lúc phân chia), và điều khiển admin trong hộp.

Kết nối và trộn

25+ bộ kết nối được xây dựng sẵn (Shopify, WooCommerce"BulCommerce,Magento 2, PrestaShopOpenCart,osCommerce, WordPress, WHMCS, Zendesk, Stripe, Amazon SES,Postmark, Resend,SendGrid, Mailgun, Gmail, IMAP, Slack, Google Business Profile), Conver Xây dựng (không mã/AI- consated/full- code), thườngOAuthDòng chảy với PKCE, kết nối thị trường với sự phân phối trả tiền, kết hợp và xác thực, Smart Lookup tương ứng mờ, một danh mục lớn định nghĩa hành động HTTP mà có thể sử dụng phụ thuộc vào cài đặt kết nối, hiệu lực, cấu hình và hợp lệ hóa, đồng bộ kiến thức và công thức làm việc.

Nền tảng nhà phát triển

RORTAPI(Tiếng giám sát, sự kiện, vé, liên lạc, thiết lập, kết nối), OpenAPI,API Quản lý chìa khóa, móc nối mạng bị giới hạn (một định kỳ, ký tên, tái kết nối, bảo vệ SSRF, khả năng tự động bỏ đi), sự kiệnAPI cho sự kiện tự chọn nuốt chửng, ô điều khiển SDKvới độ phân giải danh tính, kích hoạt sách nấu ăn, hợp đồng hành động, kết nối SDKđóng gói thị trường, bên SDK (PHP, Node.js), WordPress bổ sung, và WHMCS module.

Thiết lập và hoạt động

Nhân dạng kinh doanh, cấu hình AI trên không gian làm việc, theo dõi thiết lập, bảo mật (HSTS, quyền hạn-Picy, IP ngăn chặn, bảo vệ sức mạnh thô bạo, RBAC (Owner/ Admin/Agent), quản lý nhóm và giấy mời, bảng điều khiển hiệu suất đội tuyển, quản lý tiền tệ, hệ thống mẫu email (đã được thử nghiệm, biên tập thị giác, biến số), nhà thiết kế khảo sát, kiến thức địa điểm, cấu hình vé, nhãn hiệu, chính sách đóng dấu, tính toán hóa đơn tuần hoàn (theo tháng) quản lý hoá tiền tệ thông thường, nhập khẩu/ xuất khẩu, chẩn đoán, tự động, và vùng nguy hiểm.

An ninh và tuân theo

Enterprise SSO (OIDC với JWKS xác nhận, JIT cung cấp) SAML cấu hình, GDPR/DSAR Xử lý (seport and Di chuyển trên tất cả các hệ thống), xóa dữ liệu bảo mật trên mỗi liên lạc, đồng ý quản lý, cách ly không gian làm việc (trích dẫn truy cập), theo dõi kiểm tra, truy cập không thành công, IP Chặn lại, bị chặn ở ngoài mạng lưới bảo vệ SSRF, và chính sách lưu trữ dữ liệu.

Cầu nhà cung cấp

Quản lý AI proxid thông qua OpsIQ Nhà cung cấp URL Nhà cung cấp tình báo Site, bằng lái, báo cáo sức khỏe, PDF Vẽ, và xuất khẩu dữ liệu, tất cả đều được định hướng qua điểm kết thúc đã cấu hình nhà cung cấp, không phải trực tiếp nhà sản xuất API Gọi từ máy chủ của anh.

Mỗi trang manmin

Bảng thông tin

lõi

Trung tâm điều khiển hàng ngày: thông tin tổng quát giao thông, số lượng khách truy cập trực tiếp, tóm tắt bán hàng, hỗ trợ độ sâu hàng đợi, hoạt động AI cảnh báo, và các đường tắt hành động nhanh chóng.

Thức ăn trực tiếp

Phân tích

Dòng khách thời gian thực: xem trang, chat bắt đầu, gửi các tín hiệu và mục đích cập nhật mỗi vài giây với quốc gia, thiết bị, và bộ lọc tham chiếu.

Bản ghi người thăm

Phân tích

Hoàn tất các hồ sơ thăm viếng: thiết bị, trình duyệt, hệ thống điều hành, đất nước, thành phố, tham chiếu, chương trình UTM, trang hạ cánh, danh tính, và lịch sử xem trang đầy đủ.

Phiên chạy

Phân tích

Xem hành trình: dòng trang, thời gian trên trang, độ sâu cuộn, đường dẫn chuyển đổi và trang thoát cho mỗi phiên truy cập.

Phát lại phiên

Phân tích

Chương trình phát lại các sự kiện đã bị chụp: di chuyển chuột, click, cuộn giấy, chuyển tiếp trang và tạo hình tương tác với chẩn đoán UX.

Trang đầu

Phân tích

Loại hiệu suất trang: thăm viếng, thời gian đính hôn, tốc độ nhảy vọt, chuyển đổi, tương tác hỗ trợ và hướng đi của xu hướng.

Thông minh địa lý

Phân tích

Các báo cáo địa lý: nạn phá hoại đất nước với bản đồ, sự phân phối thiết bị, cổ phần duyệt, nguồn giao thông và thâm nhập thị trường.

Ý định là ống dẫn

Phân tích

Theo dõi mục đích hành vi: thăm viếng giá cả, tần số trả về, duyệt web, hỗ trợ tương tác và tín hiệu tùy chỉnh với xác suất chuyển đổi.

Bản ghi sự kiện

Phân tích

Lịch sử sự kiện tìm kiếm: xem trang, sự kiện riêng, chats, mua, đơn nộp dữ liệu đầy đủ và lọc.

Thí nghiệm A/B

Phân tích

Thử nghiệm tách biệt: tạo biến thể, cấp phát hành giao thông, định nghĩa mục tiêu, đo tầm quan trọng, và tuyên bố người chiến thắng, tất cả từ bên trong OpsIQ.

Lỗi JS

Phân tích

Lỗi giao diện người dùng ghi lại: tin nhắn, chồng dấu vết, trình duyệt bị ảnh hưởng, tần số, trang bị ảnh hưởng và theo dõi xu hướng.

Bán

Bán

Bảng điều khiển tái thiết: mệnh lệnh, sự thay đổi, hoàn tiền, quyền lợi từ nguồn gốc, hiệu suất chiến dịch, so sánh trong thời gian và phân tích xu hướng.

& Dẫn

Bán

Quản lý chính: đánh bắt, khai thác nguồn,CRM Tình trạng, chi tiết liên lạc, tín hiệu hành vi và định tuyến đường ống.

Al CRM

CRM

Đầy đủ CRM Trung tâm chỉ huy, liên lạc, các công ty, thương vụ, bảng dẫn đường, huấn luyện, dự báo trước, triển vọng, trình tự, xe đạp cứu hộ, quản lý dữ liệu và sức khỏe.

Hỗ trợ

Hỗ trợ inbox: các bộ phận, ưu tiên, theo dõi SLA, AI triage, tự động-reply, ghi chú nội bộ, hồ sơ đính kèm, kết hợp và quản lý trạng thái.

Hộp thoại

Hỗ trợ

Cuộc trò chuyện trực tiếp: Al và chat con người, cởi tay ra, hợp tác, lịch sử trò chuyện, danh tính khách hàng và bộ sưu tập CSAT.

Bản nháp email

Hỗ trợ

Quản lý thư điện tử: đang gửi thư đến các vé, tạo thành phần trả lời có hỗ trợ, chọn mẫu và cấu hình hộp thư.

AI conbig

Al

Thiết lập nhà cung cấp: chọn Claude/GPT-4o/Gemini/Grok, vào API Chìa khóa hoặc hiệu lực khả năng quản lý AI, thiết lập mô hình, nhiệt độ và ngân sách làm việc trên không gian.

AI đào tạo

Al

Nhắc tác giả: các nhắc khách hàng và các bước ra lệnh, các quy tắc leo thang, hướng dẫn âm thanh, chủ đề cấm, và cấu hình giới hạn.

Lịch sử Al

Al

Kiểm tra thoại: yêu cầu/tải trả lời đầy đủ nhật ký, sử dụng đồ vật thể có hiệu quả, chi phí cho mỗi cuộc trò chuyện, nhà cung cấp, phiên bản mô hình và kết quả độ phân giải.

Hiểu rõ AI

Al

Phân tích mẫu: những câu hỏi thông thường, mức độ phân giải, tần số chia tay, sự hài lòng về chủ đề và cách nhận diện thiếu sót.

Cơ sở tri thức

Al

Nội dung đào tạo AI: bài viết, mục nhập FAQ, tiến sĩ sản phẩm, kiến thức kết nối và mục nhập riêng. Tìm kiếm từ khoá để tìm kiếm nền tảng của AI.

Trình kết nối

Tích hợp

Trung tâm liên kết: cài đặt các mối quan hệ, tình trạng sức khỏe, kiểm kê hành động, quản lý thị trường, trình duyệt thị trường và nhà xây dựng kết nối.

Các nơi đã kết nối

Thiết lập

Quản lý chỗ ngồi: theo dõi đoạn trích, khóa nơi Mạng, cấu hình ô điều khiển, thiết lập miền và cách biệt vùng làm việc hàng ngày.

Đội

Thiết lập

Quản lý người dùng: mời các thành viên, ủy nhiệm vai trò (Owner/ tổng số quản trị/Agent), đặt quyền truy cập bộ phận và quản lý quyền hạn.

Đội ngũ hiệu suất

Thiết lập

Sĩ số: thời gian phân giải, số lượng công việc,SLA Tuân lệnh,CSAT bởi đặc vụ, tỉ lệ mở cửa lại, giờ bận rộn nhất, và phân tích xu hướng.

Thiết lập

Thiết lập

Cấu hình: danh tính doanh nghiệp, thiết lập AI, theo dõi, bảo mật, thương hiệu, lưu trữ, mẫu email, hóa đơn, nhập khẩu/ cổng, chẩn đoán và vùng nguy hiểm.

Giấy phép

Thiết lập

Quản lý kế hoạch: đăng nhập, tính năng kế hoạch, đo lường, ngày tháng mới và tùy chọn nâng cấp/ xuống.

Bắt đầu từ đây

Đã dẫn đường lên tàu

Cuộc hành trình trên tàu biến một cơ sở mới thành một công việc OpsIQ Không gian làm việc và có thể để lại và tiếp tục mà không mất đi sự tiến bộ.

Màn hình sản xuất
Đang trên máy bayTrên tàu cho thấy mỗi vùng được thiết lập, trạng thái hiện tại và hành động tiếp theo cần hoàn tất.Đang trên máy bayMiền làm việcPROGRESS60%COMPLETED6Tiếp theoNơi MạngQUAN ĐIỂM CÔNG VIỆC SỐNGGiấy phépKiểm tra giấy phép sản xuấtHoàn tấtNhà cung cấp AIChọn nhà cung cấp và khoá thử raHoàn tấtNhãnGiọng nói và đặc điểm kinh doanhHoàn tấtNơi MạngThêm nơi Mạng và cài đặt ô điều khiểnKế1COMPLETE BASICSGiấy phép, nhãn hiệu, AI2CONNECT DATANơi Mạng và Kết nối3VERIFY LAUNCHĐội, email, séc
Trên tàu cho thấy mỗi vùng được thiết lập, trạng thái hiện tại và hành động tiếp theo cần hoàn tất.

Bộ trình bày:

  1. Bằng lái: Xác nhận bằng lái và xác nhận không gian làm việc đang hoạt động.
  2. Nhà cung cấp AI: chọn nhà cung cấp/ Mô- đun, nhập thông tin và chạy kiểm tra kết nối. Al có thể bỏ qua nếu vùng làm việc đầu tiên dùng phân tích và vé.
  3. Danh tính doanh nghiệp: Đặt tên, công nghiệp, mô tả, âm thanh khách hàng và các chi tiết thương hiệu được sử dụng bởi các thiết bị điều khiển và AI.
  4. Nối Bật ít nhất một nền tảng bên ngoài khi OpsIQ Cần đặt hàng, khách hàng, vé, email hoặc các bối cảnh khác.
  5. Nơi Mạng và Ô điều khiển: tạo không gian/công việc, sao chép các phím trang web và xác nhận một cuộc viếng thăm riêng ở Live Trader.
  6. Đội và định tuyến: mời các quản lý/người đại diện, tạo bộ phận, đặt độ phân giải email và xác nhận lại sự ưu tiên thông báo.
  7. Kiểm tra mạng: chat thử nghiệm, vé, đồng bộ kết nối, cron, email bị chặn, móc kéo và thủ trưởng an ninh.

Các cửa hàng lưu trữ hoàn tất trên không gian làm việc. Trở lại khi lên máy bay nên hiển thị các bước đã hoàn thành thay vì bắt đầu lại.

Bắt đầu từ đây

Quản trị định vị và cho phép

Hạt OpsIQ Thanh nằm bên là ý thức về sự cho phép. Bản đồ này giải thích nơi mỗi vùng hoạt động sống và tại sao không thể hiển thị một trang cho mọi nhà quản trị.

Màn hình sản xuất
OpsIQ định hướngCác nhóm thanh bên OpsIQ Qua khu vực làm việc; các liên kết cá nhân chỉ xuất hiện khi vai trò hiện tại có thể sử dụng chúng.OpsIQ định hướngMiền làm việcGROUPS8TRANGDựa vào quyền hạnSEARCHSẵn sàngQUAN ĐIỂM CÔNG VIỆC SỐNGHỗ trợVé, email, CSAT, kiến thứcMởCRMLiên lạc, đường ống, thương lượng, tìm kiếmMởTự động hoáCông việc, luật lệ, mục tiêuMởBảo mậtXem xét toàn bộ, kiểm toán, đồng ý, các khu nhàQuản trị1PICK A GROUPKhớp thanh bên2CHECK ROLEẨn nghĩa là giới hạn3USE PAGE HELPMở phần khớp
Các nhóm thanh bên OpsIQ Qua khu vực làm việc; các liên kết cá nhân chỉ xuất hiện khi vai trò hiện tại có thể sử dụng chúng.
Hỗ trợ

Vé, đài email của đội, CSAT, trung tâm Trợ giúp và G chatbot.

CRM

Các bề mặt bán hàng hàng ngày:CRM Nhà, trung tâm chỉ huy, liên lạc, đường ống, dự báo, xe đạp cứu hộ, triển vọng, phân đoạn, bảng điều khiển, hợp đồng quản lý dữ liệu, công cụ phát triển và dòng hoạt động.

Tự động hoá

Các dòng công việc liên quan đến sự kiện, quy tắc của xe đạp và mục tiêu chuyển đổi cuộc sống.

Khu chợ

Ra ngoài, thông điệp chủ động, thông báo, phòng thu Promotion, Phòng khảo sát, thúc đẩy các chiến dịch và hướng dẫn du lịch.

Phân tích

Báo cáo bề mặt đầu tiên — phân tích căn cứ, độ sâu của trí tuệ, doanh thu, khách hàng, manh mối, ống dẫn, A/B kiểm tra lại phiên chạy, bảng điều khiển và báo cáo thời gian biểu tùy chỉnh — với khách truy cập thô, phiên họp, trang, địa lý và các bản ghi sự kiện trong một phần mềm dữ liệu thô.

Trang đứng

Tình báo Site, đội thực hiện và phản công ngồi ngoài nhóm như mục trực tiếp.

Tích hợp

Kết nối, hành động và kích hoạt, hộp thư, bản nháp, thiết lập email, điểm kết nối, các nút cắm ngoài cùng vàAPIChìa khóa.

Bảo mật

Bảo mật tổng quát, quyền riêng tư và sự tuân thủ, đồng ý cookie, hoạt động kiểm toán, đăng nhập không thành công, bị chặnIPsvàJavaScriptlỗi.

Thiết lập

Cơ bản không gian làm việc (các nhóm, trang web, ngôn ngữ), sau đó các phần phụ có thể hợp tác: bộ não AI (công cụ, cấu hình, đánh giá, lịch sử)CRM Thiết lập (người xây dựng, trường tùy chỉnh, điểm nối chì, sức khỏe), Data & Health (người chẩn đoán, xuất khẩu) và bắt đầu (trên bảng điều khiển, trợ giúp).

Trang không thể mở được bị ẩn khỏi thanh nằm bên. Trang này không chứa kế hoạch hiện thời, cũng không thể hiển thị bằng một Nâng cấp thẻ và mở một màn hình nâng cấp mới.

Các tuyến trực tiếp vẫn được kiểm tra bên máy chủ. Ẩn một liên kết khung nằm bên không phải là ranh giới bảo mật: mỗi hành động được bảo vệ phải vượt qua quyền hạn và kiểm tra vùng làm việc của nó.

Phân tích

Trung tâm phân tích

Trung tâm phân tích mang lại sự hỗ trợ, chat, AI, khách truy cập và đại lý báo cáo vào một không gian làm việc hẹn hò với kết quả xuất khẩu được.

Màn hình sản xuất
Trung tâm phân tíchPhân tích Trung tâm cho thấy phạm vi ngày tháng, thẻ đo và thẻ tín dụng hỗ trợ, Chat, Al, tùy thân và trình diễn đặc vụ.Trung tâm phân tíchMiền làm việcTIẾNG CÒI184AI RESOLVE63%CSAT4.7QUAN ĐIỂM CÔNG VIỆC SỐNGHỗ trợTạo, đóng, chờ đợi, SLAThẻTán gẫuAI/human results and handle timeThẻAlTự tin, phản hồi, sử dụng hiệuThẻĐặc vụÂm lượng, tốc độ và sự thỏa mãnThẻ1CHOOSE DATESĐịnh sẵn hay tùy thích2CHANGE TABHỗ trợ đặc vụ3EXPORTTải về CSV
Phân tích Trung tâm cho thấy phạm vi ngày tháng, thẻ đo và thẻ tín dụng hỗ trợ, Chat, Al, tùy thân và trình diễn đặc vụ.

Lọc và điều khiển

  • Dùng định sẵn hay tùy chọn từ/to khoảng thời gian đó, làm tươi tỉnh để xây dựng lại mọi lá bài và biểu đồ trong cùng một giai đoạn.
  • Xuất CSV xuất khẩu ô xem phân tích hoạt động thay vì chụp màn hình.
  • Việc tìm kiếm trong vùng làm việc là tự động; thay đổi nơi làm thay đổi bộ dữ liệu ẩn.

Những gì mỗi đo lường

  • Hỗ trợ: vé được tạo/tiểu thức đóng, trả lời đầu tiên, độ phân giải, độ giải quyết thứ nhất, SLA, và ưu tiên/ phân chia/ phân vùng/tatus.
  • Tán gẫu: bắt đầu các phiên chạy, độ phân giải AI, sự leo thang, bỏ rơi, xử lý thời gian, tin nhắn mỗi phiên chạy và AI/human/tất cả các CSAT.
  • AI: Tự tin trung bình, mức độ ít tự tin, chính xác 3 lần, phản hồi, sự lệch hướng kiến thức, cách sử dụng đồ vật và những thứ cần xem xét.
  • Người thăm: xu hướng giao thông và sự gắn bó trong giai đoạn được chọn.
  • Đặc vụ: Công việc hàng đầu, tốc độ, kết thúc và thỏa mãn.

Sử dụng phân tích hóa học Hub để xem xét chéo-tram; sử dụng các khách thăm quan, vé, CSAT, AI History và Team khi bạn cần kiểm tra mức độ ghi âm.

Phân tích

Bảng thông tin

Bảng chỉ huy hàng ngày của bạn cho thấy giao thông, bán hàng, tải hỗ trợ, hoạt động AI và chỉ thị chuyển đổi trong một quan điểm. mở nó mỗi buổi sáng để hiểu những gì xảy ra qua đêm và những gì cần sự chú ý ngày hôm nay.

Bảng thông tin
Xem toàn cảnhMàn hình Overview được dẫn dắt bởi một OpsIQ Bảng điều khiển AI (với thông báo nhanh, thông minh, báo động trước), đá lát ô điều khiển KPI và ô điều chỉnh giao thông bảy ngày, cộng với việc đặt lại bố trí.Khám pháMiền làm việcOPSIQ NHỮNG NGƯỜI ĐỂ TRỞChọn phân tích và OpsIQ viết nóNgắn gọn mỗi ngàyBáo động thông minhForcastĐặt lại bố tríNGÀY NAY CÂU CHUYỆN2,481+12%Ô - hô - va$8.2k+5%(TIẾNG CÒI)143 SLAGiao thông e· lần cuối 7 ngày1AI-FIRSTOpsIQ Bảng thông tin2WIDGETSBạn sắp xếp các miếng KPI3CỦA BẠNĐặt lại bố trí bất cứ lúc nào
Màn hình toàn cảnh thật sự: OpsIQ Bảng điều khiển tình báo phía trên (hãy chọn một phân tích và nó viết nó) ở trên các ô điều khiển KPI, bạn tự sắp xếp.

Thẻ bảng điều khiển được giải thích

Khách thăm sống động

Số người trên trang web của bạn hiện nay. 15 giây (có thể cấu hình). Một người truy cập là "động" nếu họ nạp một trang trong ngưỡng hoạt động (mặc định: 90 giây).

Những vị khách độc đáo

Bao nhiêu người đã ghé thăm trang web của bạn trong khoảng thời gian được chọn. OpsIQ Xác định khách qua một tổ hợp dấu vân tay, cookie và (nếu có) xác nhận danh tính người dùng.

Mới quay lại

Những vị khách mới đang xem trang web của bạn lần đầu tiên, những vị khách trở về đã được nhìn thấy trước đó.

Tốc độ bật

Tỷ lệ phần trăm khách đã rời đi chỉ sau khi xem một trang. 70% Trên trang web hạ cánh thường có nghĩa là trang web không đáp ứng được những mong đợi của khách truy cập, nội dung sai, tải chậm hoặc kinh nghiệm di động kém.

Thời gian trung bình trên trang

Số lượng du khách dành cho mỗi trang trung bình là bao nhiêu. 10 Những giây trên trang nội dung gợi ý nội dung không thích thú. Rất nhiều lần trên các trang đăng ký có thể cho thấy sự nhầm lẫn.

Mối đe dọa bị chặn

IPđịa chỉ OpsIQ Xác định có khả năng là nguy cơ độc hại dựa trên đánh bắt đe dọa, nỗ lực thô bạo, hoặc khối thủ công. Nhấn vào để xem bị chặn IPs danh sách.

Ngày hôm nay / tuần này / tháng này

Thu nhập từ các nguồn bán hàng kết nối (Shopify, WooCommerce, StripeNếu doanh thu hiển thị số không, kiểm tra xem nền tảng của bạn có kết nối và đồng bộ hoá hay không.

Biểu đồ Trend

Biểu đồ đường cho thấy người xem đếm trên phạm vi ngày tháng đã chọn. Tìm các mẫu: gai giao thông (rag, in giấy đề cập), nhúng (những tuần, ngày lễ) và xu hướng được duy trì.

Nguồn trên

Nơi mà khách hàng của bạn đến: trực tiếp, Google, mạng xã hội, các chiến dịch email, trang web tham chiếu. sử dụng nó để hiểu kênh marketing nào đang hoạt động.

Trình duyệt trên

Chrome, Safari, Firefox, Edge, và những người khác. Nếu một trình duyệt có tốc độ phản xạ cao bất thường, bạn có thể có một CSS hay JavaScript Vấn đề tương thích.

Sơ đồ nhiệt hàng giờ

Một mạng lưới hiển thị hoạt động của người truy cập theo giờ và ngày trong tuần. Dùng tùy chọn này để quyết định thời gian hỗ trợ ca, khi nào cần gửi thông báo, và khi nào nên tiến hành việc thăng tiến.

Khách gần đây

Vài vị khách cuối cùng với quốc gia, trang, thiết bị và nguồn. hữu ích cho việc kiểm tra nhanh điểm trong chiến dịch.

Đang dùng bộ lọc ngày tháng

Nhấn vào bộ chọn ngày ở bên phải trên cùng của bảng gạch. Thiết lập sẵn: hôm nay, hôm qua, cuối cùng 7 Ngày cuối cùng 30 Ngày, tháng này, tháng trước, dải tự chọn. Tất cả các thẻ biểu đồ và bản cập nhật khi bạn thay đổi phạm vị. Phạm vi ngày tháng nằm trong vùng được cấu hình của bạn (đặt trong Thiết lập).

Ví dụ làm việc

Điều tra tăng tốc độ nảy lên

Tình huống:
Tốc độ tăng của bạn tăng từ 45% phải 78% Tuần này, có chuyện gì vậy?
Làm sao bây giờ?

Kiểm tra: (1) Một trang hạ cánh đã thay đổi chưa? (2) Kiểm tra nguồn trên cho những người tham chiếu mới. (3) Trang web có bị hư không? Kiểm tra xem trình duyệt có hoạt động không? (4) Kiểm tra phản ứng đe dọa và thông tin khách truy cập xem có dấu hiệu gì đáng ngờ không.

Không có khách trên bảng điều khiển

Tình huống:
Bảng điều khiển hiển thị 0 Khách truy cập trực tiếp ngay cả khi trang web của bạn đang nhận được giao thông.
Làm sao bây giờ?

Kiểm tra:1) Các ô điều khiển theo dõi đã được cài đặt chưa? Xem mã nguồn nơi Mạng của bạn và tìm kiếm OpsIQ kịch bản.2) Khóa nơi Mạng có chính xác không? So sánh chìa khóa dữ liệu trong văn lệnh với chìa khóa được kết nối trong Nơi Mạng. (Hãy so sánh phím nóng)3) Bộ nhớ tạm hoặc đĩa CDN có phục vụ một trang cũ không? (Làm sạch bộ nhớ tạm CDN của bạn.)4) Có phải một bộ chặn quảng cáo hay bộ chỉ huy hệ thống âm thanh đang chặn? Hãy kiểm tra lại bàn giao tiếp của trình duyệt tìm yêu cầu bị chặn.

Đọc bản đồ nhiệt hàng giờ

Tình huống:
Tấm bản đồ nhiệt cho thấy có hoạt động nặng nề giữa 10 giờ chiều ngày thứ 2 tuần nhưng không có gì vào cuối tuần.
Làm sao bây giờ?

Đây là mô hình giao thông B2B. Khách của bạn đang duyệt chuyên nghiệp trong giờ làm việc.1) Lên lịch hỗ trợ nhân viên trong giờ làm việc hằng tuần (2Hãy gửi email cho chiến dịch sáng thứ Ba.3) Cửa sổ bảo trì cuối tuần là an toàn.4) Hãy xem xét việc tán gẫu trực tiếp chỉ trong giờ cao điểm.

Sự tăng đột ngột giao thông từ nguồn không rõ nguồn gốc

Tình huống:
Bạn thấy một sự tăng đột ngột của 500 du khách trong vòng một giờ từ một người tham khảo chưa rõ danh tính.
Làm sao bây giờ?

Tới thăm và lọc theo thời gian. Kiểm tra:1Hãy nhìn vào khoảng thời gian, trang xem và sự đa dạng của trình duyệt.2) Nếu có thật, họ đang đi vào trang nào?3) Kiểm tra bộ tham chiếu URL.. có thể ai đó đã liên kết với bạn từ Reddit, Hacker News, hoặc là một blog phổ biến.4Nếu là do robot giao thông, hãy kiểm tra mối đe dọa và xem xét việc ngăn chặn IP tầm bắn.

Tại sao khách của tôi lại khác với Google Analytics?+

OpsIQ đếm khác. Nó dùng dấu vân tay và cookie của trình duyệt, trong khi GA sử dụng mô hình cookie khác nhau. Tính lọc Bot, tỷ lệ chặn quảng cáo, và thứ tự nạp tập lệnh cũng có thể gây ra sự khác biệt. 10-20% Sự biến đổi là bình thường.

Tôi có thể nhúng bảng điều khiển vào một công cụ khác không?+

Bảng điều khiển được thiết kế cho OpsIQ Adam, để có thông tin bên ngoài, hãy sử dụng RORT API để lấy dữ liệu phân tích và hiển thị nó trong bảng điều khiển của bạn hoặc công cụ BI.

Cái bình đếm "thrats" nghĩa là gì?+

Quan trọng là IP địa chỉ OpsIQ đã đánh dấu hoặc bị chặn dựa vào các ghi đè đe dọa, lặp đi lặp lại việc đăng nhập thất bại, hay khối thủ công. Nhấn vào bộ điều khiển để xem chi tiết và quản lý khối.

Phân tích

Bản ghi người thăm

Nhật ký khách thăm quan cho thấy mọi chuyến thăm đến trang web theo dõi của bạn. mỗi hàng là một trang tải từ một khách truy cập. sử dụng nó để điều tra hành vi cá nhân khách truy tìm giao thông chiến dịch, và chẩn đoán vấn đề theo dõi các vấn đề.

Bản ghi người thăm
Bản ghi người thămMột bảng truy cập với thanh lọc (ngày, tìm kiếm IP/ email/city, source, thiết bị và cột cho IP Email, vị trí, nguồn, thiết bị và thời gian, với hàng rào đe dọa được đánh dấu.Bản ghi người thămyoursite.com7 ngàyTìm kiếm IP email, thành phố...Nguồn▾Thiết bị▾IP Nhóm Việt hoá KDEEMAIL OF TRANSLATORSSỐ NGƯỜI CÔNG BỐMỘTĐÃ BÀIKHI[email protected]US_ New YorkgoogleMàn hình nền2m41.62.10.4Anh Quốc (· Luân Đôn)directDi động6mm[email protected]DE_ BerlinUtm:adsDi động14m203.0.113.9v. v. LagosreferralMàn hình nềnthreat1–25 Tháng Ba 3,402Phiên chạy→1FILTERNgày / tìm kiếm qua đường dẫn # sources #· thiết bị2REAL COLUMNSIP/mail_· vị trí_· thiết bị_ 2 đe dọa3DRILL INMở phiên chạy đầy đủ
Bản ghi thăm thật: lọc theo ngày, tìm kiếm và thiết bị, rồi đọc mọi cuộc thăm viếng bởi IP Email, vị trí, nguồn, thiết bị và thời gian, các mối đe dọa được đánh dấu bằng màu đỏ.

Những gì mỗi hàng hiển thị

IP địa chỉ

Khách thăm IP Địa chỉ.IP Thiết lập thay đổi tên của cửa sổ thành phố IP.

Nước và thành phố

Phát hiện từ IP địa chỉ dùng dữ liệu GeoIP. Cần thiết MaxMind GeoLite2 Cơ sở dữ liệu hay Cloudflare Đầu trang địa lý. Hiển thị « Không biết » nếu không cấu hình GeoIP.

Trang URL

Trang đã tải. Nhấn để xem toàn bộ URLLâu rồi URLs Được cắt đứt trong khung cảnh bàn.

Tham chiếu

Nơi du khách đến từ trước khi hạ cánh trên trang web của bạn. "Dirct" có nghĩa là không có tham chiếu (sách đánh dấu, gõ URLs, một số liên kết ứng dụng).

Thiết bị và Trình duyệtName

Kiểu thiết bị của khách truy cập (desktop, phone, tablet) và trình duyệt (Crome, Safari, Firefox, v. v.). Đã phân tích từ đầu trang người dùng- Agent.

Ngày và Giờ

Khi trang đã tải, trong vùng thời gian đã cấu hình của bạn.

Tên khách hàng

Nếu người dùng được nhận diện (dấu hiệu nhận diện từ thiện hay đăng nhập), tên của họ hoặc thư điện tử xuất hiện. Nếu không hiển thị là vô danh.

Lọc

Phạm vi ngày

Bộ lọc thăm một khoảng thời gian nhất định. Mặc định: cuối 7 ngày.

Tìm kiếm

Tìm kiếm bằng IP địa chỉ, trang URL Giới thiệu, quốc gia hoặc email khách hàng.

Nguồn

Lọc qua nguồn giao thông: Trực tiếp, hữu cơ, xã hội, danh mục, trả tiền, thư điện tử.

Thiết bị

Lọc theo màn hình nền, Mobile, hay Cong.

Chỉ mới

Chỉ cho những vị khách lần đầu tiên chưa từng thấy.

Ví dụ làm việc

Tìm khách từ một chiến dịch cụ thể

Tình huống:
Bạn khởi động một chiến dịch Google Ads với tham số UTM_source=google & nmutm_ mcc&utm=Slum-sale. Làm thế nào bạn tìm thấy những người khách đó?
Làm sao bây giờ?

Trong nhật ký khách thăm, sử dụng lĩnh vực tìm kiếm và gõ "sammer-sale". Kiểm tra tham chiếu URLs và trang URLs Vậy các tham số UTM sẽ khớp. Bạn cũng có thể lọc theo source = trả tiền để thu hẹp hơn nữa.

Tìm một khách hàng báo cáo vấn đề

Tình huống:
Một khách hàng email nói rằng "trang thanh toán của bạn bị hỏng ngày hôm qua vào khoảng 3 giờ chiều." Làm sao bạn tìm thấy phiên họp của họ?
Làm sao bây giờ?

Tìm kiếm qua địa chỉ email của họ trong nhật ký khách truy cập. Nếu họ đã đăng nhập vào, danh tính của họ sẽ xuất hiện. Đặt phạm vi ngày hôm qua. Tìm kiếm các trang kiểm tra khoảng 3pm. Nhấn vào phiên chạy của họ để xem dòng chảy trang đầy đủ và bất kỳ trang nào. JavaScript lỗi.

Phát hiện một kẻ đánh vòng lặp hay máy phế liệu

Tình huống:
Bạn nhận thấy một IP địa chỉ 500+ thăm viếng trong một giờ, tất cả đến cùng một trang.
Làm sao bây giờ?

Đây có thể là một robot, máy phế liệu hoặc văn lệnh bị hỏng. Hãy tới các bản ghi thăm dò và tìm kiếm bằng cách đó IP Kiểm tra:1) Có phải tất cả những cuộc viếng thăm đều cùng một trang giấy không?2) Người dùng có phải là một con robot đã biết?3) Thời gian phiên chạy là luôn luôn 0 Nếu xác nhận là robot, hãy đến chỗ bảo vệ và chặn nó lại.IP.

Bản ghi khách truy cập so với phiên chạy v. nguồn dữ liệu trực tiếp

Bản ghi người thăm

Trang chủ, hàng trên mỗi trang xem. tốt nhất là điều tra các trang cụ thể, tìm nguồn giao thông từ một nguồn cụ thể nào đó, tìm ra các vấn đề theo dõi.

Phiên chạy

Các nhóm xem trang vào các chuyến đi. Mỗi phiên họp một hàng, tốt nhất là hiểu dòng chảy của người dùng, đo thời gian, nhận diện đường chuyển đổi.

Thức ăn trực tiếp

Hoạt động thời gian thực, cho thấy hiện tại các vị khách trên trang web của bạn. tốt nhất là giám sát chiến dịch đang được tiến hành, phát hiện ra những vị khách có ý đồ cao, xem cơ hội hỗ trợ.

Sao tôi lại thấy những chuyến thăm của mình trong nhật ký?+

OpsIQ theo dõi tất cả các cuộc viếng thăm theo mặc định.IPđịa chỉ IPs Danh sách trong thiết lập > Theo dõi.

Tại sao một vị khách lại cho thấy đất nước "không biết" ?+

Tìm kiếm địa lý cũng cần thiết Cloudflare Tiêu đề địa lý (tự động nếu dùng Cloudflare) hoặc một MaxMind GeoLite2 Tập tin cơ sở dữ liệu. Kiểm tra thiết lập > Đường dẫn GeoIP để đảm bảo tập tin cơ bản tồn tại và có khả năng đọc.

Dữ liệu khách truy cập được lưu trong bao lâu?+

Dữ liệu khách thăm được giữ cho thời gian nhớ được cấu hình trong Thiết lập (mặc định: 90 Sau đó, hồ sơ cũ được tự động làm sạch bởi công việc ghi nhớ của Nhân Chứng.

Phân tích

Phiên chạy

Các phiên chạy nhóm nhiều trang xem từ cùng một người vào một hành trình. Trong khi bản ghi thăm dò hiển thị hàng loạt trang cá nhân, các phiên chạy cho bạn thấy cách mọi người di chuyển qua trang web của bạn từ hạ cánh đến lối thoát.

Phiên chạy
Phiên chạyBảng ghi lưu phiên chạy với IP đất nước, thiết bị, nguồn lực, thời gian và các cột trang giấy, và một hàng đe dọa được đánh dấu.Phiên chạyyoursite.comQuốc gia (NG)Bản ghi phiên chạyIP(S)NƠIĐÃ BÀIMỘTSỐ HỌCTRANG41.62.10.4Anh QuốcMàn hình nềngoogle3m12s6102.89.6.2TTDi độngdirect1m05s388.21.4.9ĐứcMàn hình nềnUtm:ads7mm 48s11203.0.113.9MỹDi độngreferral0m42s21SESSION LOGCác chuyến đi nhóm2COLUMNSQuốc gia · thiết bị · sources_ 2 khoảng thời gian3THREATĐã đánh dấu phiên chạy nguy hiểm
Nhật ký phiên chạy thật: mỗi cuộc hành trình của khách theo hàng (IP quốc gia, thiết bị, nguồn, thời gian và trang giấy) với các phiên xử nguy hiểm được đánh dấu bằng màu đỏ.

Các phiên điều trị hoạt động như thế nào?

Phiên chạy bắt đầu khi người xem nạp vào trang đầu tiên của họ, rồi tiếp tục di chuyển tới nhiều trang hơn. Một phiên chạy kết thúc khi khách không dùng được trong thời gian chờ phiên chạy (mặc định: 30 phút) hoặc đóng trình duyệt. Người trở lại cùng sau khi thời hạn tạo một phiên chạy mới.

Những gì mỗi phiên chạy cho thấy

Trang đầu

Trang hạ cánh, nơi du khách vào trang web của bạn.

Trang cuối

Trang thoát hiểm, nơi du khách để lại.

Số đếm trang

Số trang mà người xem đã xem trong phiên chạy này. Thường thì nhiều trang hơn có nghĩa là tham gia nhiều hơn, nhưng cũng có thể có nghĩa rằng người xem bị mất đi.

Thời gian

Tổng thời gian từ trang đầu tải đến hoạt động cuối. Phiên chạy kèm 0 giây là sự phản xạ (xem trang nằm trên, không có tương tác).

Nguồn

Nguồn giao thông cho phiên họp này (Dirct, Google, xã hội, giới thiệu, vv.).

Nước

Phát hiện quốc gia từ khách truy cập IP Địa chỉ.

Va đập

Cho dù khách truy cập còn lại sau khi xem chỉ một trang. Các phiên chạy đã bật có một chỉ thị màu đỏ.

Chuyển đổi

Trong phiên họp này, người khách có hoàn tất một sự kiện chuyển đổi theo dõi (purchase, đăng ký, tạo hình thức) hay không.

Lọc

Tìm kiếm

Tìm kiếm bằng IP, email , trang URL hoặc tham chiếu trong các phiên họp.

Kiểu

Những người mới đến thăm (trước hết) hay trở lại thăm viếng.

Nguồn

Lọc qua nguồn giao thông.

Nước

Lọc theo quốc gia để xem phiên chạy từ một vùng cụ thể.

Mối đe dọa/Bounced

Bộ lọc chỉ hiển thị phiên chạy bị bật lên hoặc phiên chạy được đánh dấu là mối đe dọa.

Ví dụ làm việc

Phân tích một khách hàng có giá trị cao

Tình huống:
Một khách hàng vừa mới mua một món đồ lớn, bạn muốn hiểu hành trình của họ trước khi mua.
Làm sao bây giờ?

Tìm kiếm email của họ trong phiên chạy. Xem tất cả các phiên chạy:1) Họ đã đến thăm bao nhiêu lần trước khi mua?2) Họ xem những trang nào?3) Họ có dùng trò chuyện hoặc mở vé không?4Tổng thời gian từ lần đầu tiên đến mua hàng là bao nhiêu?

Phát hiện đăng nhập từ địa điểm mới

Tình huống:
Một khách hàng thường đăng nhập từ Nigeria nhưng bạn thấy một phiên họp từ Nga.
Làm sao bây giờ?

Tìm kiếm thư điện tử của khách hàng trong phiên chạy. So sánh quốc gia của các phiên chạy gần đây. Nếu một phiên chạy đột ngột xuất hiện từ một nước khác thường, nó có thể là du lịch hợp pháp hoặc tài khoản bị tổn thương. Kiểm tra: (Hãy kiểm tra:)1) Có phải việc đăng nhập thất bại trước khi thành công không? (2) Đã làm IP Đánh dấu nó để xem xét nếu đáng ngờ.

Có sự khác biệt nào giữa một phiên họp và một vị khách?+

Khách truy cập là một người (hoặc trình duyệt). Phiên chạy này là một cuộc viếng thăm của người đó. Khách truy vấn có thể có nhiều phiên chạy theo thời gian. Phiên họp hết hạn sau thời gian chờ.

Chào. OpsIQ nhận dạng những vị khách trở về?+

OpsIQ sử dụng một tổ hợp cookie, dấu vân tay của trình duyệt, và xác thực thẻ căn cước. Nếu người xem dọn dẹp bánh quy của họ mà không đăng nhập, họ sẽ xuất hiện như một vị khách mới.

Phân tích

Thức ăn trực tiếp

Nguồn dữ liệu trực tiếp hiển thị khách truy cập hiện tại trên trang web của bạn trong thời gian thực. 15 giây (có thể cấu hình). Hãy dùng nó trong chiến dịch, phát hành sản phẩm và thời gian hỗ trợ bận rộn để xem điều gì đang xảy ra.

Thức ăn trực tiếp
Thức ăn trực tiếpMột dòng thời gian thực cho thấy số lượng người quan sát trực tuyến và một nguồn dữ liệu về hành động của khách thăm quan gần đây bởi đất nước.Thức ăn trực tiếpyoursite.com37khách truy cập trực tuyến ngay bây giờHoạt động sống độngbây giờPage size /pricing2sAnh Quốc #2 đã bắt đầu trò chuyện5sDE_· thêm vào xe9sCA_· hoàn tất đăng ký1RIGHT NOWXem ai đến kìa.2AUTO-REFRESHCập nhật mỗi 15s3ĐiềuNhảy vào một cuộc trò chuyện trực tiếp
Xem những người trên trang web của bạn điều này thứ hai và những gì họ đang làm, làm tươi mát tự động mỗi 15 giây.

Nó hoạt động thế nào?

Trình duyệt nguồn tin trực tiếp của máy phục vụ bạn tại khoảng cập nhật đã cấu hình. Mỗi hàng hiển thị một người truy cập hiện thời trên trang Mạng của bạn: trang, quốc, thiết bị, nguồn, thời gian chạy và điểm đếm trang. Điểm nổi bật xanh cho thấy hoạt động mới kể từ lần cập nhật cuối. Nhấn vào bất cứ hàng khách nào để xem chi tiết phiên chạy đầy đủ.

Thiết lập

Khoảng cập nhật

Có bao nhiêu lần cập nhật dữ liệu trực tiếp. Mặc định: 15 giây5-10s) Cập nhật nhanh hơn nhưng sử dụng thêm tài nguyên máy phục vụ. Giá trị cao hơn (30-60s Máy chủ dễ dàng hơn nhưng ít có thời gian thực hơn.

Ngưỡng hoạt động

Một khách truy cập được coi là "động" trong bao lâu sau khi tải trang cuối cùng. Mặc định: 90 Nếu một vị khách nạp đầy một trang và sau đó đọc nó 2 phút mà không nhấp chuột, chúng biến mất khỏi hệ thống truyền hình trực tiếp sau ngưỡng cửa.

Nút Tạm dừng

Nhấn vào phần tạm để dừng tự động mở lại. Có ích khi bạn muốn đọc chi tiết không có cập nhật danh sách. Nhấn vào Tiếp tục để khởi chạy lại.

Ví dụ làm việc

Đánh dấu một manh mối trong chiến dịch

Tình huống:
Bạn đang chạy một chương trình phóng sản phẩm. Một khách truy cập vừa xem trang chủ, rồi tính năng, sau đó giá trị, và hiện đang ở trên trang hóa đơn.
Làm sao bây giờ?

Đây là hành vi có chủ tâm cao trong chương trình truyền hình trực tiếp: (1) Hãy nhấp chuột vào xem phiên chạy của họ. (2) Nếu họ bắt đầu một cuộc trò chuyện, AI sẽ có toàn bộ bối cảnh hành trình. (3) Nếu họ bỏ đi mà không mua gì, họ sẽ trở thành một đầu mối trong trang chủ yếu. (4) Hãy xem xét việc tạo ra một quy tắc chủ động để hiển thị một thông điệp trò chuyện khi khách đến nơi.

Có quá nhiều khách từ cùng một chỗ. IP

Tình huống:
Anh thấy đấy 20 Khách đến cùng một nơi IP địa chỉ, tất cả ở trang khác nhau.
Làm sao bây giờ?

Có thể là: (1Hãy kiểm tra xem những cuộc viếng thăm này có giống người thật không (những trang khác nhau, khoảng thời gian hợp lý)2• Một robot hoặc bộ phế liệu. Hãy kiểm tra xem các phiên chạy có rất ngắn không (0-1giây) hoặc gõ các trang một cách có hệ thống ( (3• Kiểm tra tải. Nếu bạn đang chạy kiểm tra tự động, ngoài IP từ việc theo dõi.

Tại sao các dữ liệu trực tiếp hiển thị 0 Khách viếng thăm khi trang web của tôi có giao thông?+

Kiểm tra:1) Tập lệnh ô điều khiển được cài đặt trên trang web của bạn? (2) Khóa nơi đó có đúng không?3) ngưỡng hoạt động đã được thông qua chưa?4) Có phải du khách dùng những phương tiện chặn quảng cáo hung hăng để ngăn chặn hệ thống theo dõi không?

Tôi có thể lọc dữ liệu trực tiếp từ nước hay thiết bị không?+

Nguồn dữ liệu trực tiếp hiển thị tất cả các vị khách hoạt động. Để xem được lọc, hãy sử dụng các trang Ghi lưu hoặc phiên chạy với tùy chọn lọc của họ. Trình cung cấp dữ liệu sống có chủ đích dễ dàng cho việc kiểm tra thời gian thực.

Phân tích

Trang đầu

Trang đầu hiển thị trang web của bạn nhận được nhiều nhất giao thông. Nó xếp hàng các trang bằng cách thăm dò, đính hôn, chuyển đổi và hỗ trợ hoạt động. Hãy dùng nó để xác định nội dung tốt nhất của bạn, tìm những trang chưa được sửa đổi, và tìm ra những trang có thể tạo ra câu hỏi hỗ trợ.

Trang đầu
Trang đầuMột danh sách liệt kê những trang được xem nhiều nhất với các thanh ngang và tính.Trang đầuyoursite.comTrang có mục nhìn thấy nhất/pricing3,402/2,910/docs1,740/blog/seo-guide980/signup6401RANKEDTrang có mục nhìn thấy nhất2SIGNALSThăm và chuyển đổi3FINDTrang đó mà vé lái xe
Trang của bạn xếp hạng bằng giao thông và sự gắn kết, để bạn có thể tìm thấy nội dung đầu và trang tạo ra hỗ trợ.

Những gì mỗi trang cho thấy

Trang URL

Đầy đủ URL đường dẫn. Trang tương tự (v. g., biến thể sản phẩm) được nhóm lại nếu bật.

Xem

Tổng số lần trang này đã được tải trong phạm vi ngày tháng đã chọn.

Những vị khách độc đáo

Bao nhiêu người xem trang này (một người xem cùng một trang hai lần tính là 1 duy nhất).

Tốc độ bật

Phần trăm khách thăm quan đã rời trang web của bạn sau khi xem trang này.

Thời gian trung bình

Rất ngắn, không đọc được.

Nói chuyện bắt đầu

Cuộc trò chuyện trên trang này bắt đầu từ trang web này bao nhiêu cuộc trò chuyện chat, và chương trình có thể không rõ ràng mô tả sản phẩm.

Vé hỗ trợ

Số lượng vé cao bằng UX hoặc nội dung.

Ví dụ làm việc

Tìm trang cần tra cứu

Tình huống:
Đội hỗ trợ của anh cứ nhận được câu hỏi về việc vận chuyển trang nào bị hỏng?
Làm sao bây giờ?

Sắp xếp trang trên bằng "Support vé" hay "Chat bắt đầu" giảm. Tìm kiếm sản phẩm hay các trang chuyển hàng có số lượng cao. Trang có thể có thông tin hỗ trợ nhiều nhất. Sửa nội dung trang và theo dõi nếu các câu hỏi hỗ trợ bị giảm.

Tìm trang có tỷ lệ thoát cao

Tình huống:
Bạn muốn biết nơi mọi người thường rời trang web của bạn.
Làm sao bây giờ?

Sắp xếp theo tỷ lệ nảy sinh. Bỏ qua trang thoát tự nhiên (cảm ơn bạn đã xuất, trang xác nhận). Tập trung vào trang nên giữ khách tham gia: trang sản phẩm, giá trị, tính năng. Những trang này cần được gọi đến hay làm rõ hơn.

Tại sao một trang cho thấy 0 quan sát ngay cả khi tôi biết nó bị tắc đường?+

Kiểm tra:1) Có phải các ô điều khiển theo dõi được cài đặt trên trang cụ thể đó? (Một trong những ứng dụng trang không có khả năng bật ô xem trang trên đường thay đổi.)2) Trang này có bị loại trừ trong thiết lập theo dõi không? (3) Một đĩa CDN phục vụ một phiên bản đã lưu tạm mà không có tập lệnh theo dõi?

Phân tích

Thông minh địa lý

Tình báo địa lý cho thấy vị khách của bạn đến từ đâu từ nước, thành phố, thiết bị và nguồn tin. sử dụng nó để hiểu thị trường địa lý của bạn, quyết định về hỗ trợ ngôn ngữ, kế hoạch tiếp thị khu vực, và phát hiện các mô hình giao thông đáng ngờ.

Địa lý
Thông minh địa lýBản đồ vị trí khách thăm quan bên cạnh bảng xếp hạng của một quán bar quốc gia.Thông minh địa lýyoursite.comVị trí kháchMỹAnh QuốcĐứcCATT1MARKETSQuốc gia, thành phố, thiết bị2PLAN& Vùng ngôn ngữ3WATCHGiao thông lạ
Nơi mà khách thăm (bằng quốc gia, thành phố và thiết bị) đến thị trường lớn và thấy giao thông bất thường.

Những gì bạn thấy

Biểu đồ thanh trên các quốc gia

Các quốc gia đứng đầu được xếp hạng bởi số lượng khách truy cập, hãy nhấn vào một quốc gia để khoan xuống dữ liệu cấp thành phố.

Bánh rán Quốc gia

Sự sụp đổ của giao thông theo quốc gia, và tỷ lệ phần trăm.

Bàn toàn quốc

Mỗi nước có du khách trong khoảng thời gian được chọn, cho thấy số lượng du khách, số giờ làm việc, tốc độ nhảy vọt và tỉ lệ chuyển hóa.

Đi sâu vào thành phố

Hãy nhấp chuột vào một quốc gia để xem thành phố nào trong nước có khách thăm nhiều nhất.

Cách phát hiện địa lý hoạt động

OpsIQ Phát hiện vị trí khách theo hai cách:1) Cloudflare Nếu vị trí của bạn là phía sau CloudflarePhát hiện quốc gia một cách tự động và chính xác2) MaxMind GeoLite2 cơ sở dữ liệu. Tải về cơ sở hạ tầng miễn phí và cấu hình đường dẫn đến Thiết lập GeoLite2- Cơ sở dữ liệu của thành phố, không chỉ là cơ sở dữ liệu quốc gia.

VPN và giao thông ủy nhiệm

Khách truy cập sử dụng VPNs sẽ xuất hiện từ vị trí của máy phục vụ VP N, không phải vị trí thật của họ. Đây là thiết kế. OpsIQ không thể và không nên cố gắng để vượt qua VPN. Nếu bạn thấy các mẫu quốc gia bất thường, xem xét rằng 10-20% du khách có thể sử dụng VPNs.

Ví dụ làm việc

Giao thông bất ngờ ở nước ngoài

Tình huống:
Anh chỉ kinh doanh ở Mỹ nhưng 30% lượng truy cập đến từ Ấn Độ.
Làm sao bây giờ?

Kiểm tra: (1) Đây là những vị khách thật sao? Hãy nhìn vào khoảng thời gian và các trang xem. (2) Họ tìm thấy anh qua Google à? (3) Liệu họ có thể là những khách hàng tiềm năng trong một thị trường mới? cân nhắc thêm chi phí cụ thể hay nội dung của Ấn Độ.

Quyết định hỗ trợ ngôn ngữ

Tình huống:
Bạn muốn biết liệu bạn có nên dịch trang web của mình sang tiếng Tây Ban Nha không?
Làm sao bây giờ?

Hãy nhìn vào trang tin tình báo Geo. 10% Và kiểm tra: liệu khách từ những nước này có chuyển sang thị trường chính tương tự không?

Kế hoạch thay đổi hỗ trợ vùng

Tình huống:
Anh cần quyết định giờ cho các múi giờ khác nhau.
Làm sao bây giờ?

Dùng bản đồ nhiệt theo giờ (trên Dashboard) kết hợp với Geo Intelligence. Nếu 40% phần lớn lưu lượng của bạn đến từ châu Âu và 35% Từ Mỹ, bạn cần phải phủ sóng cả hai múi giờ. Bản đồ nhiệt độ cho thấy chính xác khi nào mỗi vùng hoạt động nhiều nhất.

Quốc gia không có lệnh

Tình huống:
Đức trình bày 500 Khách thăm tháng này nhưng không bán hàng.
Làm sao bây giờ?

Điều tra: (1) Có lẽ giá của bạn không phải là cạnh tranh cho thị trường đó. (2) Anh có tàu đến Đức không? (3) Việc thanh toán của bạn có sẵn ở EUR không? (4) Có phải những vị khách này đến từ một nguồn duy nhất có thể là giao thông ít tai nạn?

Tại sao một vị khách lại cho thấy đất nước "không biết" ?+

Không cấu hình được. Hoặc cài đặt.Cloudflare(mà tự động thêm địa trang) hoặc tải về cácMaxMind GeoLite2Cơ sở dữ liệu và đặt đường dẫn tập tin trong Thiết lập > Đường dẫn GeoIP.

Tôi có thể chặn đường giao thông từ các nước cụ thể không?+

OpsIQ không chặn bởi quốc gia. Hãy dùng máy phục vụ Mạng hay máy chủ của bạn. Cloudflare Luật tường lửa ngăn chặn đất nước.OpsIQ Tập trung vào tầm nhìn, không phải điều khiển truy cập ở cấp mạng.

Phân tích

Ý định là ống dẫn

Các phiên họp phân loại người thăm dò theo những gì họ đang cố gắng làm: duyệt, nghiên cứu, so sánh, mua, nhận hỗ trợ hoặc để lại. hãy sử dụng nó để hiểu sự cân bằng của mục đích trên trang web của bạn và xác định vị trí khách thả xuống.

Ý định là ống dẫn
Ý định là ống dẫnMột ống từ Duyệt đến Nghiên cứu để so sánh với việc mua hàng, cộng với hỗ trợ và để lại thẻ.Ý định là ống dẫnyoursite.comDuyệt · 8,200Khảo sát · 4,100So sánh · 1,650Mua · 520Hỗ trợ 6%Rời đi 11%1CLASSIFYKhách muốn gì?2STAGESDuyệt để mua3ĐIỀU TRỊTìm sự chuyển giao
Các phiên họp được phân loại theo mục đích (newse, Research, so sánh, buy) để bạn có thể thấy chính xác nơi người ta thả xuống.

Kiểu mục đích

Duyệt qua

Những người đến thăm ngẫu nhiên nhìn quanh, những phiên họp ngắn, vài trang, không phát hiện được mục tiêu cụ thể.

Nghiên cứu

Khách truy cập đọc trang sản phẩm/ thực phẩm, bác sĩ hoặc blog nội dung. Thời gian dài hơn trên trang, nhiều trang nội dung

Đang so sánh

Khách xem giá cả, so sánh theo kế hoạch hoặc bàn ghế thường có khách trở về.

Mua

Đây là cơ hội để bạn chuyển đổi.

Tìm kiếm sự hỗ trợ

Khách đến thăm nơi trang web trợ giúp, trang liên lạc hoặc bắt đầu trò chuyện.

Độ mở rộng

Khách thăm bỏ đi sau một trang.

Làm sao để đọc được cái ống nước

Giải thích cái ống nước của bạn

Tình huống:
1,000 du khách xem phim Pricing. 270 Mở cuộc trò chuyện. 92 Bắt đầu kiểm tra. 64 Được trả tiền. 18 Mở vé hỗ trợ.
Làm sao bây giờ?

Trang đi lại là đủ mạnh để tạo ra mục đích. 27% Nếu khách truy cập có thể tán gẫu trước khi mua, thì việc hỗ trợ vé sau khi trả tiền có thể cho thấy họ kích hoạt hay gây nhầm lẫn về thanh toán.1) Hãy chắc chắn rằng Al đã trả lời đúng cho những câu hỏi đòi hỏi quá đáng.2) Điều tra 18 Vé hỗ trợ sau giờ kiểm tra cho các vấn đề thông thường.

Lọc thời gian

Dùng bộ lọc phạm vi ngày tháng để so sánh các kiểu mục đích trong khoảng thời gian. Ví dụ, hãy so sánh tuần thứ Sáu đen với tuần thứ sáu bình thường. Bạn sẽ thấy một sự tăng vọt trong mục đích "Buing" và có thể là "Support- search" nếu bạn tạo ra sự nhầm lẫn.

Chào. OpsIQ Giải thích mục đích?+

OpsIQ xem trang URLs Ứng dụng phiên chạy và mẫu thời gian. Mục đích so sánh tín hiệu trang. Kiểm tra các trang tín hiệu mua mục đích. Trợ giúp/ thỏa thuận trang. Sự phân loại là dựa trên tính ưu tiên, chứ không phải điều khiển AI.

Tôi có thể tùy chỉnh các loại mục đích không?+

Không phải hiện tại. Các phân loại được xây dựng dựa trên các mẫu mạng thông thường. Phân loại mục đích tự chọn trên đường.

Phân tích

Lỗ hút, giữ lại và đường đi

Xây dựng những chuyến đi từ trang hoặc từng bước trong sự kiện, đo lường sự chú ý của đoàn quân và khám phá ra những con đường mà du khách thường đi qua.

Màn hình sản xuất
Xe đạpMột ống dẫn tự chọn hiển thị mỗi bước đi/t; số du khách còn lại và tỷ lệ phần trăm chuyển đổi.Xe đạpMiền làm việcSTEPS4CONVERSION28.4%WINDOW72hQUAN ĐIỂM CÔNG VIỆC SỐNGXem phần mềm truy cập1,420 du lịch100%Kế hoạch đã chọn780 du lịch54.9%Bắt đầu lấy ra530 du lịch37.3%Thứ tự xong403 du lịch28.4%1DEFINEChọn 2–8 bước2ĐIỆNĐặt cửa sổ chuyển đổi3BÀI HỌCTìm giọt nước lớn nhất
Một ống dẫn tự chọn hiển thị mỗi bước đi/t; số du khách còn lại và tỷ lệ phần trăm chuyển đổi.

Xe đạp

Tạo một ống tên với 2 phải 8 trang hay bước sự kiện. Đặt cửa sổ chuyển đổi trong giờ; một tùy chọn chỉ đếm khi các bước đã sắp xếp xuất hiện bên trong cửa sổ đó. Hãy dùng sự tụt giữa các bước để chọn nơi cần kiểm tra lại, lỗi, tốc độ trang hoặc tin nhắn.

Nhớ

Các nhóm du khách tham quan và cho thấy có bao nhiêu người trở về. 6, 8 hay 12 Giữ cho định nghĩa của quân đoàn ổn định khi so sánh việc công bố hay vận động tranh cử.

Đường dẫn

Đường dẫn liệt kê các chuỗi trang thường nhất. Chọn một đường dẫn từ 2 phải 5 trang để giữ kết quả dễ đọc. Hãy dùng nó để tìm những lối thoát bất ngờ, lối thoát thông thường và nội dung trước khi chuyển đổi.

Ống dẫn tự chọn là định nghĩa phân tích, không phải tự động hoá. Để phản ứng với một bước hoàn tất, tạo mục tiêu chuyển đổi, phân đoạn, kích hoạt hay làm việc luồng.

Phân tích

Phát lại phiên

Phiên chạy cho bạn xem dòng thời gian của những gì một khách truy cập đã làm trên trang web của bạn: mà các yếu tố họ nhấp vào, cách họ cuộn, nơi họ lướt qua, và những gì họ gõ (với các lĩnh vực nhạy hổ mang). Hãy dùng nó để chẩn đoán vấn đề UX, kiểm tra báo cáo lỗi, và hiểu sự nhầm lẫn của khách hàng.

Phát lại phiên
Phát lại phiênMột trình chơi lại hiển thị một ô xem trang với con chạy, một thanh thông tin phiên chạy và một bộ lọc dòng thời gian.Phát lại phiênyoursite.comMua ngay điNHỮNG SỰ HIỆN TRỞThời gian 3m 12s14 nhắpUS_ DesktopChrome1241WATCHNhấn, cuộn, gõ2MASKEDNhững cánh đồng nhạy cảm ẩn3DIAGNOSEKiểm tra lỗi báo cáo
Hãy chơi lại chính xác những gì một người khách đã làm: ấn, cuộn giấy, gõ (những cánh đồng nhạy cảm che đậy), vào thanh lọc dòng thời gian.

Tìm phiên chạy đúng

Từ trang đầu, tìm phiên chạy với các vấn đề đã báo cáo, trang cao không chuyển đổi, hoặc các phiên chạy của khách hàng đã nộp vé hỗ trợ. Nhấn vào biểu tượng tua lại để mở khung xem thời gian.

Chương trình quay lại nào

Lát

Một thanh ngang hiển thị các sự kiện theo thời gian. Nhấn bất cứ nơi nào trên dòng thời gian để nhảy tới thời điểm đó.

Định vị trang

Mỗi lần tải trang xuất hiện như một đoạn trên dòng thời gian.

Nhấn

Các sự kiện nhấp chuột được hiển thị như những chấm trên dòng thời gian và như điểm nổi bật trên trang được tái tạo.

Cuộn

Độ sâu của cuộn sách được theo dõi để bạn có thể thấy vị khách đọc dưới đó bao xa.

Tương tác đơn

Tiêu điểm và gõ các sự kiện được ghi lại. Đầu vào văn bản bằng mật khẩu và trường nhạy được che đậy theo mặc định.

Riêng tư và che giấu

Phiên chạy quay lại các trường đơn nhạy cảm theo mặc định. Các trường nhập mật khẩu, thẻ tín dụng và các trường đánh dấu dữ liệu.opsiq- Bảng làm việc không bao giờ được ghi lại. Bạn có thể cấu hình thêm các quy tắc che giấu trong Thiết lập > Theo dõi. Nếu chính sách tuân thủ cần thiết, bạn có thể tắt hoàn toàn.

Chẩn đoán một vụ hủy bỏ

Tình huống:
Một khách hàng nói: "Tôi đã cố mua nhưng cái nút không làm gì cả."
Làm sao bây giờ?

Tìm phiên chạy của họ trong trang phiên chạy (tìm bằng thư điện tử). Hãy mở phần xem lại. Xem phần kiểm tra trang. Tìm:1Họ có bấm đúng nút không?2) Đã làm một JavaScript Lỗi xảy ra? (Hãy kiểm tra trang JS lỗi cho lần đó.)3) Trang này đã tải lại hay hiển thị thông điệp lỗi?4Buổi chiếu lại cho thấy chính xác những gì đã xảy ra.

Phiên họp được sử dụng lại bao nhiêu?+

Chơi lại dữ liệu phát triển với trọng lượng giao thông. Dùng thiết lập dự phòng để tự động làm sạch dữ liệu quay lại cũ. Đối với các địa điểm xổ số cao, hãy xem một khoảng thời gian nhỏ hơn (v. d., 30 ngày) quản lý kho.

Khách có thể chọn lựa để không quay lại không?+

Nếu « Không theo dõi mục » được bật trong Thiết lập, khách tham quan với tiêu đề DN còn chưa được ghi lại. Bạn cũng có thể loại ra những trang cụ thể không tua lại trong thiết lập theo dõi.

Phân tích

Bản ghi sự kiện

Nhật ký sự kiện cho thấy mỗi sự kiện rằng OpsIQ đã thu lại: xem trang, click, chat bắt đầu, tạo ra vé, bán hàng và các sự kiện tùy chỉnh. Hãy dùng nó để gỡ lỗi sự kết hợp, xác nhận giao hàng web, và hiểu chuỗi hành động.

Bản ghi sự kiện
Bản ghi sự kiệnMột bản ghi sự kiện thời gian với các thẻ kiểu mã hoá màu: xem trang, chat, bán, móc và tùy chỉnh.Bản ghi sự kiệnyoursite.compageviewUS /pricing12:04:01chat.startAnh Quốc12:04:09bán$49.00 · Thứ tự #104212:05:22móc câupayment.succeeded12:05:23customdemo_booked12:06:101EVERYTHINGMỗi sự kiện đã ghi âm2DEBUGKiểm tra giao hàng web Okuok3ORDERXem chuỗi chính xác
Thời gian của mọi thứ. OpsIQ Bản thu âm (trang, chats, bán hàng, kết nối mạng, sự kiện tùy chỉnh) để gỡ lỗi và kiểm toán.

Sự kiện đã được xây dựng (tự động)

⚠️
Đây là events-log Tên — gì?OpsIQGhi chép về dòng thời gian khách truy cập cho việc phân tích, gỡ lỗi và kiểm toán. rang sự kiện bạn đặt một điểm kết thúc cho. Nếu bạn đang xây dựng một bộ nhận kết nối web, hãy dùng danh sách trong phần Weboks, hoặc cuộc gọi webhooks.events.list; việc gán tên cho một cái bảng này sẽ không mang lại gì.

Mỗi hàng hiển thị tên bạn Gởi và tên chính điểnOpsIQ cửa hàng Cả hai đều được ghi lại: tên thô bạn gửi, và cái tên chính điển mà nó đưa ra, nên một báo cáo chống lại việc phân loại chính thống vẫn hoạt động bất cứ bí danh nào mà người theo dõi sử dụng.

pageview page.viewed

Một số trang được theo dõi, bao gồmURL, tiêu đề , giấy giới thiệu và nhãn thời gian. page_viewview được chấp nhận như nhau.

chat_open support.chat_opened

Một khách truy cập mở ô điều khiển trò chuyện.

chat_send support.chat_message_sent

Một khách truy cập gửi thông điệp trò chuyện. Phần trả lời được lưu giữ như support.chat_message_received.

ticket_open support.ticket_created

Một vé hỗ trợ được lập ra. ticket_create được chấp nhận như nhau, trả lời và đóng cửa được lưu trữ như support.ticket_repliedsupport.ticket_closed.

form_submit form.submitted

Một mẫu được theo dõi đã được gửi đi. submit được chấp nhận như nhau.

purchase commerce.purchase_completed

Một vụ mua bán đã hoàn tất. purchase_successvà những bí danh bán hàng order.completed, sale.completed, payment.completedinvoice.paidTất cả đều được chấp nhận từ một nền tảng kết nối.

thanh tra commerce.checkout_started

Bắt đầu tính tiền. cart_view, checkout_view, checkout_intent, checkout_abandon, add_to_cart.

login_success identity.signed_in

Có người đến thăm, thất bại là login_failedđược lưu dạng identity.login_failed; khóa cửa là login_lockout_created.

Đăng ký conversion.signup

Một vị khách đăng ký xong. leadđược lưu dạng conversion.lead.

js_error error.js

AJavaScriptLỗi được ghi lại trên một trang bị theo dõi.

💡
Một tên sự kiện mà bạn gửi không phải là một trong những bí danh này vẫn còn được ghi chép lại, không có gì bị bỏ rơi.

Các sự kiện riêng

Bạn có thể gửi các sự kiện tự chọn từ nơi Mạng hay máy phục vụ đến OpsIQ Sự kiện tự chọn có ích để theo dõi hành động cụ thể cho công việc của bạn: nhắp nút, sử dụng tính năng, chơi video, tải về, v.v...

JavaScript Comment sự kiện riêng từ trình duyệt
// Send a custom event from the browser
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "plan_selected", {
  plan: "pro",
  billing: "annual",
  value: 99
}]);
Mục ghi lưu hoạt động liên lạc từ máy chủ
// Record a server-side activity for a contact (PHP)
$ch = curl_init("https://your-opsiq-domain.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.activities.record",
        "site_key" => "site_abc123",
        "email" => "[email protected]",
        "event" => "subscription.upgraded",
        "value" => 50,
        "currency" => "USD",
    ]),
]);
$response = curl_exec($ch);
curl_close($ch);

Đang lọc sự kiện

Kiểu sự kiện

Lọc theo tên sự kiện cụ thể: xem trang, bắt đầu, mở cửa sổ. Tạo ra, v. v...

Phạm vi ngày

Cho thấy các sự kiện từ một thời gian cụ thể.

Tìm kiếm

Tìm kiếm dữ liệu sự kiện bằng từ khoá (URL, email, giá trị tài sản sự kiện).

Các sự kiện được lưu giữ bao lâu?+

Sự kiện theo chính sách thiết lập nhớ lại được đặt trong Thiết lập. Mặc định: 90 Các sự kiện có giá trị cao (purchas, sự kiện an ninh) có thể được cấu hình với tính hiệu quả hơn.

Tôi có thể sử dụng các sự kiện trong thí nghiệm A/B không?+

Khi tạo ra một thí nghiệm, bạn chọn một sự kiện chuyển đổi bất kỳ sự kiện có sẵn hay tùy chỉnh nào cũng có thể được sử dụng làm mục tiêu chuyển đổi.

Phân tích

Thí nghiệm A/B

Thí nghiệm giúp bạn thử hai phiên bản của một trang hoặc tính năng và đo lường mà một người thực hiện tốt hơn. OpsIQ Dấu vết, sự cải đạo và ý nghĩa thống kê.

Thí nghiệm A/B
Thí nghiệm A/BHai thẻ biến thể so sánh tỷ lệ chuyển đổi, với huy hiệu và ý nghĩa của các biến thể hàng đầu.Thí nghiệm A/Byoursite.comBiến số A4.2%chuyển đổi · 1,020 XemBiến số BWINER6.8%chuyển đổi · 1,005 Xem+62% nâng · 96% quan trọng1TIẾNGHai biến thể đầu đến đầu2ĐIỆNQuay & lại ý nghĩa3CÔNG VIỆCKhai báo người chiến thắng
Chạy hai biến thể, xem chuyển đổi và ý nghĩa thống kê, và tuyên bố người chiến thắng.

Thí nghiệm đã có hiệu quả như thế nào

1
Tạo một thí nghiệm

Cho nó một cái tên, xác định sự kiện đo lường chính (sự kiện phiên bản), và đặt các biến thể (điều khiển và kiểm tra).

2
Chạy đi.

OpsIQ Hãy ngẫu nhiên chỉ định những người đến thăm để xem các biến thể và theo dõi hành vi của họ.

3
Đọc kết quả

Sau khi thu thập đủ dữ liệu, kiểm tra mức độ tự tin.95% tự tin nghĩa là bạn có thể 95% Chắc chắn sự khác biệt là có thật, không phải ngẫu nhiên.

Trạng thái thử nghiệm

Nháp

Tạo mà chưa khởi động. Bạn vẫn có thể sửa đổi biến thể và số đo.

Đang chạy

Đang phân loại khách theo biến thể. Đừng sửa đổi khi chạy.

Hoàn tất

Đã đạt được ý nghĩa thống kê hoặc bị chặn lại bằng tay.

Đã cất

Kết quả đã được xem xét và thí nghiệm không còn cần thiết trong danh sách hoạt động.

Thực hành tốt nhất

Định nghĩa đo lường trước khi phóng

Chọn một thước đo sau khi xem kết quả giới thiệu thành kiến.

Mở khóa giao thông nội bộ

Thêm đội của bạn IP địa chỉ trong danh sách loại bỏ nên các nhân viên đến thăm không bị lung lay.

Chạy đủ lâu rồi

Sau đó không được dừng thí nghiệm 100 Bạn cần hàng trăm hoặc hàng ngàn du khách mỗi biến thể để có kết quả đáng tin cậy.

Kiểm tra từng thay đổi một

Nếu bạn thay đổi tiêu đề và màu cái nút, bạn sẽ không biết sự thay đổi nào đã làm tăng độ cải thiện.

Ghi lại quyết định của bạn

Sau khi thí nghiệm kết thúc, hãy chú ý biến thể nào đã thắng và tại sao bạn chọn thực hiện nó.

Tôi cần bao nhiêu khách để làm một thí nghiệm hợp lệ?+

Nó phụ thuộc vào tốc độ chuyển đổi đường cơ bản và kích cỡ hiệu ứng bạn muốn phát hiện. 500 du lịch trên mỗi biến thể cho a 20% Để có hiệu ứng nhỏ hơn, bạn cần hàng ngàn.

Tôi có thể làm nhiều thí nghiệm cùng một lúc không?+

Phải, nhưng hãy cẩn thận. nếu hai thí nghiệm ảnh hưởng đến cùng một trang, kết quả của chúng có thể tương tác với nhau và sẽ an toàn hơn nếu cùng một lúc thực hiện thí nghiệm trên những trang hoặc các đặc điểm khác nhau.

Phân tích

JavaScript lỗi

JavaScript Lỗi thu thập lỗi bên khách hàng từ những người truy cập trang web của bạn. Một nút hỏng, một lỗi API Ở đây có cuộc gọi hoặc tài nguyên bị thiếu. Hãy dùng nó để tìm và sửa lỗi ảnh hưởng đến khách hàng thật.

Lỗi JS
JavaScript lỗiDanh sách các lỗi đầu bị bắt với chấm độ quan trọng, tập tin nguồn, trình duyệt và tính sự kiện.JavaScript lỗiyoursite.comLỗi gần đâyKiểu Mô- đun: không thể đọc x của xác địnhthanh tra.js:42 · Chrome×214404 Đang tải /assets/app.csschỉ mục ·Safari×88Không có câu trả lời (theo lời hứa) MạngErrorapi.js:17· Firefox×51Cảnh báo hủy bỏ: đang gỡ bỏ sự kiệnnhà cung cấp. js .· Edge×331CAPTURELỗi bên khách2IMPACTĐếm và duyệt3ĐIỀU TRỊQuật sạch những con bọ thật
Khách thật sự chạm vào bề mặt mã hóa ở đây (tin nhắn, nguồn, trình duyệt và mức độ thường xuyên) để bạn có thể sửa chữa những gì cần thiết.

Những gì mỗi lỗi hiển thị

Thông điệp lỗi

Hạt JavaScript Văn bản lỗi (e.g., "SkeError: không thể đọc thuộc tính của chưa xác định").

Trang URL

Trang nào gặp lỗi.

Bộ duyệt và thiết bị

Trình duyệt và kiểu thiết bị nào đã thấy lỗi. Một số lỗi là đặc trưng cho trình duyệt.

Vết chồng

Vị trí mã khi gặp lỗi. Nhấn vào để mở rộng vết chồng đầy đủ.

Lần đầu tiên thấy

Khi lỗi này xuất hiện lần đầu tiên.

Lần cuối thấy

Khi lỗi này xảy ra gần đây nhất.

Số lượng

Lỗi này đã được ghi nhận bao nhiêu lần rồi.

Các phiên chạy đã bị ảnh hưởng

Có bao nhiêu lần khách đến thăm đã trải qua lỗi này.

Đang ưu tiên lỗi

Không phải tất cả JavaScript lỗi cần được chú ý ngay. ưu tiên bởi: (1) lỗi trên các trang quan trọng (bị kiểm tra, đăng nhập, đăng ký), (2) lỗi với số phiên chạy cao, (3) lỗi xuất hiện gần đây (có thể hồi quy từ một sự thay đổi mã),4) lỗi trên mã riêng (không phải văn lệnh bên thứ ba).

Sửa một nút thanh toán bị hỏng

Tình huống:
Các lỗi JS trang hiển thị "SkeError: không thể đọc thuộc tính của bộ đọc không xác định (thư mục) trên /checkout, ảnh hưởng 45 tuần này.
Làm sao bây giờ?

Nghĩa là... 45 Khách hàng thực sự không thể hoàn tất thanh toán.1) Mở trang đó trong cùng một tổ hợp trình duyệt/ dịch vụ. (2) Mở bàn giao tiếp duyệt và sao chép lỗi (3( Hãy kiểm tra lại dòng mã chính xác.)4) Sửa lỗi, triển khai và theo dõi số đếm lỗi sẽ là 0.

Có OpsIQ bắt lỗi từ văn lệnh bên thứ ba?+

Phải. OpsIQ Thu tất cả JavaScript lỗi trên trang, bao gồm lỗi từ văn lệnh phân tích, ô điều khiển trò chuyện và văn lệnh quảng cáo. Bộ lọc bởi URL trong một đống dấu vết để tập trung vào mã lệnh của chính anh.

Làm sao để loại bỏ những lỗi vô hại?+

Bạn không thể nén lỗi cụ thể vào OpsIQ nhưng bạn có thể lọc danh sách theo trang URL hoặc thông điệp lỗi. Sửa hay bỏ qua lỗi từ phần mở rộng trình duyệt (chúng thường hiển thị là lỗi từ nguồn không rõ).

Bán

Bán và cải đạo

Theo dõi doanh số kết nối cửa hàng của bạn hoặc thanh toán nền tảng OpsIQ Bạn có thể thấy thu nhập cùng với hành vi của khách thăm, mỗi lần mua được quy cho một chuyến du lịch để bạn biết trang nào, chiến dịch nào và kênh nào điều khiển doanh thu.

Bán
BánMàn hình bán hàng: tổng thu nhập với một hệ thống kiểm soát thời gian, tìm kiếm và một bảng Purchases gần đây (ngày, khách hàng, nền tảng, số lượng, nguồn).Bányoursite.comÔ - hô - va$42,180+18%Mọi thời gian▾Tìm kiếm email, IP ID gọi...Purchasses gần đâyĐÃSỐ NGƯỜI CÔNG BỐPLATORMMỘT SỰ HIỆNMỘTJun3[email protected]Shopify$49googleJun3[email protected]WooCommerce$129directJun2[email protected]Stripe$480quảng cáo1Ô - hô - vaThứ tự và Mới2RECENT PURCHASESNgày / số lượng khách tương ứng3ATTRIBUTEDĐến nguồn giao thông
Màn hình bán hàng thật, thu nhập lên trên cùng, rồi đến ngày tháng, ngày, sân ga, số lượng, mỗi cửa hàng đều quy cho nguồn giao thông.

Bảng điều khiển bán hàng

Ngày hôm nay bán hàng

Hoàn tất lệnh từ hôm nay, sẽ được làm lại với mỗi sự kiện có trật tự từ nền tảng kết nối của bạn.

Tuần này / tháng này / tổng

Tổng số tiền thu nhập trong thời gian đó, giá trị từ chối được trừ đi từ tổng số này.

Biểu đồ Trend

Biểu đồ Đường thẳng hiển thị thu nhập hàng ngày trên phạm vi ngày tháng đã chọn. Hãy tìm các điểm gai (cảm ứng, chiến dịch) và nhúng (tiểu đồ theo mùa).

Nguồn chuyển đổi trên

Nguồn giao thông nào dẫn đến nhiều khách hàng nhất. "Kẻ mua" thường đánh dấu trang web của bạn. "Google" người mua tìm thấy bạn qua việc tìm kiếm.

Mua gần đây

Các đơn hàng gần đây với email của khách hàng, số lượng, tiền tệ và các mặt hàng mua.

Các vụ mua chưa được xác nhận (đi chơi thường xuyên)

Khi người theo dõi thấy khách đến để xác nhận mua hàng trong trình duyệt, nhưng chưa có nền tảng nào liên quan đến việc bán hàng, chuyến đi của khách hàng cho thấy một tiệm Purchase (không xác nhận) xếp hàng với một phù hiệu hổ phách. Nó không bao giờ tính là thu nhập. Khi nền tảng xác nhận việc bán, việc mua đã được xác nhận thay thế nó.

Hòa giải

Kết nối bán hàng không phụ thuộc vào mỗi lưỡi cắm. Mỗi tín hiệu thanh công cụ gửi có thể mở cửa hàng, và hợp đồng kết nối 2.3 Tự đọc lại danh sách bán xong của nền tảng trên lịch (mặc định là hàng giờ trong không gian làm việc) để một cái móc trang web không bao giờ có thể bị mất giá. Tổng đài có thể chạy nó theo yêu cầu từ dòng lệnh với công cụ/sale_recile.p.

Hướng dẫn thiết lập nền tảng

Shopify

Tới « Kết nối » >Shopify. tạo một ứng dụng tự chọn cho bạn Shopify admin (đặt > Áp dụng và các kênh bán hàng > phát triển ứng dụng). Tuỳ chọn cung cấp: đọc_ thứ tự , đọc_ khách hàng, đọc_ sản phẩm. Chép _phụ lục. API Ghi vào đây. OpsIQ, nhập vào miền của cửa hàng (v. d. your-store.myshopify.com) và hiệu bài truy cập. Nhấn vào Kết nối Thử ra. Nếu thành công, hiệu lực đồng bộ trình điều khiển web cho thông báo thông báo thời gian thực.

WooCommerce

Tới « Kết nối » >WooCommerce Trong... WordPress Adam, đến WooCommerce Thiết lập > Cấp cao > Tuỳ chọn API. Tạo một chìa khóa có quyền đọc/ ghi. Sao chép bí mật của người dùng và người dùng. OpsIQ hãy vào trang web của bạn URL, phím tiêu dùng và mật khẩu của người tiêu dùng. Nhấn vào Kết nối Thử ra.

BigCommerce

Tới các kết nối > BigCemerce. Trong tờ kiểu dáng đại diện của bạn, hãy tới Thiết lập Cấp cao >API Tài khoản. Tạo một V2/V3 API Tài khoản với phạm vi đọc cho các đơn vị trật tự, khách hàng và sản phẩm.API nhập chúng vào OpsIQ và kiểm tra.

Magento2

Tới « Kết nối > Magento ». Trong nền của bạn, hãy tới hệ thống > Hợp nhất. Tạo một sự kết hợp mới với API Truy cập tài nguyên vào máy bán hàng, khách hàng và nhà sản xuất. Kích hoạt sự tích hợp và sao chép biểu tượng truy cập. Hãy nhập vào OpsIQ với căn cứ Magento của bạn URL.

PrestaShop

Tới « Kết nối > PrestaShop ». Trong bảng điều khiển Prestashop của bạn, hãy tới Dịch vụ Mạng Nâng cao. Hãy bật dịch vụ Mạng và tạo một phím mới. Cho phép truy cập vào các thứ tự, khách hàng và sản phẩm. Hãy sao chép chìa khóa và nhập nó vào. OpsIQ với cửa hàng của bạn URL.

OpenCart

Tới « Kết nối > OpenCard ». Tạo ra API Thông tin từ bảng quản trị OpenCart. Nhập vào API URL Tên người dùng và phím OpsIQ Kết nối sử dụng OpenCard's RTT API để đặt hàng và khách hàng dữ liệu.

osCommerce

Tới « Kết nối > osCommerce ». Cấu hình truy cập cơ sở dữ liệu hay API Thông tin như được ghi chép trong thiết lập kết nối. Sự kết hợp osCommerce thường đòi hỏi quyền truy cập trực tiếp cơ sở dữ liệu hoặc tùy chỉnh API module.

Stripe

Tới « Kết nối » > StripeNghe rõ Stripe Hạn chế API Chìa khóa từ Stripe Bảng thông tin (Những người khám phá > API Phím tắt cần đọc quyền truy cập của các khách hàng, sạc, hoá đơn và thư viện con. Nhập vào OpsIQCấu hình điểm kết thúc web cho các sự kiện thời gian thực.

Tự chọn/ Nền tảng khác

Dùng sự tự do ý chí API hoặc các móc để gửi các sự kiện bán hàng từ bất kỳ nền tảng nào. Gửi lệnh. hoàn tất sự kiện bằng email, số lượng, tiền tệ và mục. Xem các sự việc API Một phần cho định dạng tải.

Hiểu được cái ống bán hàng của anh.

Nguồn chuyển đổi trên

Shows which channels bring paying customers. If Google brings 1000 visitors and 50 sales, that is a 5% conversion rate. If email brings 200 visitors and 30 sales, that is 15%. Email is more effective per visitor.

Gỡ bỏ

Các đơn đặt hàng được theo dõi riêng biệt, giảm tổng thu nhập của bạn.

Quản lý tiền tệ

OpsIQ lưu trữ tiền tệ và số lượng giao dịch ban đầu. Các doanh nghiệp đa kinh doanh nhìn thấy lợi nhuận trong mỗi tiền tệ. Báo cáo thường sử dụng tỷ lệ trao đổi cấu hình.

Ví dụ làm việc

100 Khách, không bán hàng

Tình huống:
Trang giá của bạn nhận được 100 Khách hàng mỗi ngày nhưng không có sự cải đạo.
Làm sao bây giờ?

Điều tra: (1( Xem cách họ tương tác với bảng giá trị.)2Hãy kiểm tra trang đầu, tốc độ bật lên của trang giá trị và giờ trên trang (theo thời gian)3Hãy kiểm tra các cuộc trò chuyện thân mật từ những người đến thăm trang web.4( So sánh trang giá trị của bạn với các nhà cạnh tranh).5) Thử nghiệm A/B với các bố trí giá trị khác nhau.

Phân phối cho chiến dịch tiếp thị

Tình huống:
Anh gửi một chiến dịch email với thẻ UTM.
Làm sao bây giờ?

Tới nơi bán hàng và lọc thông tin theo nguồn. Tìm kiếm tham số UTM chiến dịch. Bạn sẽ thấy:1) Có bao nhiêu khách đến thăm qua email (2) Có bao nhiêu người đã đổi sang bán hàng (3) Tổng doanh thu quy cho chiến dịch này (4) Hãy so sánh với cùng một giai đoạn trước chiến dịch.

Tại sao bán hàng lại chỉ số 0 mặc dù cửa hàng của tôi có đặt hàng?+

Kiểm tra:1) Bộ kết nối có được kết nối và khỏe mạnh không?2) Việc đồng bộ web có được bật không? Nếu dùng khả năng thăm dò, công việc cron có hoạt động không?3) Máy kết nối có quyền API Kính ngắm? Shopify Anh cần phải đọc yêu cầu.

Chào. OpsIQ Cho khách hàng bán?+

Khi một mệnh lệnh đến thông qua hệ thống kết nối, OpsIQ Nếu khách truy cập được tìm thấy trước khi mua, việc bán được quy cho cuộc hành trình du lịch của họ, kể cả nguồn giao thông, trang hạ cánh và lịch sử phiên họp.

Tôi có thể tự thêm doanh số không?+

Bạn có thể gửi các sự kiện bán hàng qua REST API hoặc kết nối từ bất kỳ hệ thống nào. Định dạng sự kiện được ghi lại trong các sự kiện API Khu vực.

Thương mại

Xây dựng, khởi động và điều hành cửa hàng bản địa

Cửa hàng làOpsIQCửa hàng địa phương của họ để mua sản phẩm, trang web, sách hướng dẫn tìm kiếm, bảng quảng cáo, hóa đơn, tài khoản khách hàng và các tài khoản hỗ trợ hỗ trợ việc bán tin nhắn cho khách hàng qua mạng xã hội.

Bắt đầu trong việc tiếp thị→Cửa sổ

1
Chọn vùng làm việc

Xác nhận vị trí bạn đang cấu hình. sản phẩm, thiết lập, trang, mệnh lệnh, và phân tích được cô lập trong không gian làm việc đó.

2
Bật/ tắt chạy bộ lọc và cửa sổ

Thiết lập chung→Nền kinh tế là quyền của cha mẹ. Xuất bản trước kho, sắp xếp tạo và thanh toán vẫn còn riêng biệt để bạn có thể xem thử mục lục an toàn.

3
Xuất bản toàn bộ sản phẩm

Đặt kiểu sản phẩm, giá, tiền tệ, kho lưu trữ, biến thể/ tùy chọn, phương tiện và hoàn thành. Xem thử sản phẩm và các lựa chọn đăng ký trước khi xuất bản.

4
Cấu hình thanh toán và làm tròn

Kết nối một cổng ra vào, thêm vào chuyển ngân hàng, tiền mặt hoặc tiền công. Hàng hóa vật lý cần thiết khu vực giao hàng hay bộ sưu tập; các hàng hóa số cần được bảo vệ hoặc mã hóa.

5
Chạy Đọc/ Phóng

Sửa chữa mọi ngăn chặn và xem lại mọi cảnh báo, sau đó hoàn thành một lệnh từ cửa hàng công cộng.

Nội dung về sự khởi động và chính sách

Các cửa hàng mới và nâng cấp nhận được đoạn đầu mở đầu có thể sửa đổi cho Về chúng ta, Điều kiện và kỳ, Riêng tư, và Tiền và tiền thối Khi những cánh đồng đó trống rỗng, không bao giờ viết quá nhiều.

  • Thay thế mọi [Add …] Thời gian và TIẾNG TIẾNG thông báo trước khi phóng.
  • Sử dụng tên thật của pháp luật, đường liên lạc, lời hứa được thực hiện, quy tắc trả về, thực hành dữ liệu, thời gian lưu trữ và thị trường phục vụ.
  • Hãy ghi nhớ những lời khuyên thích hợp cho sản phẩm và quốc gia mà bạn phục vụ. chứ không phải lời khuyên pháp lý.

Thiết kế, trang và quảng cáo

Thiết kế sắc thái và trang

Chọn một sắc thái và cấu hình màu đã sửa đổi, rồi chỉnh sửa các nét chữ, các hình dạng, chiều rộng, chuyển động, lượn và hành vi tối. Xem thử màn hình và điện thoại trước khi lưu.

Giới thiệu về: Showsec/ lookbook and account

Xây dựng từ những khối có thể sắp xếp lại được. mỗi khối đều có những biến thể thiết kế cao cấp. giữ những khối lập trình như thống kê, đội ngũ, giải thưởng hoặc trích dẫn cho đến khi nội dung của chúng là đúng.

Trang tự chọn

Đặt tiêu đề, ốc sên, anh hùng,SEO và đặt hàng các khối; xem thử trong khi vẽ, sau đó xuất bản. Các tuyến dự trữ như xe đẩy, thanh toán, tài khoản và chính sách không thể được sử dụng lại.

Bảng điều khiển và sự bật lên xúc cảm

Tạo một trang kiểu dáng với ít nhất một khối. Hãy chọn thiết kế kiểu cao cấp, trung tâm/ trái/ phải/ dưới, tải/ delay/exit/ nhấn chuột, bộ thu/ nhấn, chuyển động, độ rộng, phiếu và ứng dụng hiệu chỉnh một lần. Thử nghiệm đóng, bàn phím và bố trí điện thoại.

Trình đơn và chân trang

Liên kết đến trang, sản phẩm, tập hợp, chính sách, tài khoản/help/cart hành động, chỉnh sửa sống hoặc an toàn bên ngoàiURLsMục tiêu đầu tiên hỗ trợ một thả xuống/mega-menu.

Name

Bật khả năng bán trò chuyện của khách, rồi chọn nơi nào mà khách có thể mua. Trợ lý tìm kiếm mục lục và yêu cầu máy phục vụ cho một trích dẫn có thẩm quyền; máy phục Vụ không phải là mô hình tạo thẻ thứ tự đã ký. Xác nhận chỉ xảy ra qua thẻ đó trên mạng hoặc tương tác đã xác nhận trên kênh xã hội.

WhatsAppNgười đưa tin,Instagram, TelegramĐường dẫn, tin nhắn và X sử dụng tài khoản kênh được cung cấp như là danh tính kênh. Email vẫn còn được thu thập để lấy hoá đơn. Kết nối đặt hàng giữ toàn cục hợp đồng phổ biến có chữ ký, và cấu hình cửa hàng không thay đổi hợp đồng đó.

Lưu trữ các phân tích trí thông minh

Xem xét các vị khách độc đáo, quan sát sản phẩm, thư viện, việc đăng ký xe đẩy, việc thanh toán bắt đầu/tải bỏ/ đối chiếu, chuyển đổi, các lệnh xác nhận, thu nhập, thu thập, thiết bị, quốc gia/cities, sản phẩm cao, các cảnh báo về sự phục hồi và dữ liệu chất lượng. Thao tác này sử dụng rõ ràng các sự kiện công cộng được đánh dấu; tổng số tiền tệ không bao giờ được kết hợp một cách âm thầm. Một dấu gạch lát có nghĩa là phạm vi chọn không thể trả lời câu hỏi chuyển đổi (không phải là 0.%).

ChungOpsIQ API

Dùng chìa khóa mang theo commerce.read; analytics.read Ngoài ra, người ta còn chụp ảnh những người phân tích và không gian làm việc của chìa khóa có thẩm quyền.

Mở rộng
{ "action": "commerce.storefront.get" }
{ "action": "commerce.storefront.catalog.get" }
{ "action": "commerce.pages.list", "kind": "modal", "status": "live" }
{ "action": "commerce.analytics.snapshot", "range_days": 30 }
{ "action": "commerce.readiness.get" }
{ "action": "commerce.products.list", "filters": { "active": true } }

Cửa hàng có cấu hình an toàn công cộng trả lại,URL, thực đơn và nhà xem khởi động. Danh sách mục cửa sổ trả lại mọi sắc thái, thiết kế trang, kiểu khối, hợp chất ngăn chặn và vỏ quảng cáo cao cấp không bao giờ khó mã hoá các sự lựa chọn. Danh mục trang nào trả lại trang cá nhân và phương pháp điều chỉnh cao. Tính năng phân tích trả về không có danh tính khách hàng. Tính chất sẵn sàng gửi đi kiểm tra khởi động có thể hoạt động lại. OpenPI và Postman sử dụng cùng những hợp đồng này.

Lần lái trước khi khởi động cuối cùng

  1. Màn hình và điện thoại: nhà, tìm kiếm, sản phẩm/vranant, xe đẩy, chứng nhận kiểm tra tài khoản, theo dõi, tải về, liên lạc, chính sách, sổ tay, trang, thực đơn và mọi đề án sống.
  2. Hoàn thành một hộp cát và xác nhận tình trạng đặt hàng, hóa đơn, cổ phiếu và hoàn thành.
  3. Đặt một khách hàng đặt thứ tự trò chuyện và một thứ tự _nhà cung cấp trên mỗi kênh xã hội được bật.
  4. Xác nhận những sự kiện đó xuất hiện dưới bề mặt chính xác và tiền tệ trong Cục Tình báo Lưu trữ.
⚠️
Chính sách bắt đầu làm cho cửa hàng không rỗng, nhưng nó không phải là bản sao hợp pháp. Tính năng đọc giữ cảnh báo cho đến khi thay thế mọi dấu nhắc.
Bán

& Dẫn

Người dẫn đầu là khách hay khách hàng có ý định mua hoặc ủng hộ. OpsIQ Tự động phát hiện dẫn đến hành vi: việc thăm lại trang, thăm lại, tương tác trò chuyện, bắt đầu kiểm tra và đính hôn cao. Hãy dùng trang chủ để ưu tiên và cung cấp đường ống CRM.

& Dẫn
& DẫnMàn hình dẫn: một bảng có thể tìm kiếm bằng IP Email, vị trí, thiết bị, nguồn và các cột thời gian, và nguồn và đất nước cao nhất.& Dẫnyoursite.comTìm kiếm IP thành phố, đất nước...Nguồn chính: google · Nước chủ nhà: MỹIP Nhóm Việt hoá KDEEMAIL OF TRANSLATORSSỐ NGƯỜI CÔNG BỐĐÃ BÀIMỘTtime41.62.10.4Anh Quốc (· Luân Đôn)Di độnggoogle4mm 12s[email protected]US_ New YorkMàn hình nềndirect7mm 02s[email protected]DE_ BerlinDi độngUtm:ads5mm 40s203.0.113.9CA_ TorontoMàn hình nềngoogle3m28s1DETECTEDNhững vị khách có chủ ý cao2TOPNguồn và quốc gia dẫn đầu3ENRICHEDIP Vị trí, thiết bị, thời gian
Những màn hình thật sự dẫn đầu, du khách cao độ như một bảng tìm kiếm (IP Email, vị trí, thiết bị, nguồn tin, thời gian trên trang web với các nguồn và quốc gia hàng đầu.

Cái gì tạo ra một đầu mối

Đang xem trang Mạng

Những người đến thăm xem giá trị hoặc các trang kế hoạch của bạn đang tích cực cân nhắc việc mua sắm.

Thăm lại

Những người trở về nhiều lần đã đính hôn nhưng chưa cải đạo.

Giao tiếp bằng tiếng nói

Những người bắt đầu cuộc trò chuyện đang tích cực tìm kiếm sự giúp đỡ, hoặc trước khi mua hay sau khi ra mắt.

Bắt đầu kiểm tra

Những người đến dự buổi họp nhưng không hoàn tất việc mua bán.

& Trắng

Khách đến thăm đăng ký, yêu cầu được cấp giấy phép hoặc đăng ký.

đính hôn trên trang cao

Những người đến xem nhiều trang với thời gian dài đang nghiên cứu sâu xa.

Bảng chi tiết chính

Nhấn vào bất kỳ manh mối nào để xem hồ sơ đầy đủ của họ:

Nhận diện

Tên, email, công ty nếu biết. IP và vị trí.

Phiên chạy

Tất cả các phiên họp từ đầu với dòng chảy trang, khoảng thời gian và nguồn.

Xem trang

Mỗi trang họ ghé thăm, đặt hàng theo thứ tự trong sạch.

Nguồn

Làm thế nào họ tìm thấy bạn: hữu cơ, trả tiền, xã hội, giới thiệu, trực tiếp.

Điểm số chính

A0-100 Điểm dựa trên cường độ hành vi, sự thanh toán và mục đích trang.

Trạng thái CRM

Cho dù chì này đã được thêm vào CRM như một mối liên hệ hay thỏa thuận.

Mẹo bán hàng

Một gợi ý được tạo ra về những gì cần làm tiếp theo (v.g., giá cả bị hạn chế) 3 hãy xem xét cách tiếp cận tích cực").

Phù hiệu chì có giá trị cao

Dẫn đầu với điểm số ở trên80Đây là những triển vọng nóng bỏng nhất của bạn, ưu tiên cho việc tiếp cận, trò chuyện chủ động hoặc CRM Lối vào đường ống.

Ví dụ làm việc

Làm việc theo hướng dẫn viên

Tình huống:
Name 3 thời gian trong 2 Ngày, bắt đầu một cuộc trò chuyện hỏi về kế hoạch kinh doanh, nhưng chưa mua.
Làm sao bây giờ?

Đây là đầu mối cao cấp.1) Hãy kiểm tra chi tiết dẫn đầu để biết được thông tin về công ty và vai trò của họ.2( Xem lại đoạn chat để biết rõ nhu cầu và sự phản đối.)3) Tạo một thỏa thuận trong CRM với thông tin được thu thập.4Hãy giao nhiệm vụ tiếp theo cho một thành viên của đội bán hàng.5Nếu họ trở lại trang giá trị, quy tắc tán gẫu chủ động có thể kích hoạt một thông điệp cá nhân.

Chuyển đổi không tên dẫn tới liên lạc CRM

Tình huống:
Anh có... 50 Đầu mối ẩn danh với điểm cao nhưng không có địa chỉ email.
Làm sao bây giờ?

Tùy chọn: (1) Tạo một quy tắc chủ động cung cấp giảm giá hoặc tải về tài nguyên để đổi lấy thư điện tử trên trang chủ cao.2) Dùng ô điều khiển trò chuyện để yêu cầu email khi khách truy cập nặc danh bắt đầu một cuộc trò chuyện.3) Thêm một hiệu bài nhận diện vào trang đăng nhập/ ký của bạn để tự động nhận diện khách tham quan trở về.

Điểm chính được tính toán thế nào?+

Điểm này được tính: có thể thăm (ở giữa = cao hơn), tần số thăm viếng (hơn = cao), trang xem (tách / kiểm tra = cao, khoảng thời gian phiên chạy (lâu hơn = cao), tương tác chat (bị hạn chế = cao cấp hơn), và trở lại (thỉnh thoảng phiên họp = nhiều lần)

Tôi có thể tùy chỉnh quy tắc ghi điểm chì không?+

Vào trong đi.CRM Cấu hình, bạn có thể thêm các quy tắc phân loại chì để nâng cao điểm dựa trên các từ khóa, sự kiện, nguồn hoặc kiểu trang.

CRM

Của bạn CRM · Bắt đầu ở đây

OpsIQTàu chiến toàn bộ trước.CRM Mọi hoạt động AI đều có nguồn gốc, giải thích được, có thể điều khiển lại và phê duyệt.

Al CRM
Tóm tắt Al CRMMột quay số tín nhiệm cho đối tác phụ bên cạnh 4 thẻ đặc vụ Al: Steward, Pronor, Retention và Analyst.Al CRMMiền làm việcĐiện thoại tin cậyThủ côngPhi côngLái tự độngAI tự làm được bao nhiêuDSQuản lýDedupe, phong phú,Dữ liệu có khả năngThẻ_Người tiên triTìm & điểmLàm ăn mớiRTNhớDấu chấm,lái xe mớiỞ đâu?Phân tích& Mặt trờiGiải thích số1AI-FIRSTBốn đặc vụ chuyên nghiệp2YOU DECIDETin tưởng vào sự tự trị quay số3TRUSTED& Có khả năng đảo ngược nguồn
Một AI- first CRM Được điều hành bởi bốn đặc vụ chuyên nghiệp, và một chiếc xe quay số Trust quyết định họ sẽ làm bao nhiêu một mình.

Tổng quát trang CRM

Al CRM (Trung tâm điều khiển)

Bắt đầu từ đây

Màn hình chính hàng ngày của bạn: xung thu nhập, những gì AI tìm thấy, những việc nó đã làm, xếp hàng, các nước đi tiếp theo, sức khỏe đặc vụ và ROI.

Contact & mới

lõi

Mọi người và công ty trong CRM Tìm kiếm, lọc, điểm và quản lý hồ sơ.

Đường ống

lõi

Giao dịch trực quan với giai đoạn kéo và thả, giành được xác suất, và AI huấn luyện.

Báo trước và báo cáo

lõi

Dự báo cấp cao: được giao nhiệm vụ, có thể là tốt nhất, với khoảng thời gian tự tin và theo dõi chính xác.

Xe đạp sống

lõi

Nơi mà mọi khách hàng đứng: hoạt động, có nguy cơ, mở rộng sẵn sàng, đổi thời gian, hoặc khuấy động.

Xây dựng của tôi CRM

Cấu hình

Hãy mô tả thiết lập CRM của bạn bằng tiếng Anh đơn giản. OpsIQ Tạo ra một kế hoạch đảo ngược và áp dụng nó khi được chấp thuận.

CRM Sức khỏe

Đặc

Tự kiểm tra trang: :schema, đặc vụ, lộ trình, hành động AI, và số liệu trực tiếp.

Làm thế nào OpsIQ Giữ cho em an toàn

Hỏi trước khi diễn

Đề nghị AI đi đến hàng đợi phê chuẩn. Bạn chấp nhận, chỉnh sửa, hoặc từ chối mỗi một điều, không có gì xảy ra mà không cần bạn nói.

Không bao giờ ghi đè

Khi AI đề nghị thay đổi, nó cho thấy giá trị hiện tại và giá trị được đề xuất dữ liệu có thể chứng minh trong con người.

Mọi thứ đều có thể đảo ngược

Mỗi hành động AI đều được ghi lại trong nhật ký, bạn có thể thay đổi mọi thay đổi bằng một cái click chuột.

Giải thích được

Mỗi một tài liệu trên AI đều cho thấy lập luận và dữ liệu nó sử dụng.

Mới tinh hả?

1
Mở AI CRM

Nhấn vào AI CRM Trung tâm chỉ huy cho thấy tình trạng hiện tại của anh.

2
Kiểm tra CRM Sức khỏe

Mở CRM Sức khỏe để xác minh các đường đi, giản đồ và đặc vụ đã sẵn sàng.

3
Contact & mới

Nếu bộ kết nối hoạt động (Shopify, WHMCS, v.), liên lạc được nhập tự động. Nếu không, nhập qua CSV hoặc tạo bằng tay.

4
Tạo đường ống

Hãy đến đường ống và tạo ra những đường ống đầu tiên với (v. d., edge, Qualified, Proposal, thương lượng, Won, Lost).

5
Thêm thỏa thuận đầu tiên của bạn

Tạo một thỏa thuận từ một liên lạc, thiết lập số lượng và sân khấu, và để cho Huấn luyện viên đồng thuận hướng dẫn bạn.

Tôi có cần phải sử dụng CRM?+

Không, CM là lựa chọn khác. OpsIQ làm việc hoàn hảo như một nền tảng theo dõi + hỗ trợ + AI mà không có CRM. Hãy bật nó khi bạn sẵn sàng quản lý các mối quan hệ bán hàng và khách hàng.

Có thể CRM làm việc mà không có người nối máy?+

Có, bạn có thể tạo liên lạc và giao dịch bằng tay. Kết nối làm giàu CRM có dữ liệu nền tảng ( đặt hàng, đăng ký, vé) nhưng không cần thiết.

Lớp đáng tin cậy là gì?+

Hệ thống tín nhiệm là hệ thống an toàn điều khiển những gì AI có thể làm. Chế độ điều khiển phụ (mặc định): AI đề nghị, con người chấp nhận. Chế tính tự động (pt-in): AI hoạt động tự động trên các thao tác ít rủi ro, có khả năng đảo ngược.

CRM

Màn hình chính AI CRM

Trung tâm chỉ huy là cuộc họp hàng ngày của anh. và phải làm gì tiếp theo.

Trung tâm lệnh
Trung tâm điều khiển CRMNhà CRM với các dự án dự báo/Win-rate/Ppeline toggles, một công ty truyền hình KPI nặng nề, và một hàng đợi ứng dụng và bị mất tín hiệu trên mỗi hàng.Trung tâm điều khiển CRMMiền làm việcForcastThắngĐường ốngFECAST · CÂU HỎI NÀY754k87%Đề xuất AI (cũng) xác nhận hàng đợiTạo giao dịch · Acme $24ktừ cuộc trò chuyện với người muaÁp dụngGiải tán!Chuyển Nimbus→ProposalTìm thấy câu trả lời dươngÁp dụngGiải tán!Ghi lưu tác vụ # theo sau ĐỉnhKhông có hoạt động trong 7 ngàyÁp dụngGiải tán!1TOGGLEForcast · Win s· Pipline2AI PROPOSESCác giao dịch, giai đoạn, nhiệm vụ3YOU DECIDEThích hay không
Trung tâm chỉ huy: chuyển giao giữa Forecast, Win và Pipline, và làm việc với hàng đợi đề xuất AI phê chuẩn hoặc bác bỏ các thỏa thuận, vận động sân khấu và các công việc mà nó đề nghị.

Trung tâm chỉ huy cho thấy gì

Số ngày hôm nay

Giá trị đường ống, thỏa thuận, đầu mối mới, giao dịch hoạt động và xu hướng doanh thu, một hình ảnh của tình trạng hiện tại.

Sao? OpsIQ Tìm thấy

Hiểu biết được về AI: các thỏa thuận bị trì hoãn, các tài khoản rủi ro, cơ hội mới, vấn đề chất lượng dữ liệu, và tín hiệu thị trường.

Sao? OpsIQ đã làm

Các hành động AI đã thực hiện (trong tự động điều khiển) hoặc đề xuất (trong công ty phụ): tiến bộ, cập nhật điểm số, liên lạc với các phong phú và tạo tác vụ.

Cần được chấp nhận

Hàng đợi các đề nghị của AI cho thấy hành động, lý luận và bằng chứng đã được đề nghị.

Bước tiếp theo

Danh sách được xếp hạng bởi AI của những thứ quan trọng nhất 10 cần làm ngày hôm nay: theo dõi một thỏa thuận nóng, kiểm tra tài khoản có rủi ro, nghiên cứu một mối liên hệ mới, v. v.

Trạng thái hỗ trợ

Sức khỏe của các đặc vụ Al: bắt giữ, Data Steward, đồng thuận thông tin tình báo, hỗ trợ huấn luyện viên, SDR, chú ý. Xanh lá cây = chạy, hổ phách = cần sự chú ý, đỏ = lỗi

Kết quả

Theo dõi ROI: các vụ làm ăn do AI gây ra, thời gian tiết kiệm, chính xác của dự đoán và so sánh với công việc CRM bằng tay.

Dịch vụ phụ trách buổi sáng

1
Đọc số ngày hôm nay

Kiểm tra sức khỏe và lợi nhuận.

2
Xoá hàng đợi chấp nhận

Xem lại mỗi đề nghị của AI, áp dụng những hành động an toàn, chỉnh sửa nơi cần thiết, bác bỏ những gợi ý sai lầm.

3
Kiểm tra xem OpsIQ Tìm thấy

Có thỏa thuận nào không?

4
Làm việc với danh sách các nước đi tiếp theo

Đầu tiên là ưu tiên hàng đầu. AI đã xếp hạng chúng bằng sự cấp bách và khả năng va chạm.

Bắt kịp sau khi thời gian ra

Tình huống:
Anh đi vắng một tuần, có chuyện gì xảy ra khi anh đi vắng?
Làm sao bây giờ?

Mở trung tâm chỉ huy và kiểm tra: (1) "Cái gì OpsIQ"đã làm" cho thấy tất cả các hành động AI trong thời gian vắng mặt của bạn.2) "Những lời phê chuẩn cần thiết" cho thấy những đề nghị đang chờ bạn xem xét (Cười)3) "Cái gì OpsIQ tìm thấy" nêu bật những mục khẩn cấp (4) Đặt phạm vi ngày giờ bảng thành thời kỳ vắng mặt để xem xu hướng này.

CRM

Liên lạc, công ty và hợp đồng

Hạt CRM Sắp xếp các mối quan hệ kinh doanh thành bốn đối tượng: liên lạc (người), công ty (các tổ chức), Giao kèo (cơ quan cơ hội) và Tác vụ (hành động theo dõi).

Đối tượng CRM
Đối tượng CRMMột hồ sơ liên lạc với Công ty, các đối tượng được giao dịch và tác vụ trong một đồ thị kết nối.Đối tượng CRMMiền làm việcContact & mớingười · emails· phoneCông tiaccountsThỏa thuậnCơ hội thu nhậpTác vụhành động theo1OBJECTSGiao dịch, công ty, thương lượng2LINKEDMột đồ thị được kết nối3TASKSTheo dõi được kèm
Bốn đối tượng cốt lõi (các công ty, các giao dịch và nhiệm vụ) được liên kết với một đồ thị khách hàng đã kết nối.

Contact & mới

Liên lạc là gì?

Một người trong anh.CRM Họ có thể là khách hàng, triển vọng, đối tác hoặc đầu mối.

Đang tìm liên lạc

Dùng thanh tìm kiếm để tìm tên, email, công ty hoặc thẻ. Dùng bộ lọc: giai đoạn sống, điểm số chì, nguồn, quốc gia, ngày hoạt động cuối cùng, người sở hữu được chỉ định.

Hồ sơ liên lạc

Hãy nhấp chuột vào một liên lạc để xem hồ sơ đầy đủ của họ: thông tin cá nhân, công ty, thương lượng, hoạt động, vé, chat, thăm dò trang web, điểm số điện thoại và độ sâu AI.

Điểm nóng

A0-100 Tính toán từ các tín hiệu hành vi: thăm dò trang web, đính hôn email, tương tác chat, mua lịch sử, và trả về. cao hơn = nóng hơn.

Các công ty

... thêm vé...
Liên lạc - liên lạc

Liên lạc được liên kết với các công ty qua email hoặc hướng dẫn sử dụng.

Các thỏa thuận

Thỏa thuận là gì?

Một cơ hội thu nhập. và liên lạc liên lạc/người bạn đồng hành.

Thắng xác suất

Xác suất để thắng thỏa thuận. Đặt bằng tay hay tính toán bởi AI dựa trên dữ liệu chiến thắng lịch sử của bạn. Hãy đặt dự báo có trọng lượng.

Nhận sức khỏe

Xanh lá cây (có nguy cơ bị nhiễm trùng), hoặc đỏ.

Tác vụ

Nhiệm vụ là gì?

Một hành động tiếp theo được gán cho một người. Tác vụ có tiêu đề, ngày tháng, ưu tiên, gõ (gọi, email, họp, điều khác) và liên lạc/ hợp lý.

Công việc đã tạo ra Al

AI tự động tạo ra các công việc khi nó phát hiện điều gì đó cần sự chú ý: tiếp tục một thỏa thuận bị trì hoãn, đáp ứng với một tài khoản có nguy cơ cao, nghiên cứu một đầu mối mới.

Tìm kiếm đầu mối nóng

Tình huống:
Bạn muốn thấy tất cả các mối quan hệ cao cấp ở Anh những người chưa được liên lạc gần đây.
Làm sao bây giờ?

Tới liên lạc. Lọc theo: Điểm số chì > 80 Quốc gia = Anh Quốc, hoạt động cuối cùng > 7 Sắp xếp điểm số dẫn đầu giảm dần. ưu tiên tiếp cận.

Tạo một thỏa thuận từ một liên lạc viên

Tình huống:
Một liên lạc vừa tỏ ra quan tâm đến kế hoạch kinh doanh của anh trong lúc trò chuyện.
Làm sao bây giờ?

Mở hồ sơ liên lạc. Nhấn vào "Tiềm thức." Hãy nhập tên thỏa thuận (v. d., "Acme Corp - Enterprise Plan", số lượng, đường ống và sân khấu (v...), "Calified"). Hãy chọn ngày gần nhất và chỉ định nó cho riêng mình. Giao dịch qua D.

CRM

Đường ống ( bảng giao dịch)

Đường ống là một bảng thị giác, nơi các giao dịch chuyển từ trái sang phải. Kéo và thả thẻ để tiến hành các thỏa thuận. Mỗi lá bài cho thấy số lượng hợp đồng, khả năng và tình trạng sức khỏe.

Đường ống
Đường ống CRMMàn hình ống với các giao dịch mở, giá trị mở, Wighted-fored và thuộc tính-Slud-SQTs, một nút mới, một hàng đợi AI Approve, và bảng hướng dẫn/Qalified/Won.Đường ốngMiền làm việcGiao thức mở23Giá trị Mở128 ngàn đô.Dự báo hiệu chỉnh754kGiao dịch thuộc tính12+ Giao dịch mớiHàng đợi bổ sung2 để xem lạiLEDADVolt IncBốn ngànLửa6kĐƯỢC HIỆN TINNimbus30kĐỉnh9kWINGQuỹ đạo458k1LIVE STATSDự báo mở và & trọng lượng2AI QUEUEĐề nghị chấp thuận3BOARDKéo giao dịch theo sân khấu
Màn hình đường ống thật:

Dùng bảng đường ống

1
Xem các thỏa thuận của bạn

Các đường ống này cho thấy tất cả các giao dịch hoạt động như những lá bài được sắp xếp theo cột ( giai đoạn), mỗi cột cho thấy giá trị tổng số của thỏa thuận trong giai đoạn đó.

2
Kéo tới trước

Kéo một lá bài lên giai đoạn kế tiếp. Khả năng chiến thắng và tính nhanh chóng cập nhật. Nếu việc di chuyển bị lỗi thần kinh, thẻ sẽ được hiển thị trở lại vị trí ban đầu.

3
Kiểm tra phù hiệu quân bài

Biểu tượng xanh lá cây = khỏe mạnh (việc làm gần đây, theo kế hoạch). Hồng = có nguy cơ (chậm lại, cần chú ý). Đỏ = bị ngưng hoạt động (không hoạt động quá lâu).

4
Nhấn để biết chi tiết

Nhấn vào một lá bài để mở bảng điều khiển chi tiết về các liên lạc, hoạt động, soạn thảo cho Huấn luyện viên qua giao diện và hành động nhanh.

Hàng đợi chấp thuận

Các đề xuất của AI được đưa ra trong hàng đợi chấp thuận ở trên trang đầu của đường ống. mỗi đề xuất cho thấy AI muốn làm gì, tại sao, và bằng chứng.

Áp dụng

Chấp nhận đề xuất là "có" hành động này được ghi lại trong tờ báo.

Sửa

Thay đổi đề nghị trước khi chấp nhận, chẳng hạn hãy thay đổi cách trình bày hoặc điều chỉnh lượng tiền.

Từ chối

Giải quyết đề nghị đi.

Thắng xác suất được giải thích

Xác suất giành được có thể được đặt bằng tay hay tính toán bởi AI. Khi AI tính toán nó, nó sử dụng mô hình được đào tạo trên các giao dịch đóng của riêng bạn (đã thắng và bị mất). Nếu bạn không có đủ dữ liệu lịch sử, AI sẽ dùng xác suất mặc định giai đoạn. Xác suất điều khiển dự báo: $10,000 thỏa thuận 30% Đóng góp xác suất $3,000 cho dự báo "như thể" ấy.

Giao dịch với Won

Tình huống:
Một khách hàng đã ký hợp đồng và trả tiền.
Làm sao bây giờ?

Kéo thẻ thỏa thuận lên sân khấu "Won". OpsIQ Will: (1) Đánh dấu thỏa thuận như đóng cửa. (2) Cập nhật dự báo. (3) Thêm hoạt động "Won" vào dòng thời gian. (4) Nếu cấu hình, hãy khởi động một sự kiện mạng (crmLý tưởng.won). (5) Cập nhật giai đoạn liên lạc với xe đạp cứu sinh đến "Customer."

Nhận dạng thương vụ bị mắc kẹt

Tình huống:
Anh muốn tìm thỏa thuận đã ở cùng giai đoạn quá lâu.
Làm sao bây giờ?

Tìm phù hiệu đỏ trên bảng đường ống. Những thỏa thuận này không hoạt động lâu hơn ngưỡng mục được cấu hình (đặt vào CRM Cấu hình > Đường ống. Nhấn vào mỗi giao thức bị trì hoãn để xem đề nghị của Huấn luyện viên Giao dịch để phản ứng.

Tôi có thể có nhiều đường ống được không?+

Phải, tới đó đi.CRM Cấu hình > Đường ống để tạo đường ống dẫn thêm. Trường hợp dùng chung: ống dẫn riêng cho việc thay đổi doanh nghiệp mới, hoặc cho các sản phẩm/ dịch vụ khác nhau.

Chuyện gì sẽ xảy ra khi tôi thỏa thuận với "Lost"?+

Thỏa thuận đã được đánh dấu như là đóng-t thất bại. Bạn sẽ bị yêu cầu vì một lý do mất mát. Việc này bị gỡ bỏ ra khỏi bảng điều khiển hoạt động nhưng có thể tìm thấy trong bộ lọc giao dịch đóng. Liên lạc vẫn còn lại trong bảng làm việc.CRM.

CRM

Trình huấn luyện giao diện

Ban giám thị điều hành phân tích mỗi giao dịch và đưa cho bạn một bản tóm tắt về tình trạng sức khỏe, tín hiệu rủi ro, chìa khóa, bảng kiểm tra khả năng, chuẩn bị cho các buổi họp và đề nghị những hành động tiếp theo.

Nhận huấn luyện viên
Nhận huấn luyện viênMột thẻ tín dụng được liệt kê bởi AI- phát hiện tín hiệu rủi ro với nguồn chứng cứ, bên cạnh một lời khuyên AI và một nút email.Nhận huấn luyện viênMiền làm việcTập đoàn Acme_· $24,000Giai đoạn: Proposal · 60% thắngRISK BONALSKhông trả lời 10 ngàyVô địch im lặng.Xem thử được đề cập trong cuộc trò chuyệnNguồn:482 Trò chuyện 6/12 · Chỉ thư điện tửAI khuyênHãy hồi phục kinh tếNgười mua với RRI recapvà a 7- Kế hoạch gần đây.Nháp thư điện tử1SIGNALSTại sao một thỏa thuận có thể bị trượt2SOURCEDMọi yêu cầu đều đưa ra bằng chứng3LùiNhấn chuột vào bước kế tiếp
Các lá cờ huấn luyện viên cho biết tại sao một thỏa thuận có thể bị trượt (không có tín hiệu nào nêu ra nguồn) và đưa cho bạn nước tiếp theo để đi.

Huấn luyện viên nói gì với bạn

Giải thích sức khỏe

Tại sao thỏa thuận lại tốt, có nguy cơ hoặc bị trì hoãn. những tín hiệu cụ thể: ngày trên sân khấu, ngày liên lạc cuối cùng, tần số hoạt động, đối thủ được đề cập, các mẫu phản đối.

Tín hiệu

Phân loại thành: sự phản đối được nêu ra, đối thủ được đề cập, các cuộc thảo luận giá trị, hỗ trợ chỉ số rủi ro, tín hiệu tái tạo/ giải mã. Mỗi tín hiệu liên kết đến nguồn (bản sao, vé, email, hoạt động).

Bản đồ vô địch và cản trở

Ai đang giúp đỡ giao dịch và ai kháng cự (ngăn cản) dựa trên phân tích tương tác và các vai trò liên lạc.

Danh sách kiểm tra điều kiện

MDDICC hoặc BANT list (không thể truy cập) cho thấy tiêu chuẩn nào được đáp ứng và tiêu chuẩn đó còn thiếu.

Chuẩn bị cho buổi họp

Trước một cuộc họp theo lịch, huấn luyện viên tạo ra một chương trình ngắn: chương trình nghị sự, điểm then chốt để trang trải, câu hỏi, rủi ro để giải quyết và chuẩn bị vật liệu.

Trả lời và gọi kế hoạch

Đề nghị thông điệp tiếp theo hoặc gọi văn lệnh dựa trên tình trạng giao thức hiện thời và tương tác gần đây.

Thời gian chứng minh

Mỗi yêu cầu huấn luyện viên tạo liên kết đến một nguồn: số vé, mã nhận diện giao tiếp, ngày hoạt động hoặc thăm nơi Mạng.

Làm thế nào để sử dụng các huấn luyện viên

1
Đọc ngắn gọn

Mở bất cứ giao kèo và cuộn sách nào đến khu vực huấn luyện viên chia sẻ, đọc tình trạng sức khỏe và các tín hiệu chủ chốt.

2
Đóng các khoảng hở có ích

Kiểm tra danh sách kiểm tra. lập kế hoạch xác định và tham gia vào chủ ngân sách.

3
Hành động theo đề nghị

Huấn luyện viên đề nghị các hành động cụ thể tiếp theo. Nhấn vào để tạo một nhiệm vụ, soạn thảo một email, hoặc sắp xếp một cuộc họp, tất cả đều được chuyển qua hàng đợi phê chuẩn.

Chuẩn bị cho một cuộc họp lớn

Tình huống:
Bạn có một cuộc họp với một triển vọng vào ngày mai về một $50,000 Thỏa thuận.
Làm sao bây giờ?

Mở cửa và đọc phần chuẩn bị cho buổi họp.1) Những điểm then chốt nói về những điểm dựa trên sự tương tác gần đây.2) Họ phản đối trong cuộc trò chuyện tuần trước.3) Họ đã đề cập đến những người tham khảo trong một vé hỗ trợ (4) Các câu hỏi về thời gian của họ (Bản Dịch Mới).5Hãy sử dụng thông tin ngắn gọn này để chuẩn bị một chương trình nghị sự tập trung, dựa trên bằng chứng.

Hiểu tại sao giao dịch lại có nguy cơ bị đe dọa

Tình huống:
Đường ống chỉ ra một phù hiệu đỏ trong thỏa thuận mà anh nghĩ là sẽ tốt đẹp.
Làm sao bây giờ?

Hãy nhấp vào thỏa thuận và đọc lời giải thích sức khỏe của Hội đồng quản trị. 22 ngày 14 Lần liên lạc cuối cùng là 11 Ngày trước, liên lạc chính đã mở một vé hỗ trợ về việc di cư dữ liệu 5 ngày trước (tiet # T-892 Gợi ý: hãy xác định mối quan tâm di cư và lên lịch cuộc gọi tiếp theo." Bây giờ bạn biết chính xác phải sửa chữa cái gì.

CRM

Báo cáo và thông báo trước

Dự đoán cấp cao với phạm vi bảo vệ, thay đổi mức độ thỏa thuận, và theo dõi chính xác để bạn có thể chứng minh và giải thích số liệu của mình.

Forcast
ForcastMột số dự đoán hàng quý với các dây đính kèm, chữ tốt nhất và đường ống và một lưu ý chính xác.ForcastMiền làm việc_LÌ · BỒN VÌ NÀY312k87% tới mục tiêuNhấn để thêm chú thích... @ info: statusSố lượng tối đaĐường ốngAI-gấp bởi giao dịch y tế và lịch sử . chính xác theo thời gian1SỐ HỌCÁp dụng vào ống dẫn2AI-WEIGHTEDBằng cách đối phó sức khỏe3PROVABLETheo dõi chính xác
Liên kết, tốt nhất và ống dẫn trong nháy mắt, với hệ thống điều hành y tế, với độ chính xác được theo dõi để bạn có thể bảo vệ nó.

Phân loại Forcast

Đã cam kết

Đánh với xác suất thắng 80% hoặc cao hơn. Đây là những trận thắng có khả năng nhất của bạn. Đó nên là thu nhập dự kiến tối thiểu của bạn

Có khả năng là Al-gight

Tất cả các giao dịch mở được cân nặng bởi xác suất chiến thắng tính toán AI. Đây là dự đoán thực tế nhất về những gì bạn sẽ đóng.

Số lượng tối đa

Tất cả các giao dịch mở với giá trị tối đa. Đây là thu nhập tối đa có thể nếu mọi thứ đi hoàn hảo (nó hiếm khi làm).

Thời gian tự tin

An 80% Ví dụ: "Bạn có khả năng gần giữa $45,000 và $72,000 quý này. "

Điều gì đã thay đổi và tại sao

Dự báo bao gồm cả việc thay đổi thông tin trong tuần, khi dự đoán của bạn giảm dần. $15,000 Báo cáo giải thích chính xác thỏa thuận nào gây ra sự thay đổi: "Deal A trượt đến quý tiếp theo ($8,000), thỏa B bị mất ($5,000), Giao dịch C giảm giá trị ($2,000)."

Theo dõi chính xác

Forcast MAPE

Ý tôi là lỗi phần trăm: các dự báo của anh đã đi xa đến đâu trong lịch sử, thấp thì tốt hơn.15% Nghĩa là dự báo của bạn thường ở trong 15% kết quả thực sự.

Tính toán

Điểm số Brier đo xác suất chiến thắng tương ứng với kết quả thực tế như thế nào. Nếu các giao dịch có xác suốt 70% thật sự giành được _70% trong thời gian, thì việc cân chỉnh là tốt.

Ảnh chụp hàng tuần

OpsIQ Mỗi tuần, bạn có thể thấy sự chính xác trong dự báo của mình.

Lập trình và cảnh báo

Chuyển đổi theo giai đoạn

Có bao nhiêu thương vụ chuyển từ sân khấu này sang giai đoạn khác. 80% Từ đủ điều kiện để có thể nhận được nhưng chỉ có điều 20% Từ đề xuất công tố viên đến đàm phán, các đề nghị của anh có thể cần được thực hiện.

Tỷ lệ thắng lợi của các nguồn tin

Nguồn lực nào tạo ra nhiều chiến thắng nhất đầu tư nhiều hơn vào các nguồn tin có lợi cho cả hai bên.

Hiệu suất mô phỏng

Mỗi thành viên của đội bán hàng đang thực hiện như thế nào: thương vụ thắng, giá trị đường ống, kích thước thương lượng trung bình, tỉ lệ chiến thắng.

Cảnh báo

Cát (không hợp lệ thấp, quá cao) và gây ra rủi ro (những vụ làm ăn có khả năng cao cho thấy tín hiệu tắc nghẽn).

Hiểu được một giọt dự báo

Tình huống:
Dự báo hàng quý của anh đã bị rớt xuống. $180,000 phải $155,000 từ tuần trước.
Làm sao bây giờ?

Mở trang Forcast và kiểm tra "Cái gì đã thay đổi." Báo cáo cho thấy: "Một thỏa thuận tập đoàn Acme"$15,000 Chuyển tới Lost, đối thủ được chọn.$8,000 Hiện ngày gần nhất được đẩy tới quý kế tiếp.$3,000 Tuần này thêm vào." Thay đổi lưới là...$20,000 + $3,000 = -$17,000.. giải thích sự giảm từ 180k xuống $163K (với 8K còn lại do những điều chỉnh xác suất về các giao dịch khác).

CRM

Tìm việc mới

Đặc vụ tiềm năng giúp bạn tìm kiếm và nghiên cứu khách hàng tiềm tàng. và để cho AI nghiên cứu, ghi điểm và nhập khẩu lần đầu tiên.

Triển vọng
Triển vọngDanh sách các công ty tiềm năng trí tuệ AI tìm thấy với những ghi chú phù hợp, điểm số và một nút chọn lọc mỗi người.Triển vọngMiền làm việcTriển vọng được tìm thấy bởi đặc vụ SDRGió Bắc TrungSaaS_ * 50 nhân viên * đang tuyển người hỗ trợ88Phụ nhápMfg cobanSản xuất · 200 nhân viên74Phụ nhápTôi lặp lạieCommerce_ 2 30 nhân viên69Phụ nhápSức khỏe VegaChăm sóc sức khỏe # 80 nhân viên63Phụ nháp1FINDNguồn AI đích tài khoản2ĐiểmVừa & mục đích3DRAFTĐầu tiên chạm vào viết cho anh
Đặc vụ SDR tìm thấy các công ty mục tiêu, đánh giá chúng phù hợp, và soạn thảo các kết quả tiếp cận đầu tiên cho bài phê bình của bạn.

Thiết lập một lần

1
Mô tả khách hàng lý tưởng của bạn

Tới CRM Cấu hình > Triển vọng. Mô tả hồ sơ khách hàng lý tưởng (ICP): mục tiêu công nghiệp, kích cỡ công ty, chức năng công việc, tiêu điểm địa lý, điều khoản khớp sản phẩm và điểm phù hợp tối thiểu. Ví dụ: "B2BB SaaS Company with50-500Nhân viên ở Mỹ/UK, bán các công cụ phát triển, với một phó giám đốc doanh nghiệp hoặc trưởng khoa tăng trưởng như là tiếp xúc chính."

2
Thêm công ty đích

Nhập vào miền công ty hoặc tên bạn muốn nghiên cứu. Bạn cũng có thể để cho AI gợi ý công ty dựa trên IP của bạn.

3
Xem lại kết quả nghiên cứu

AI làm giàu cho mỗi công ty với dữ liệu sẵn có: kích thước, công nghiệp, công nghệ xếp hàng, tin tức gần đây và điểm số phù hợp với lời giải thích.

4
Phụ đề thực hiện bởi Động Phim

Đối với các công ty có ích, AI soạn thảo một tin nhắn cá nhân được chạm vào đầu tiên.

Khớp

Mỗi triển vọng nhận được một0-100 điểm phù hợp dựa trên năm yếu tố:

Vừa với ICP

Công ty khớp với hồ sơ khách hàng lý tưởng của bạn (tiểu đồ, kích cỡ, vị trí) như thế nào?

Tín hiệu cấp bách

Có bằng chứng nào họ cần sản phẩm của anh bây giờ không? phàn nàn về đối thủ.

Ủy nhiệm Ngân sách

Kích thước công ty, giai đoạn tài trợ và chỉ số thu nhập cho thấy ngân sách có sẵn.

Khớp sản phẩm

Sản phẩm của ông liên quan thế nào đến công việc kinh doanh của họ dựa trên công nghiệp và công nghệ.

Hỗ trợ phù hợp

Bạn có thể phục vụ hiệu quả khách hàng này (thời gian, ngôn ngữ, sự phức tạp).

Nghiên cứu một công ty mục tiêu

Tình huống:
Bạn muốn đánh giá nếu acme.com rất đáng để theo đuổi.
Làm sao bây giờ?

Thêm acme.com trong danh sách triển vọng. trả lại AI: điểm khớp 78/100 Lý do: B2B SaaS, 120 Nhân viên, dựa trên nền tảng Mỹ, mới đây đã thuê một máy bán hàng (dấu hiệu khẩn cấp), sử dụng đối thủ X (so sánh sản phẩm). Tín hiệu mua: thăm trang giá trị 2 lần vào tháng trước (từ theo dõi trang web). Liên lạc tốt nhất: [email protected] (VP of Sales). Người mở đầu có đề cập đến việc họ thuê và mua trang gần đây.

CRM

Tự động chuỗi theo sau

Các chuỗi tự động hóa nhiều bước theo sau: sự kết hợp giữa email, chờ đợi, nhiệm vụ, gọi và các bước móc nối chạy tự động sau khi bạn chấp nhận việc gửi đầu tiên.

Chuỗi
Chuỗi theo dõiMột chuỗi dòng ngang: email, chờ 3 ngày, email, rồi một nhiệm vụ, với khả năng phát hiện trả lời.Chuỗi theo dõiMiền làm việcSau khi ông chấp thuận gửi đi đầu tiên→Thư điện tửGiới thiệuKhoan.3 ngàyThư điện tửTheo dõiTác vụnhỏBước có thể là email, chờ đợi, nhiệm vụ hay webok.1AUTOMATETiếp theo bước đa2STEPSEmail_ chờ_i công việc· Webk3YOU APPROVEPhát đầu tiên đã được đóng cổng.
Tự động hoá nhiều bước theo (mail, chờ, email, công việc) mà bạn chấp nhận đầu tiên và tự động dừng lại.

Các chuỗi hoạt động như thế nào

1
Tạo một chuỗi

Định nghĩa các bước: email, chờ 3 ngày, email, chờ 5 ngày, công việc (gọi nếu không trả lời), thư điện tử. Mỗi bước email có mẫu bạn có thể tùy chỉnh.

2
Đăng ký liên hệ

Thêm liên lạc vào chuỗi. AI cũng có thể đề xuất đăng ký kết quả tìm kiếm.

3
Tự động thực hiện

Bước tự động chạy theo thời gian biểu. Nếu liên lạc trả lời tại bất kỳ điểm nào, chuỗi dừng tự động.

4
Theo dõi kết quả

Nhìn tỷ lệ mở, mức trả lời, tỉ lệ chuyển đổi và hung thủ xác định mỗi bước.

Trả lời hiểu rồi

Khi liên lạc trả lời, AI phân loại câu trả lời:

Dương

Có hứng thú, muốn nói chuyện.

Phản đối

Có quan tâm nhưng không từ chối. dừng lại hàng loạt, nhiệm vụ được tạo ra với chi tiết phản đối.

Tắt đăng ký

Muốn dừng nhận tin nhắn.

Không phải bây giờ.

Quan tâm nhưng thời gian là sai.

Không phải người

Không phải là đúng liên lạc, dừng chuỗi liên lạc và đánh dấu để xem xét.

Hỗ trợ

Một câu hỏi hỗ trợ, không phải phản hồi về doanh thu.

Bảo vệ chống áp lực

Xử lý màn hình

Yêu cầu xác định được yêu cầu ngay lập tức và liên lạc bị chặn khỏi mọi chuỗi tiếp xúc trong tương lai.

Hộp nhớ hằng ngày

Giới hạn không gian làm việc hàng ngày (mặc định: 1,000 teppi82@ gmail. com

Giới hạn mẫu

Tối đa 1 Thông điệp liên lạc mỗi ngày, ngăn chặn những con người quá tải.

Quản lý quá đơn vị

Những bước vượt quá mức nón hàng ngày được hoãn lại cho đến ngày hôm sau, chúng không bao giờ bị bỏ qua hay bỏ qua.

Điều gì xảy ra nếu một liên lạc viên mở một vé hỗ trợ trong chuỗi thời gian?+

Chuỗi dừng tự động. Hỗ trợ chiếm ưu tiên trên tiếp cận. Chuỗi có thể được tự động tái lập sau khi vấn đề hỗ trợ được giải quyết.

Tôi có thể thử nghiệm chuỗi A/B không?+

Không trực tiếp trong chuỗi trình tự, nhưng bạn có thể tạo ra hai chuỗi với các tin nhắn khác nhau và so sánh kết quả của chúng.

CRM

Công cụ tăng trưởng

Một trang dưới CM chứa động cơ tăng trưởng: thu nhập tái sử dụng (MR/ARR), danh mục sản phẩm, mẫu dẫn đầu, các liên kết đặt hàng và định tuyến chì. Mọi thứ ở đây viết thẳng vào CRM, do đó, một đơn đệ trình hoặc một cuộc gọi đã ghi là liên lạc với lịch sử, không phải là một hàng trong bảng tính.

Những gì sống trên trang web

Thu hồi doanh thu

Thu hồi

MRR và ARR dự đoán từ sổ cái thật của bạn.1.5lần chu kỳ của nó. khách hàng liên kết đến CRM Liên lạc tự động khi sổ cái mang email của họ.

Mục lục sản phẩm

Catalogue

Một nguồn gốc của sự thật cho những gì bạn bán. và nhận trích dẫn thành doanh thu bằng sản phẩm.

Hình mẫu

Thu

Mỗi mẫu sẽ có một trang lưu trữ cộng với mã nhúng iframe cho trang của bạn. Những bài gửi trở thành liên hệ, chủ sở hữu nhận được thông báo và các quy tắc định tuyến của bạn gán người dẫn đầu.

Liên kết đặt chỗ

Kế hoạch

Chia sẻ một liên kết, cho người tham gia chọn một vị trí miễn phí.

Theo định dạng chính

Tìm kiếm

Quy tắc địa phương chạy trước, rồi quy tắc trường (tùy theo một lĩnh vực như quốc gia hay nguồn) sau đó là vòng-robin trên hồ đại diện của bạn. Nó đi theo các thông tin chung và DEAS như nhau, bất cứ điều gì tình trạng thỏa thuận: một thỏa thuận chiến thắng vẫn cần một người chủ ủy quyền, trách nhiệm tài khoản và tiếp tục, và trong chế độ quản lý hoặc chế độ hiển thị một hệ thống không có danh tiếng nào là vô hình đối với mọi người ngoại trừ người quản lý. Kỷ lục được tạo bởi tự động hóa (một kết nối, trò chuyện), không có tác dụng nào, vì thế họ bị định tuyến bởi cùng một quy tắc trên cùng một qui tắc, thay vì đã tạo ra chủ sở hữu.

Tạo mẫu đầu tiên

1
Mở công cụ tăng trưởng

Tới CRM Sau đó là công cụ phát triển, sau đó là phần hình thức chính.

2
Tên và chọn các trường

Gõ tên và danh sách các trường phân loại dấu phẩy, ví dụ tên, email,phone, tin nhắn. email luôn luôn cần thiết.

3
Chia sẻ hay nhúng

Sao chép liên kết đã máy để chia sẻ nó ở bất cứ đâu, hoặc sao chép mã liên kết và dán nó vào bất kỳ trang web nào của bạn.

4
Xem các đầu mối đến

Mọi sự phục tùng đều là một CRM liên lạc với một dạng hoạt động. phục tùng, thông báo chủ sở hữu, và tự động định tuyến.

💡
Trang chụp công khai sử dụng địa chỉ của không gian làm việc. Không gian làm Việc Mây dùng tên miền con được gán (company.opsiq. help), vì vậy liên kết luôn giải quyết dữ liệu đúng.

Bảo vệ được xây dựng

Người Bots thấy thành công, bạn chẳng thấy gì cả

Một trường mật ong ẩn lặng lẽ bỏ đi việc nộp đơn cho robot.

Tốc độ

Mỗi giờ mười lần nộp IP địa chỉ trên các mẫu đơn và đặt phòng.

Đồng ý là trung thực

Gửi đơn không cho phép tiếp thị chấp thuận. Chỉ có một hộp ngân phiếu đồng ý rõ ràng.

Không đặt hai chỗ

Một vị trí được chỉnh sửa lại để chống lại một tấm séc có sẵn mới vào lúc này.

Dữ liệu thu nhập tái diễn từ đâu?+

Từ cùng một sổ cái mà trang Sales của bạn sử dụng, được cung cấp bởi các công ty hóa đơn. sử dụng lại tính toán từ hóa đơn sau khi kết nối một nền tảng mới.

Tôi có thể dùng các mẫu đơn mà không cần một trang web không?+

Phải, mỗi đơn có một trang chủ trên địa chỉ của bạn làm việc đứng vững, dù có hay không JavaScript.

CRM

Căn cứ tin nhắn (SMS and Whats App)

Một kết nối, lên đến 20 cổng. Kết nối nhà cung cấp tin nhắn và những gì Áp dụng bạn thực sự sử dụng, đánh dấu một trong số đó là mặc định, và chọn bất kỳ khi nhắn tin liên lạc. Đồng bộ được kiểm tra bởi CRM trước khi tiếp xúc với bất kỳ cổng nào.

Chuẩn bị đi

1
Bật bộ kết nối

Trên trang kết nối, mở mục tin nhắn (SMS and Whats App) và bật nó.

2
Thêm nhà cung cấp

Trong cùng một ngăn kéo, hoặc trong CRM Công cụ phát triển, chọn một cánh cửa từ thả xuống (Twilio, Vonage, teviii, Meta Whats App Cloud, Infobip và nhiều hơn), dán nóAPIBạn có thể thêm vài thông tin vào cùng một cửa với tài khoản khác nhau.

3
Wire the webok

Mỗi lối vào nhà cung cấp cho thấy mỗi lưỡi câu riêng của nó URL in một nút sao chép. Dán nó vào cổng thông báo giao hàng và thiết lập gửi tới để có được tình trạng chuyển giao và trả lời trở lại OpsIQ.

4
Gửi từ người liên hệ

Mở liên lạc và dùng cái nút « Trình nền » hay « Cái nút Whats App ». Nếu nhiều nhà cung cấp hỗ trợ kênh, một bộ chọn cho bạn chọn; nếu không thì mặc định sẽ được dùng.

Đồng ý là quan trọng nhất.

Chấp thuận chỉ

Không chấp thuận không rõ. Gửi từ chối nếu chưa được chấp thuận trên tin nhắn rõ ràng. Cái gì áp dụng cũng đồng ý.

Không đối xứng luôn thắng

Một cờ không được chạm vào mỗi kênh, không cần biết thiết lập là gì.

* Bị trầm cảm *

Không bao giờ có thông điệp liên lạc trong danh sách đàn áp.

Từ chối đặt tên lý do

Một thông điệp bị chặn cho bạn biết chính xác lý do, để bạn có thể sửa chữa dữ liệu thay vì đoán.

Đối với các nhà phát triển: hợp đồng webok

URL hình

https://your-address/opsiq/cron/messaging_webhook.php?sk=SITE_KEY&e=ENTRY_ID&t=TOKEN. Vật trưng bày một cửa được đúc khi nhà cung cấp kết nối và không bao giờ thay đổi.

Định dạng

Twilio form posts (MessageStatus/MessageSid for delivery, Body/From for inbound), Meta WhatsApp Cloud JSON (statuses and messages, including the hub.challenge subscription handshake), and a generic JSON shape: {"type":"delivery","message_id":"...","status":"delivered"} or {"type":"inbound","from":"+234...","body":"..."}.

Hiệu ứng

Báo cáo gửi thư cho biết hàng bao thư mục tiếp cận có thể nhận dạng nhà cung cấp khi được gửi hoặc bị hất. Thông điệp này trùng với số điện thoại trong vùng làm việc, hạ cánh như một thông điệp. Nhận được tin nhắn và đánh dấu cuộc đối thoại đã trả lời.

Chế độ & lỗi

Trả lời sai hay thiếu dấu hiệu 403. không rõ trọng tải được tính và bỏ qua, không bao giờ gây tử vong, vì vậy một cổng đã cấu hình sai không thể phá vỡ điểm kết thúc.

Cửa ra nào được hỗ trợ?+

Twilio, Vonage, Plivo, MessageBird, Sinch, Infobip, Telnyx, ClickSend, Termii, Africa's Talking, BulkSMS, Textlocal, Meta WhatsApp Cloud, 360dialog, SMSAPI, Gupshup, Kaleyra, D7 Networks, Hubtel và một webhook HTTPS tùy chỉnh cho bất kỳ thứ gì khác.

Giấy ủy nhiệm có an toàn không?+

Mã nhận diện được mã hóa trong thiết lập kết nối và không bao giờ được siêu âm về trình duyệt. Đang sửa mục có mật khẩu trắng giữ một cửa sổ đã lưu.

AI gửi tin nhắn được không?+

Đúng vậy, qua những hành động đã đăng ký cần xác nhận và chạy cùng cổng chấp thuận. Al cũng có thể liệt kê các nhà cung cấp kết nối để giải thích những gì sẵn có.

CRM

Giữ và phát triển khách hàng

Việc quản lý xe đạp giúp bạn bảo vệ lợi tức hiện có, mỗi tài khoản nhận được một số rủi ro lớn, điểm số sức khỏe, điểm mở rộng và một cuốn sách chơi thành công.

Xe đạp sống
Bảng đời sốngMột bảng xe đạp đời khách hàng (trên bảng điều khiển, hoạt động tích cực, có rủi ro, Renewal) với thanh sức khỏe trên mỗi thẻ tài khoản.Xe đạp sốngMiền làm việcĐÃ LÀMAcmekhỏe mạnh 40DỐIGlobexNamekhỏe mạnh 88Initechkhỏe mạnh 76AT-RISKSoylentkhỏe mạnh 28RENTALBóngLàm lại vào 12DMở rộng + 8k1STAGESLên tàu để đổi mới2SCOREDSức khỏe mở rộng3PLAYBOOKKhuyên bạn bước kế
Khách hàng di chuyển qua tàu, hoạt động, có rủi ro và đổi mới, mỗi điểm để có sức khỏe và mở rộng với một cuốn sách.

Bảng số nhân

Sơ đồ sân khấu

Bảng hình ảnh cho thấy nơi mọi tài khoản được viết: "Wuft, Provard, Cyter, Du khách, mở rộng, Renewal, At risk, Churned.

@ info: status

Tài khoản được đánh dấu với rủi ro lớn. Mỗi tài khoản hiển thị trình điều khiển đầu (Gắp nối, không hoạt động, thất bại thanh toán) và một trò chơi lưu được khuyến khích.

Mở rộng cơ hội

Tài khoản cho thấy những dấu hiệu sẵn sàng mua nhiều hơn: sử dụng cao, yêu cầu tính năng, yêu sách kế hoạch.

Bản quyền của Renewals

Tài khoản với ngày tháng mới sắp tới, được sắp xếp theo mức độ rủi ro và giá trị doanh thu.

Làm thế nào OpsIQ Phát hiện việc khuấy động mạo hiểm

Nguy cơ chết người được tính toán từ nhiều tín hiệu kết hợp với nhau:

Tín hiệu CRM

Giao dịch sức khỏe, không hoạt động, mất mát gần đây, giảm đi sự hứa hẹn.

Hỗ trợ tín hiệu

Số vé mở, vé số tăng vọt, cảm xúc tiêu cực, sự leo thang.

Sự đính hôn sản xuất

Tần số đăng nhập, cách sử dụng tính năng, thăm dò trang, API cuộc gọi.

Các tín hiệu thanh toán

Không thanh toán được, hóa đơn quá hạn, yêu cầu hạ cấp, hủy bỏ cuộc thăm trang.

Công cụ cài đặt Samba Comment

Lưu trò chơi

Đối với các tài khoản có rủi ro: vươn ra chủ động, giải quyết mối quan tâm, hỗ trợ, tăng cường nếu cần thiết.

Chơi Renewal

Để có những thay đổi mới sắp tới: xác nhận sự hài lòng, cách dùng lại, giá trị hiện tại, cho lời khuyên nếu thích hợp.

Phát triển

Để có tài khoản sẵn sàng để phát triển: hiện tại nâng cấp các lựa chọn, chia sẻ những câu chuyện thành công, trình diễn ROI.

Trò chơi nhận nuôi

Để giảm bớt các lời tường thuật: Cung cấp sự huấn luyện, chia sẻ những thực hành tốt nhất, cho phép những đặc điểm mà họ không dùng.

Đánh dấu sự khuấy động trước khi nó xảy ra

Tình huống:
Một khách hàng bình thường không đăng nhập vào 2 Vài tuần, và họ mở cửa. 3 vé hỗ trợ tháng này.
Làm sao bây giờ?

Bảng điều khiển Lifecycle đánh dấu tài khoản này là "On nguy hiểm" với các trình điều khiển: không hoạt động (14 Ngày kể từ khi đăng nhập cuối cùng) và cây tăng viện (3x Tập tin vé thông thường. Khuyên bạn: cuộc gọi tích cực để hiểu những gì đang xảy ra. Có vấn đề sản phẩm không? họ có đánh giá các đối thủ cạnh tranh không?

CRM

Giữ cho dữ liệu của bạn sạch sẽ

Đại lý dữ liệu Steward tự động tìm và sửa chữa vấn đề chất lượng dữ liệu: nhân bản, trường mất tích, không tương thích, và hồ sơ cũ.

Bộ quản lý dữ liệu
Bộ quản lý dữ liệuDanh sách các vấn đề chất lượng dữ liệu (đã được nhân bản, thiếu, cũ, dạng), mỗi vấn đề với một cú nhấn chuột.Bộ quản lý dữ liệuMiền làm việcĐặc vụ Steward đã tìm thấy vấn đề dữ liệu.Lặp lại[email protected][email protected]TrộnThiếu12 không có bạnĐổi màu& Xuất ra danh sách38 chưa kết nối tới giao thức làm việc 90+ ngàyôn lạiĐịnh dạngsố điện thoại ở 4 Định dạngSửa hết1CATCHESDupes, khoảng trống, cũ2EXPLAINSSao nó lại đánh dấu từng cái một?3FIXESTheo lệnh của anh.
Nhân viên quản lý giữ cho hệ thống CRM sạch sẽ, tìm ra bản sao, khoảng trống, hồ sơ cũ và dạng xấu, sửa lại giấy chấp thuận.

Nó bắt được gì?

Contact & mới

Nhiều hồ sơ cho cùng một người (v. d., [email protected][email protected] Người quản gia đề nghị kết hợp chúng.

Thiếu dữ liệu

Liên lạc không có email, thỏa thuận không số lượng, công ty không có miền. Đề nghị điền vào các nguồn sẵn sàng.

Tập tin chưa liên kết

Giao dịch không có liên lạc, liên lạc không có công ty. Các đối tượng liên kết dựa trên miền email và ngữ cảnh.

Không nhất quán

Một thỏa thuận trong giai đoạn "Vô địch" với xác suất 20%, một liên hệ được đánh dấu là "Customer" không có hợp đồng, một công ty với ngành nghề không phù hợp.

Giai đoạn sai

Những giao dịch đã ở cùng một giai đoạn quá lâu hoặc liên lạc với những người không có cơ hội sống chung.

Cách sử dụng

1
Mở danh sách phục vụ

Tới CRM Và tìm phần quản lý dữ liệu (hoặc mở nó ra từ CRM Sức khỏe).

2
Các biện pháp an toàn

Vật thể xanh được an toàn: bản sao rõ ràng, dữ liệu bị mất.

3
Xem lại phần còn lại

Hàng Amber cần sự đánh giá của bạn: có thể trùng với sự khác biệt nhỏ, đề nghị thay đổi sân khấu, liên kết công ty.

Đang làm sạch các liên lạc tự động

Tình huống:
Người hầu tìm thấy "John Smith"[email protected])" và "J. Smith ([email protected])" cùng một email, tên hiển thị khác nhau.
Làm sao bây giờ?

Quản gia đề xuất sự kết hợp: giữ kỉ lục với nhiều hoạt động hơn, kết hợp các giao dịch và hoạt động khác. xem lại bản đề xuất, điều chỉnh tên hiển thị còn sống nếu cần thiết, và chấp nhận lịch sử của cả hai hồ sơ được lưu giữ trong liên lạc đã kết hợp.

CRM

Xây dựng của tôi CRM

Xây dựng CM của tôi cho phép bạn mô tả thiết lập CRM của bạn bằng tiếng Anh đơn giản. OpsIQ tạo ra một kế hoạch có hiệu lực, đảo ngược và áp dụng nó trên chấp nhận. Không mã hóa, không cấu hình thủ công.

Xây dựng của tôi CRM
Xây dựng của tôi CRMMột mô tả tự nhiên- thiên văn bên trái tạo ra một sản phẩm CRM kế hoạch của các giai đoạn, cánh đồng và phân đoạn bên phải.Xây dựng của tôi CRMMiền làm việcHãy mô tả công việc của bạnChúng tôi là một công ty thiết kế webbán tiền gửi hàng tháng vàNhững dự án một off nhỏCông việc.Xây dựng của tôi CRMTạo ra kế hoạchGiai đoạn: Hướng→Giữ lạiKiểu chia sẻ: tiền gửi, dự ánTrường:Đoạn phim: SMB, CIATuỳ chọnÁp dụng & chấp nhận1DESCRIBETiếng Anh thường trong2AI PLANSGiai đoạn, lĩnh vực, đoạn thẳng3APPROVEA ứng dụng # không mã hóa
Mô tả công việc của bạn bằng tiếng Anh đơn giản; OpsIQ Cả hệ thống CRM (các sân khấu, trường học, phân đoạn) và áp dụng khi được chấp thuận.

Nó hoạt động thế nào?

1
Hãy miêu tả những gì bạn muốn

Nhập vào tự sổ danh sách của kde2 CRM Ví dụ: "Hãy tạo ra một đường ống mới với các giai đoạn: sự phục hồi, liên lạc, đàm phán, đổi mới, thất bại.

2
Xem lại kế hoạch

OpsIQ cho thấy trước về những gì nó sẽ tạo ra: đường ống, giai đoạn, xác suất sân khấu, quy tắc khắc phục, luật đạp xe sống.

3
Áp dụng

Nhấn vào để áp dụng kế hoạch. Mỗi thay đổi được ghi lại như một gói bạn có thể hủy bỏ chỉ trong một nhắp.

4
Quay lại nếu cần thiết

Nếu có điều gì không đúng, hãy nhấn nút lui lại để hoàn nguyên gói.CRM trở về trạng thái cũ.

Những gì bạn có thể xây dựng

Đường ống và giai đoạn

Tạo ra những đường ống tên với các giai đoạn tự chọn, xác suất mặc định và ngưỡng mục.

Đang vẽ lại quy tắc

Điểm chì của ban đầu dựa trên hành vi: "Scure cao hơn khi họ xem giá cả, thấp hơn khi xem trang sự nghiệp."

Quy tắc của sự sống

Tự động tiến lên giai đoạn cuộc sống: "Đi tới SQL Khi họ yêu cầu một bản trình diễn, "Đi đến khách hàng khi giao dịch được thắng."

Các trường tùy chỉnh

Thêm trường cho liên lạc, giao dịch, hay công ty: văn bản, số, ngày, chọn, hộp đánh dấu, URL Email.

Danh sách kiểm tra điều kiện

Xác định các điểm thi tuyển hoặc bảng liệt kê các điểm số của ban quản trị.

Thiết lập đường ống mới

Tình huống:
Anh quản lý SaaS đặt mua dài hạn và cần một đường ống để đổi mới.
Làm sao bây giờ?

Kiểu: "Hãy tạo ra một đường ống mới. 90 Hết ngày (10%), 60 Hết ngày (25%), liên lạc (40%), đàm phán (60%), Renewed (100%), Churned (0% Hãy đặt ngưỡng mục 14 ngày."OpsIQ Tạo ra kế hoạch, xem lại nó và nhấn Áp dụng. Đường ống xuất hiện ngay lập tức trên trang ống nước của bạn.

Nếu tôi mô tả một điều không thể thì sao?+

Người xây dựng chỉ tạo ra hành động mà nó biết làm thế nào để thẩm tra. Nếu bạn yêu cầu một cái gì đó ngoài khả năng của nó (v. g., "Xắt kết với tùy chọn của tôi API"), nó sẽ từ chối yêu cầu và giải thích những gì nó có thể làm.

Tôi có thể thay đổi không?+

Phải, mọi người đều xây dựng cho tôi CRM Hành động được chụp như một bó có thể đảo ngược.CRM Y tế > Thay đổi lịch sử để xem tất cả các gói và xóa bỏ bất kỳ của chúng.

CRM

Thiết lập của bạn CRM cách của bạn

Thủ công CRM cấu hình cho nhóm thích nhắp vào. Tất cả các thiết lập xây dựng My CRM có thể tạo ra cũng có sẵn như các lĩnh vực hình thức truyền thống.

Đường ống và giai đoạn

Tạo, thay đổi tên, sắp xếp lại, và xoá đường ống và giai đoạn. Đặt xác suất mặc định trên mỗi sân khấu. Đặt ngưỡng mục (ngày trước khi giao dịch được đánh dấu là "được đặt").

Các trường tùy chỉnh

Thêm trường để giao dịch, liên lạc hoặc công ty. Kiểu trường: văn bản, số, ngày, chọn (bập xuống với tùy chọn xác định sẵn), checkbox URL Các trường tự chọn xuất hiện trên hồ sơ đối tượng và trong bộ lọc.

Danh sách kiểm tra điều kiện

Xác định danh sách các mục kiểm tra của Ủy ban Giao dịch dùng để đánh giá các giao dịch. Chọn mục MDDICC, BANT, hoặc một tập hợp tiêu chuẩn tùy chỉnh. Có thể đánh dấu mỗi mục cần thiết hay tùy chọn.

Quy tắc của xe đạp sống

Định nghĩa sự chuyển tiếp sân khấu tự động: khi một người gặp phải tình trạng (xem giá cả, đệ trình một hình thức, mua sắm), giai đoạn sống của họ tự động tiến bộ.

Quy tắc phân loại chì

Khởi động hoặc giảm điểm chì dựa trên hành vi. Ví dụ: "Xem giá trị trang = +15 Điểm ", giấy trắng tải xuống = +10 Điểm, "Sự nghiệp được định đoạt trang = -5Điểm." Số đếm tối thiểu có thể được thiết lập (v. d., "phải xem giá trị ít nhất 2 thời gian").

Lưu ô xem

Tạo các tổ hợp lọc+sort cho liên lạc, giao tiếp hay công ty. Chia sẻ ô xem với nhóm của bạn. Đặt ô xem mặc định cho mỗi kiểu đối tượng.

Thêm một quy tắc ghi đè chì

Tình huống:
Bạn muốn những người xem trang giá cả của bạn hai lần hoặc nhiều hơn để có được điểm cao hơn.
Làm sao bây giờ?

Tới CRM Cấu hình > Các quy tắc cấu hình chì. Nhấn vào Quy tắc Thêm. Đặt: Sự kiện = "trang",URLchứa = "/pricing", đếm tối thiểu =2, nâng điểm = +20Lần tới khi người ghi bài chạy, liên lạc tương ứng với quy tắc này sẽ nhận được +20đến điểm số chính.

CRM

CRM Kiểm tra sức khỏe

CRM Sức khỏe là một trang tự chẩn đoán mà xác minh của bạn CRM được thiết lập đúng đắn và chạy trơn tru.

Kiểm tra sức khỏe
Kiểm tra sức khỏe CRMĐiểm số sức khỏe ở 92 bên cạnh bảng kiểm tra các cấu hình đi qua và cảnh báo.Kiểm tra sức khỏe CRMMiền làm việc92HÌNH 3Cấu hình các giai đoạn đường ốngĐang nhậpCác tác vụ AI đã bật!Không có tiến trình theo dõi nào!12 liên lạc với công ty mất tích1TIẾNGLàm tăng giá trị thiết lập của bạn2FLAGSCòn thiếu gì nữa?3ĐiểmMột số tổng thể
Một trang kiểm toán CRM: một điểm số sức khỏe tổng thể cộng với danh sách kiểm tra những gì được thiết lập đúng và điều gì vẫn cần chú ý.

Kiểm tra xem

Phương án

Các bảng cơ sở dữ liệu tồn tại và có các cột chính xác.CRM Sức khỏe sẽ báo hiệu điều đó.

Đặc vụ Al

Tất cả các đặc vụ CRM (Capture, Data Steward, Bộ thông tin đồng thuận, v. v...) đều được đăng ký và khỏe mạnh.

Đường

CRM API Các tuyến đường và điểm dừng của AJAX được đăng ký và gọi được.

Hành động Al

Danh mục hành động CRM được đăng ký trong bộ đăng ký hành động. Nếu các hành động bị mất, CM sức khỏe của họ sẽ được phục hồi bằng cách tái tạo lại chúng.

Số dữ liệu sống

Tổng số liên lạc, công ty, thương vụ, hoạt động và sự kiện. hữu ích để kiểm tra các thông tin nhập khẩu và lưu giữ dữ liệu.

Sau khi thiết lập kiểm tra

Sau lần đầu tiên CRM cài đặt, mở CRM Sức khỏe và kiểm tra tất cả các ngân phiếu đều xanh. Nếu có hổ phách hay đỏ, hãy nhấp vào mục để được giải thích về chẩn đoán và đề nghị sửa chữa.

Tôi có nên kiểm tra thường xuyên CRM Sức khỏe?+

Kiểm tra sau khi thiết lập ban đầu, sau khi cập nhật chính, và bất cứ khi nào ứng xử CRM có vẻ sai. CM Health tự chữa lành nhiều vấn đề (như đăng ký hành động thiếu) chỉ bằng cách mở trang đó.

CRM

Kết nối CRM cho các nhà phát triển

CRM vạch trần toàn bộ khu vực tập thể API và ra khỏi mạng lưới để vừa với bất kỳ chồng nào mà không có xuất khẩu bằng tay.

API Điểm kết thúc

Xác thực

API Phím (Authorization: Bearer opq_...) với khoảng cách crm. read or crmm. wrime. pST to /api/v1.php với hành động và trang web_key.

Contact & mới

crm. contacts. list (Tìm + bộ lọc), crmm. constacts (theo ID), crrm. concttes. upert (sinh ra hay cập nhật), ccm. conctats. ave.

Các thỏa thuận

crm. slem. tlem. Slem. details. defts. commm. Comm. Comstes. Comem. Sents. date, crmm. Sests. dance (tất cả thông qua Layer Trust).

Hoạt động

crm. actionities. list (dòng thời gian cho một liên lạc/decus), crM. ivities. record (log một hoạt động mới).

Sự kiện

crm. atlist (danh sách sự thay đổi đáng tin cậy với con chạy từ _d), crmm. alog (danh mục các sự kiện sẵn sàng).

Tạo một giao dịch qua API
POST /api/v1.php
Authorization: Bearer opq_live_xxx
Content-Type: application/json

{
  "action": "crm.deals.create",
  "site_key": "<workspace>",
  "title": "Acme renewal",
  "amount": 12000,
  "pipeline_id": 1,
  "stage_id": 2
}

Sự kiện kéo dài

opsiq.contact.upsert

Đã tắt khi tạo liên lạc hay cập nhật. Đây là sự kiện liên lạc để đặt tên cho mục này; không có sự kiện tạo riêng lẻ.

contact.lifecycle_changed

Bị đuổi việc khi tiếp xúc với một người khác.

contact.status_changed

Đã đuổi việc khi tình trạng liên lạc thay đổi.

contact.conversion

Bị đuổi việc khi người ta ghi lại sự cải đạo chống lại một liên lạc.

contact.tag_added

Bị đuổi việc khi có thêm một cái thẻ vào liên lạc.

contact.erased

Đã sa thải khi liên lạc bị xóa vì yêu cầu riêng tư.

crm.deal.created

Bị đuổi khi thỏa thuận được lập.

crm.deal.stage_changed

Bị đuổi khi thỏa thuận chuyển sang một giai đoạn khác.

crm.deal.won

Bị đuổi khi thỏa thuận kết thúc như đã thắng.

crm.deal.lost

Bị sa thải khi thỏa thuận kết thúc.

crm.company.created

Bị đuổi việc khi một công ty được thành lập.

crm.task.created

Đã đuổi việc khi một nhiệm vụ mới được tạo ra (hay là do máy tính tạo ra).

email.replied

Khởi động khi liên lạc trả lời email tiếp cận.

email.bounced

Bị đuổi việc khi có một email tiếp cận.

💡
nhỏ webhooks.events.list Nó được tạo ra từ mã chuyển phát, vì vậy nó không bao giờ có thể bất đồng với những gì thực sự xảy ra.

Mọi sự kiện về móc kéo mạng được ký tên HMAC và tái kết nối với thất bại. URL trong thiết lập > Weboks, hoặc thư mục thăm dò crm. events.list với từ_d cho một nguồn cấp dữ liệu thay đổi bền vững.

Đang đồng bộ hóa các liên hệ CRM với Google Sheets

Tình huống:
Bạn muốn mọi liên hệ CRM mới xuất hiện trong một bảng tính Google Sheet cho nhóm tiếp thị của bạn.
Làm sao bây giờ?

Cài đặt một trình dài hạn cho trình nghe trộm webopsiq.contact.upert. trỏ nó vào ứng dụng mạng Google AppsURLTải hàng bao gồm tên liên lạc, email, công ty, điểm dẫn đầu và nguồn tin.

CRM

Đoạn thẳng

Lưu bộ lọc liên lạc có khả năng phục hồi CRM quan sát, tiếp cận, thăng tiến và các công cụ khán giả khác.

Màn hình sản xuất
Đoạn thẳngBiên tập viên Segment kết hợp điều kiện, cho thấy số lượng các trận đấu trực tiếp và cho phép người điều hành chọn một bộ lọc sống hoặc bị buộc hình ảnh.Đoạn thẳngMiền làm việcChế độSốngLOGICAllMATCHES1,248QUAN ĐIỂM CÔNG VIỆC SỐNGGiai đoạn tự chọnbằng với khách hàng hoạt độngQuy tắcHoạt động cuốibên trong 30 ngàyQuy tắcNướcbằng Anh QuốcQuy tắcÝ định caoĐiểm ít nhất 70Quy tắc1CHOOSE MODESống hay chụp ảnh2ADD RULESTất cả hoặc bất kỳ3REUSEChiến dịch vàCRM
Biên tập viên Segment kết hợp điều kiện, cho thấy số lượng các trận đấu trực tiếp và cho phép người điều hành chọn một bộ lọc sống hoặc bị buộc hình ảnh.

A đoạn sống Tính toán lại từ dữ liệu hiện tại mỗi khi sử dụng. Ảnh chụp đã kẹp đóng băng danh sách thành viên hiện tại, rất hữu ích khi khán giả tiếp cận không thay đổi sau khi được chấp thuận.

Chọn All khi mọi điều kiện đều khớp hoặc Bất kỳ Khi đủ một điều kiện, hãy xem lại số đếm trước khi lưu. Những đoạn hệ thống có thể được hiển thị nhưng được bảo vệ khỏi hiệu chỉnh thông thường.

CRM

Vết cắt chì

Luật dẫn đầu biến hành vi và thông tin cá nhân thành điểm nhất quán mà bán hàng và tự động hóa có thể sử dụng.

Màn hình sản xuất
Vết cắt chìĐiểm đánh dấu chì cho thấy quy tắc hoạt động, cửa sổ cuộn và điểm tích cực hay tiêu cực thay đổi mỗi quy tắc áp dụng.Vết cắt chìMiền làm việcQUY ĐỊNH12SCORED8,412HOT LEADS286QUAN ĐIỂM CÔNG VIỆC SỐNGĐang sử dụng hoạt động3+ thăm viếng trong 14 ngày+20Đang mua từ khoácó sự di cư hay kinh doanh+15Hỗ trợ rủi rokhiếu nại sự kiện vào 30 ngày-10Nguồn tin cậy& đối tác+121DESCRIBE RULEDùng tiếng Anh đơn giản2REVIEW FIELDSTín hiệu, cửa sổ, điểm3RESCOREÁp dụng cho vùng làm việc
Điểm đánh dấu chì cho thấy quy tắc hoạt động, cửa sổ cuộn và điểm tích cực hay tiêu cực thay đổi mỗi quy tắc áp dụng.

Công ty xây dựng công nghệ AI có thể biến một hướng dẫn tiếng Anh đơn giản thành một quy tắc cấu trúc. Mỗi quy tắc nên được xem xét trước khi kích hoạt: xác nhận hoạt động hay từ khoá, đếm tối thiểu, lăn cửa sổ và thay đổi điểm.

Dùng luật tiêu cực và tích cực có thể tồn tại cùng lúc. Không gian làm việc Rscore Sau khi quy tắc vật chất thay đổi, người ta đánh giá các mối liên lạc hiện có dưới mẫu mới.

CRM

Bảng điều khiển bán hàng

Bảng dẫn đầu so sánh các đại biểu sử dụng chỉ tiêu đạt được, giành thu nhập, hoa hồng và đường ống mở cho tháng được chọn.

Màn hình sản xuất
Bảng điều khiển bán hàngCác đại diện hàng tháng trong khi giữ được thu nhập, các ủy ban và đường ống mở có thể thấy được.Bảng điều khiển bán hàngMiền làm việcPERIODTháng BảyTEAM QUOTA82%WING184 ngàn bảng.QUAN ĐIỂM CÔNG VIỆC SỐNGA- mi- naName104% Chỉ tiêu 2. £2k wonngày 1- Tôi biết.88% Chỉ tiêu51 bảng Anh thắngNgày 2Rita.76% Chỉ tiêu .43 bảng thắngThứ baMở đường ống312k qua độiôn lại1CHOOSE MONTHSo sánh một thời kỳ2CHECK QUOTAĐược thưởng bằng cách đại diện3COACHDùng ngữ cảnh ống dẫn
Các đại diện hàng tháng trong khi giữ được thu nhập, các ủy ban và đường ống mở có thể thấy được.

Chỉ khi nào mỗi đại diện có chỉ tiêu và thỏa thuận hiện tại, thì điều này mới có đúng người sở hữu, số tiền tệ, địa vị gần và quyền hạn. Hãy dùng bảng dẫn đầu để huấn luyện và công nhận, chứ không phải là thước đo chất lượng duy nhất; kết hợp với việc xử lý sức khỏe, hoạt động và tính chính xác dự báo trước.

CRM

Nhận lời

Việc chấp thuận thỏa thuận đòi hỏi phải có sự ký từ chức quản lý trước khi có thể giành được những hợp đồng giá trị cao.

Màn hình sản xuất
Nhận lờiChính sách chấp thuận định nghĩa ngưỡng giá trị và hàng đợi, chấp nhận và từ chối quyết định.Nhận lờiMiền làm việcPOLICYBậtWAITING6OLDEST3hQUAN ĐIỂM CÔNG VIỆC SỐNGTrình độ 1Nhận từ £10,000Quản lýTrình độ 2Nhận từ £50,000Sư huynhChuyển đổi con tầu£72,000 GenericName yêu cầu của BenĐang đợiDự án di chuyển£18,500 GenericName Yêu cầu bởi RitaĐược chấp nhận1SET THRESHOLDS0 tắt bộ thắt dây2REQUESTRep sẽ chấp thuận thỏa thuận3CÔNG VIỆCÁp dụng hoặc từ chối
Chính sách chấp thuận định nghĩa ngưỡng giá trị và hàng đợi, chấp nhận và từ chối quyết định.

Bật chính sách và thiết lập cấp 1 và mức 2 ngưỡng 0 Khi một người không quản lý cố gắng để thắng một thỏa thuận tại hoặc trên ngưỡng, OpsIQ tạo một yêu cầu chấp thuận thay vì lặng lẽ thay đổi sân khấu.

Các nhà quản lý và quản trị đầy đủ không bị cản trở bởi chính sách này.

CRM

Quy tắc của sự sống

Quy tắc của xe đạp sống tự động di chuyển liên lạc giữa các giai đoạn khi dữ liệu hiện tại trùng với điều kiện được lưu.

Màn hình sản xuất
Quy tắc của sự sốngQuy tắc xe đạp sống được đánh giá theo ưu tiên; quy tắc tương ứng đầu tiên thay đổi giai đoạn liên lạc.Quy tắc của sự sốngMiền làm việcDỐI7RUNSĐêmPRIORITYCao nhất trướcQUAN ĐIỂM CÔNG VIỆC SỐNG& Hiện→Đủ điều kiệnĐiểm _2 60 và hoạt động gần đâyƯu tiên 100Đủ điều kiện→Tuỳ biếnsự kiện mua tồn tạiƯu tiên 90Tuỳ biến→Nguy hiểmkhông hoạt động 60 ngàyƯu tiên 70Nguy hiểm→Tuỳ biếnMua hay trả lời mớiƯu tiên 601PICK STAGESTừ và đến2DEFINE FILTERName JSON3ORDER RULESThắng trận đầu
Quy tắc xe đạp sống được đánh giá theo ưu tiên; quy tắc tương ứng đầu tiên thay đổi giai đoạn liên lạc.

Mỗi quy tắc có một giai đoạn nguồn, giai đoạn đích, cờ hoạt động, ưu tiên và bộ lọc theo kiểu phân đoạn. công việc xe đạp kéo định kỳ đánh giá các ưu tiên cao hơn trước và dừng lại sau trận đấu đầu tiên liên lạc.

Hãy tránh hai quy tắc hoạt động có thể chuyển tiếp cùng một hướng trong cùng một lần chạy.

CRM

Chuyển động CRM

Dòng không gian làm việc kết hợp khách hàng và các sự kiện hoạt động để các đội có thể điều tra những gì đã xảy ra mà không cần mở ra mỗi mô-đun.

Màn hình sản xuất
Hoạt động CRMHoạt động dòng chảy giao nhau chat, vé, email, webok, chuyển đổi và sự kiện bất thường với bộ lọc và tiểu sử.Hoạt động CRMMiền làm việcBÀI HỌC2,804CUSTOMERS1,126ANOMALIES14QUAN ĐIỂM CÔNG VIỆC SỐNGGiải quyết tán gẫu[email protected] · AlIBây giờVé trả lờiT-1048· Billing4mmSự kiện đã được giải quyếtsubscription.upgraded12mChuyển đổiTrật tự 7788 · £14919m1FILTERSự kiện và khách hàng2OPEN CONTEXTNhảy vào đĩa hát3PAGE RESULTSGiữ cho các cuộc điều tra được hạn chế
Hoạt động dòng chảy giao nhau chat, vé, email, webok, chuyển đổi và sự kiện bất thường với bộ lọc và tiểu sử.

Bộ lọc theo kiểu sự kiện, ngày tháng, liên lạc hay nhà nước khách hàng (bao gồm khách hàng trả tiền). Nguồn này là một mô hình đọc hoạt động đã ghi; nó không thay thế vé nguồn, trò chuyện, thỏa thuận hoặc kết nối. Mở hồ sơ đã liên kết trước khi hành động nhạy cảm.

CRM

lưu công việc

Dòng điện phản hồi lại một sự kiện và thực hiện một loạt các hành động, kể cả những bước bị trì hoãn do Cron tái lập.

Màn hình sản xuất
lưu công việcMột dòng chảy công việc cho thấy bộ phận kích hoạt, hoàn thành hành động, chờ đợi chậm trễ và bước tiếp theo.lưu công việcMiền làm việcDỐI9RUNNING42LÀM THẾ NÀO?1QUAN ĐIỂM CÔNG VIỆC SỐNGTắtcontact.createdChạyStep1Gửi thư chào mừngHoàn tất& Tạm dừngKhoan. 2 ngàyĐang đợiStep2Tạo tác vụ bán hàngKế1CHOOSE TRIGGERSự kiện bắt đầu cuộc chạy đua2ORDER STEPSHành động và hoãn3MONITORTiếp tục qua cron
Một dòng chảy công việc cho thấy bộ phận kích hoạt, hoàn thành hành động, chờ đợi chậm trễ và bước tiếp theo.

Tạo luồng công việc bằng cách chọn bộ gây nên, thêm bước để kích hoạt nó. Độ trễ được cất giữ, không được tổ chức bởi yêu cầu duyệt Mạng; hệ thống cron thống nhất tiếp tục chạy khi chạy.

Các mẫu được xây dựng bao gồm sau khi đăng ký, sau khi nhận lời cảm ơn và xác nhận bản mẫu.

Thiết kế hành động cần được nhận diện. Một việc thử lại không gửi những yêu cầu tự động chuyển tiền hoặc tạo hồ sơ trùng.

Hỗ trợ

Vé là kênh hỗ trợ chính thức của bạn. họ có các bộ phận, ưu tiên, SLA mục tiêu, đính kèm, ghi chú nội bộ và câu chuyện đầy đủ. OpsIQ Adammin, đơn vé/mbed, nuốt email, chat leo thang, kết nối, hoặc API.

Chi tiết véMột vé có khung cửa siêu thanh (tiểu thức, đơn vị, SLA, status), câu chuyện và bản thảo AI và những hành động hoàn trả.Miền làm việcT-12345CaoPriorityCaoNhà ởThanh toánSLA3h Trái 12mTrạng tháiMởTôi bị buộc hai lần vì tôidài hạn vào tháng 6 3.AlXác nhận bản saonạp, hoàn trả.Trả lời AI dấu vếtGỡ bỏ1THREADEDToàn bộ cuộc nói chuyện + ghi chú2SLA & ROUTINGƯu tiên, phụ thuộc, đồng hồ hẹn giờ3AI DRAFTTrả lời đi.
Mỗi vé có quyền ưu tiên, sở, SLA Timer và chỉ, và AI có thể soạn thảo câu trả lời cho anh.

Làm thế nào một tấm vé trôi

1
Vé đến

Một khách hàng gửi một tin nhắn qua email, chat leo thang, vé liên lạc hoặc quảng cáo tạo ra một.12345).

2
Xếp hạng

AI đọc chủ đề và cơ thể, đặt ưu tiên (Low/ Nomal/ High/Urgen), cho thấy một bộ phận, và phát hiện tình cảm. Điều này xảy ra tự động nếu có khả năng sử dụng bộ ba.

3
Trả lời

Một tác nhân mở vé, đọc bối cảnh (thường xuyên hồ sơ cá nhân, dữ liệu nền tảng từ kết nối, vé trước) và viết thư trả lời. AI có thể soạn thảo câu trả lời, và các đại lý chỉnh sửa trước khi gửi.

4
Đóng

Khi vấn đề được giải quyết, tác nhân đóng cửa vé. khách hàng được thông báo. Nếu khách hàng trả lời sau khi đóng cửa, vé sẽ tự động mở lại.

Hành động nạp đơn

Đổi bộ phận

Chuyển vé sang một bộ phận khác (v. d., từ tướng sang Billing). Có ích khi lần đầu tiên định tuyến sai.

Gán cho tác vụ

Chỉ định vé cho một thành viên cụ thể. Đặc vụ được chỉ định sẽ xem vé trong ô xem "Tôi".

Thêm chú thích nội bộ

Ghi chú chỉ cho các nhân viên. Dùng để tìm kiếm: tìm kiếm điều tra, trả lại lý do, bối cảnh kỹ thuật, cam kết trước đó. Ghi chú nội bộ không bao giờ xuất hiện đối với khách hàng.

Phiên bản nhập

Kết hợp các vé trùng từ cùng một khách hàng. Đối tượng đã nhập được đánh dấu [MERGD], tất cả các tin nhắn từ cả hai vé đều được lưu trong vé còn lại.

Đáp ứng có khả năng xem

Chèn một chuỗi trả lời đã ghi sẵn. Biến như {{customer_name}} và {{ticket_id}} được thay thế tự động.

Bản viết lại Al

Để AI cải thiện câu trả lời dấu chấm hỏi của bạn: điều chỉnh giọng nói, rút ngắn/ kéo dài, sửa ngữ pháp hoặc dịch. Bạn xem xét kết quả trước khi gửi.

Thay đổi ưu tiên

Đặt xuống thấp, chuẩn, cao hay cấp. Ưu tiên ảnh hưởng đến đồng hồ đo thời gian và trật tự SLA.

Thay đổi trạng thái

Đặt mở, đóng, đợi trên máy khách, tùy chỉnh, giải quyết hoặc đóng cửa.

Ví dụ làm việc: Xử lý một khách hàng không vui

Thư khách hàng: "Tôi đã bị phạt hai lần cho việc đăng ký"

Tình huống:
Subject: Double charge on my account Body: Hi, I just checked my bank statement and I see two charges of $49.99 from your company dated June 3. I only have one subscription. Can you please refund the duplicate charge? This is really frustrating.
Làm sao bây giờ?

Step 1: AI triage assigns Priority: High, Department: Billing, Sentiment: Frustrated. Step 2: Agent opens the ticket. The connector panel shows the customer's Stripe charges, confirmed two charges on June 3. Step 3: Agent adds an internal note: "Confirmed duplicate charge in Stripe. Transaction IDs: ch_xxx and ch_yyy." Step 4: Agent drafts a reply: "Hi [Name], I can see the duplicate charge and I'm processing a refund for the second transaction right now. You should see $49.99 back in your account within 3-5 business days. I'm sorry for the inconvenience." Step 5: Agent triggers the refund action through the Stripe connector (with confirmation). Step 6: Agent sends the reply and sets status to Resolved.

Nhà ở

Tạo các bộ phận trong Thiết lập > Bộ phận Kiểm tra > Bộ chỉ thị. Bộ phận chung: Tướng, Billing, kỹ thuật, doanh số, lạm dụng, điều khiển. Mỗi bộ phận có thể có các quy tắc tự động, kiến thức AI và các bài tập của nhóm.

Đáp ứng có khả năng

Tạo mẫu trả lời có thể sử dụng trong Thiết lập > Kiểm tra > Phản ứng đã bật. Đáp ứng có khả năng làm việc tốt bao gồm:

Ví dụ mẫu đáp ứng sẵn sàng
Hi {{customer_name}},

Thanks for reaching out. I checked the details and here is what I found:

{{response_details}}

If you need anything else, just reply to this ticket and I will be happy to help.

Best regards,
{{agent_name}}
{{department_signature}}

Đang chuyển vé

Khi một khách hàng gửi cùng một câu hỏi nhiều lần (từ điển email và chat, hoặc hai email riêng biệt), bạn có thể nhập vào. Đến vé, nhấn vào vé, chọn vé khác để nhập. Vé còn lại nhận được mọi tin nhắn từ cả hai vé. Đối tượng của vé nhập khẩu sẽ được gắn thẻ [MERGD] để chỉ ra nó đã được kết hợp.

Các nền tảng được kết nối theo sau sự hợp nhất. ( Khi vé được đặt trên bục có kết nối)WHMCS, ZendeskMột tấm vé đã nhập chưa bao giờ có cuộc trò chuyện thêm vào bảng ghi chú nhân viên, không bao giờ là thư trả lời của khách hàng WHMCS) Hợp nhất OpsIQ Vé như nhau.

Ưu tiên và SLA

Thấp

Những câu hỏi không có phản hồi, yêu cầu tính năng, phản hồi tổng quát. 24 giờ.

Chuẩn

Câu hỏi hỗ trợ tiêu chuẩn. 8 giờ.

Cao

Mục tiêu đầu tiên: 4 giờ.

Khẩn cấp

Dịch vụ hạ, sự cố an ninh, mất dữ liệu, lỗi hóa đơn. 1 giờ.

SLA đếm giờ bắt đầu khi các vé được tạo ra và tạm dừng khi trạng thái là "Chờ trên máy tính cá nhân." Nếu mục tiêu của SLA bị bỏ qua, vé sẽ được đánh dấu và leo thang tùy chọn.

Khách hàng có thể xem ghi chú nội bộ không?+

Không bao giờ. ghi chú nội bộ là chỉ dành riêng cho nhân viên. họ không xuất hiện trên cổng vé khách hàng, thư điện tử, hoặc bất kỳ bề mặt khách hàng nào.

Chuyện gì xảy ra khi người ta trả lời một cái vé đóng?+

Vé tự động mở lại và trở lại hàng đợi. Đội được thông báo về câu trả lời mới.

Tôi có thể khóa vé để ngăn chặn các câu trả lời tiếp theo không?+

Có. Dùng tùy chọn Lock Thread để ngăn cản cả khách hàng lẫn AI trả lời mới. Có ích cho các cuộc tranh chấp giải quyết hoặc đóng cửa điều tra.

Hỗ trợ

Phòng thu dịch vụ: SLA, nộp và chất lượng

Phòng điều khiển cho cách hoạt động hỗ trợ của bạn: Chính sách SLA với thang leo thang, lịch kinh doanh, dòng chảy trạng thái, thiết lập CSAT và tính năng công ty. Mở nó từ trang Ticket (cái nút Phòng thu dịch vụ trong thanh thao tác).

Chính sách SLA

Mỗi vé mới được đánh giá đầu tiên và một thời hạn nghị quyết từ chính sách hoạt động cụ thể nhất: bộ phận + ưu tiên đánh bại ưu tiên, đánh bại các mặc định. Số phiếu kết thúc tự động dừng trong khi một vé ngồi ở Pend hoặc On hold.

Thang thang

Thay vì một hành động vi phạm, một chính sách có thể xác định đến sáu bước: ví dụ cảnh báo người được giao tại. 75% Cửa sổ, cảnh báo quản lý tại. 100%, chuyển cho một nhân viên có tên tại. 150% Mỗi bước bắn chính xác một lần cho mỗi vé.

Giờ làm việc và lịch làm việc

Vì giờ làm việc, đồng hồ SLA chỉ cháy trong giờ làm, nên một vé mở vào tối Thứ Sáu không bị xâm nhập vào thứ bảy.

Trạng thái

Một ma trận từ/để hạn chế trạng thái thay đổi ademins có thể thực hiện, với một định sẵn kiểu Zendesk. Tự động, nhận thư điện tử và trả lời vé khách hàng luôn miễn phí, vì vậy một ma trận nghiêm ngặt không bao giờ có thể can thiệp vào đường ống. Tùy chọn đòi hỏi một dấu ký chấp thuận trước khi đóng.

Chấp nhận

Các đặc vụ yêu cầu ký tên trên vé (được giải quyết qua ngưỡng, ngoại lệ chính sách). Một người được chấp thuận tên hay bất kỳ quản trị nào quyết định bằng thư từ; người yêu cầu không bao giờ có thể chấp nhận yêu cầu của mình. Đang xếp lại các cấp chấp thuận bề mặt như một băng cờ trên hộp.

Cho phép chọn các mối quan hệ

Liên kết vé như liên quan, sao chép, cha / con hoặc chặn; chia trả lời ra một vé mới được liên kết (tương tự như sáp nhập, không gửi email cho khách hàng); theo vé để nhận thông báo trong ứng dụng và tùy chọn địa chỉ email CC theo dõi trên các câu trả lời đi ra.

Hộp thư nhận và va chạm

Với hộp thư đến thời gian thực, các vé và câu trả lời mới xuất hiện cho các tác nhân trong giây thông báo đã có. Trên vé, các đại lý xem ai đang xem và nhận được băng cờ cảnh báo khi đồng đội đã viết thư trả lời. Một nút nhấn chuột đơn xác nhận chỉ định vé cho chính mình.

Đường dẫn AI-aware

Quy tắc lập trình có thể khớp trên tín hiệu AI ba cấp độ: ưu tiên, phân loại, tình cảm, rủi ro leo thang, cộng với các giá trị tự chọn từ đơn yêu cầu cổng ra vào. Quy định sử dụng những điều kiện này vẫn còn hoạt động cho đến khi tính năng được bật.

💡
Tất cả các doanh nghiệp đều đổi tàu, chuyển sang phòng thu dịch vụ.→Chất lượng và tự động hóa là tối ưu; để lại chúng không giữ hành vi giống hệt nhau trước khi nâng cấp.
Tại sao một khách hàng vẫn có thể mở lại một vé đóng cửa khi ma trận của tôi cấm đóng cửa→Mở cửa?+

Các ma trận chỉ chi phối các hành động ADMIN. trả lời tự động, thư điện tử và tự động hóa được cố ý miễn trừ để một chính sách nghiêm ngặt không bao giờ có thể khóa khách hàng ra ngoài hoặc phá vỡ các đường ống dẫn.

Có phải thang SLA thay thế cho các lỗ hổng cũ?+

Không, chính sách được lưu lại chỉ với một hành động vi phạm duy nhất không thay đổi.

Hỗ trợ

Trả lời và nâng cấp tự động

Tự động trả lời cho AI tự động trả lời các vé mới. Việc leo thang sẽ di chuyển vé đến một bộ khác khi AI phát hiện nhu cầu đặc biệt. Cả hai tính năng đều hoạt động trên vé bản địa và vé đã tạo email.

Tự động đáp ứng
Tự động trả lời phiếu hỗ trợMột dòng chảy: vé mới, trễ 2 phút, AI trả lời từ kiến thức và bối cảnh, rồi gửi hoặc lưu lại như một bản nháp.Tự động đáp ứngMiền làm việcKhi có vé mớiVé mớibất kỳ nguồn nào& Tạm dừng2 minAI trả lờiKB + bối cảnhGửihay nhápNếu một người trả lời trong lúc trì hoãn, tự động sẽ bị hủy bỏ.1DELAYCon người có cơ hội đầu tiên2AI REPLIESTừ KB + bối cảnh3OR ESCALATETheo ý định
Vé mới sẽ bị chậm trễ (để con người có thể nhảy vào), rồi một AI trả lời theo kiến thức của bạn, gửi hoặc xếp hàng như một bản nháp.

Tự động hoạt động như thế nào

1
Vé xuất hiện

Một vé mới được tạo ra từ bất kỳ nguồn tin nào. API).

2
Lịch trả lời

OpsIQ chờ sự chậm trễ đã cấu hình (mặc định: 2 Điều này cho các đặc vụ loài người cơ hội đáp ứng trước.

3
Câu trả lời đầu tiên thắng

Nếu một tác nhân con người trả lời trong lúc trì hoãn, thì tự động trả lời bị hủy bỏ. Nếu không, AI sẽ tạo ra câu trả lời.

4
Tạo ra và gửi

AI đọc vé, kiểm tra cơ sở kiến thức, ngữ cảnh kết nối và lịch sử khách hàng, rồi viết thư trả lời. Đáp án được gửi (hoặc xếp hàng để xem lại, tùy theo thiết lập).

Làm thế nào leo thang hoạt động

1
Cấu hình bộ phận

Thiết lập các bộ phận có thể nhận được thang bộ (v. d., Billing có thể tăng lên từ tướng, kỹ thuật có thể leo thang khỏi tướng quân).

2
Loại vé

Trước khi tự động trả lời, AI phân loại ý định vé: hóa đơn, kỹ thuật, hoàn tiền, lạm dụng, v. v.

3
Di chuyển nếu cần thiết

Nếu mục đích của vé trùng với bộ phận tăng tốc, thì tấm vé được dời đi.

4
Tạo ra giọng nói mới

Câu trả lời được tạo ra bằng cách sử dụng kiến thức của bộ phận đích đến và đào tạo AI.

Thiết lập tham chiếu

Tự động bật

Bật công tắc AI để lấy vé.

Các bộ phận được phép

Ban nào có thể nhận được phản hồi tự động.

& Tạm dừng

Bao lâu để đợi trả lời AI (theo giây). Mặc định: 120 giây2phút0để trả lời ngay.

& Tạm thời

Tùy chọn đặt ra những sự trì hoãn khác nhau cho giờ làm việc và sau giờ.

Dừng lại khi người ta trả lời

Nếu một tác nhân con người trả lời trước, hãy hủy bỏ bản trả lời tự động. Mặc định: Bật.

Bật tăng cấp

Bật định tuyến của bộ phận tự động dựa trên mục đích vé.

Các bộ phận leo thang

Vé nào có thể tăng lên.

Trạng thái leo thang

Tình trạng nào cần đặt khi leo thang (v. d., Mở, sắp xếp).

Ghi chú leo thang

Có nên thêm một nốt bên trong giải thích lý do tăng cường không.

Vé đã tạo thư điện tử

Vé được tạo từ email (từ hộp thư thoại chọn hay giao hàng MX) theo cùng một quy tắc tự động và tăng cường. Đáp ứng AI được gửi như là một thư điện tử trả lời cho khách hàng. Thư điện tử các bản nháp sẽ được đưa đến các hàng đợi xem xét nếu cấu hình.

Liệu AI có trả lời câu hỏi không?+

Chỉ khi bạn cho phép khoa Hóa đơn tự động, chúng tôi đề nghị bắt đầu với việc kiểm tra hóa đơn và cho phép nó chỉ sau khi bạn đã đào tạo AI với các dự luật toàn diện và kiểm tra kỹ lưỡng.

Nếu AI trả lời sai thì sao?+

Nếu khách hàng trả lời câu trả lời sai, một tác nhân con người nên can thiệp.

Tôi có thể xem lại các đơn đặt hàng tự động trước khi họ được gửi không?+

Đặt chế độ chuyển phát sang "Daft" thay cho "tự động-seend." Bản nháp tự động sẽ xuất hiện trong hàng đợi các bản nháp để xem xét trước khi gửi.

Hỗ trợ

Cổng thông tin vé

Cổng vé liên kết cho phép bạn thêm một giao diện quản lý vé vào bất kỳ trang web nào. OpsIQ Adam.

Nó hoạt động thế nào?
Cổng thông tin véMột cổng hỗ trợ được gắn trong một trang web cho thấy một khách hàng vé của riêng họ và một nút cắm mới.yoursite.com/supportTrung tâm hỗ trợVé mớiCÂU CHUYỆN CỦA BẠN#1042 Câu hỏi ·RundMở#1038 · Thiết lập trợ giúpGiải quyết#1031· Invoice copyĐang đợi1EMBEDThêm vào bất kỳ nơi Mạng2SELF-SERVEKhách hàng xem vé3NO LOGINNhận diện được xử lý an toàn
Cổng thông tin vé

Ba mùi vị

Inline conbed

Nó vẽ cánh cổng vé vào trong một cái div trên trang của bạn cánh cổng chiếm toàn bộ vật chứa của nó

Ô điều khiển nổi

Hiện một nút nổi mở cửa vé trong bảng điều khiển. Tương tự như bộ điều khiển chat.

Đã xác thực

Yêu cầu một vật ký tên, khách hàng chỉ thấy vé của họ.

Cài đặt

Đính kèm và trò chuyện
<!-- Signed-in customer: your server adds a fresh identity_token -->
<script async src="https://your-opsiq-domain.com/widget.php?site_key=SITE_KEY&identity_token=SERVER_GENERATED_TOKEN"
        data-opsiq-widget="client-chat"></script>

<!-- Guest: the same tag without identity_token -->
<script async src="https://your-opsiq-domain.com/widget.php?site_key=SITE_KEY" data-opsiq-widget="client-chat"></script>
💡
Remote Sites → your site → Codes → C. Signed-in customers generates the complete code for your platform (PHP, WordPress, Laravel, Node.js, Python, Django, .NET, Rails, Java, Go), including the refresh handler that keeps a long visit signed in. The WHMCS hook and the Botble connector bridge already do this.

Thế hệ biểu tượng thẻ

Cho chế độ xác thực, máy chủ của bạn ký hiệu một biểu tượng sống ngắn với bí mật nơi Mạng OpsIQ Đó là một thư viện JS256 JWT tiêu chuẩn: bất kỳ thư viện JCT nào hoạt động.

PHP_· tạo ra hiệu bản sắc
<?php
// Generate identity token (PHP, no dependencies)
$secret = getenv("OPSIQ_SITE_SECRET");          // the site secret, server-side only
$b64 = fn($v) => rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), "+/", "-_"), "=");
$now = time();
$signing = $b64(["alg" => "HS256", "typ" => "JWT"]) . "." . $b64([
    "site_key"      => "SITE_KEY",
    "iat"           => $now,
    "exp"           => $now + 3600,
    "authenticated" => true,                        // required
    "platform"      => "php",
    "customer"      => [
        "id"          => $user["id"],               // required
        "email"       => $user["email"],            // required
        "name"        => $user["name"],
        "external_id" => (string) $user["id"],
    ],
]);
$token = $signing . "." . rtrim(strtr(base64_encode(hash_hmac("sha256", $signing, $secret, true)), "+/", "-_"), "=");
// Put $token on the widget URL as &identity_token=
nút. js, tạo ra bảng tên
// Node.js — npm i jsonwebtoken
const jwt = require("jsonwebtoken");

function generateOpsIQToken(customer) {
  return jwt.sign({
    site_key: "SITE_KEY",
    authenticated: true,                            // required
    platform: "node",
    customer: { id: customer.id, email: customer.email, name: customer.name, external_id: String(customer.id) },
  }, process.env.OPSIQ_SITE_SECRET, { algorithm: "HS256", expiresIn: 3600 });
}

Tính năng Ô điều khiển

Danh sách kiểm tra

Danh sách tìm kiếm, được mã hóa. Một "Chờ đợi bạn" đánh dấu cờ đã trả lời.

Cuộc trò chuyện đẫm máu

Quan điểm đầy đủ về việc trò chuyện với những văn bản, sự gắn bó và nhãn thời gian phong phú.

Chọn tự động lưu

Các câu trả lời của khách hàng được lưu tự động để họ không mất việc nếu họ di chuyển.

Thăm dò trực tiếp

Cuộc thăm dò các thiết bị để tìm câu trả lời mới mỗi 12 giây.

Giải quyết / Tiếp tục

Khách hàng có thể giải quyết hoặc mở lại vé bằng một cú click.

Ghi chú của nhân viên nội bộ không bao giờ được cho khách hàng xem trong vé.
Hỗ trợ

Hộp thoại

Hộp chat là nơi đội của bạn quản lý các cuộc trò chuyện trực tiếp của khách hàng. nó hiển thị các cuộc nói chuyện hoạt động, chỉ định cuộc trò chuyện, các cuộc tán gẫu trực tiếp và lưu trữ lịch sử.

Hộp thoại
Hộp thoạiMột hộp chat đặc vụ ba bảng: danh sách đối thoại, cuộc trò chuyện trực tiếp với chip phiên bản AI, và một bảng ngữ cảnh truy cập/CRM.Hộp thoạiMiền làm việcJCJane.Đâu là thứ tự của tôiMOĐóngtrả tiền câu hỏiRTRita.AI xử lýMón ăn của tôi đâu?Được vận chuyển ngày hôm nay.Đội Al sẵn sàngTrả lời...VÀI NGƯỜI TRONG LINHJane Doe.US_ Chrome3 quá đơn đặt hàngLTV$480CRMGiai đoạn:1UNIFIEDMỗi cuộc trò chuyện trực tiếp2CONTEXTNgười thăm +CRM bảng điều khiển3AI ASSISTNháp và Viết lại
Một hộp thư cho mỗi cuộc trò chuyện trực tiếp, danh sách đối thoại, các chủ đề với AI vẽ trên vòi nước, và đầy đủ khách truy cập +CRM Hoàn cảnh.

Quản lý cuộc trò chuyện

tán gẫu hoạt động

Đang trò chuyện. Chấm lục = khách hàng đang gõ hoặc mới nhất hoạt động.

Được điều khiển bởi AI

Nói chuyện với AI, bạn có thể tiếp quản mọi lúc bằng cách nhấn "Join."

Được giao cho tôi

Những cuộc nói chuyện được giao cho anh.

Đang đợi

Nói chuyện với khách hàng đang chờ đáp ứng.

Kho lưu

Hoàn tất các cuộc trò chuyện. Tìm kiếm bằng từ khoá, ngày và khách hàng.

Từ AI cho đến con người.

Khi bạn tiếp quản một cuộc trò chuyện từ AI, hãy theo 3 nguyên tắc sau:

1
Hãy đích thân chào hỏi

Xin tự giới thiệu tên mình. "Chào, đây là Sarah từ đội hỗ trợ."

2
Văn cảnh

Cho bạn xem cuộc đối thoại. "Tôi có thể thấy bạn hỏi về tình trạng của bạn."

3
Đặt kỳ vọng

Nói với khách hàng điều gì sẽ xảy ra tiếp theo. "Tôi đang xem xét điều này bây giờ và sẽ có một câu trả lời cho bạn trong vài phút nữa."

Đang bật/tắt mỗi cuộc trò chuyện

Dùng AI đểggle ở đầu mỗi cuộc đối thoại. Khi AI được bật, AI tạo ra các phản hồi. Khi tắt, chỉ có các đại diện có thể trả lời. AI nhớ bối cảnh giao tiếp ngay cả khi tắt và quay trở lại.

Chế độ / ra khỏi giờ

Cấu hình giờ làm việc trong thiết lập. Bên ngoài giờ kinh doanh, AI có thể: (1) Tiếp tục đáp ứng khách hàng,2Hiển thị một tin nhắn "ra đi" và tạo một vé cho việc theo dõi, hoặc (3) Tắt hoàn toàn trò chuyện và hiển thị dạng thẻ. Hãy chọn ứng xử thích hợp với mô hình hỗ trợ của bạn.

Giải quyết những cuộc nói chuyện khó khăn

1
Bình tĩnh

Không khớp cường độ cảm xúc của khách. Thừa nhận sự thất vọng của họ mà không phòng thủ.

2
Thu thập sự kiện

Trước khi trả lời, hãy thu thập thông tin cần thiết: đặt chi tiết, thông tin tài khoản, vé trước.

3
Escalate sớm

Nếu tình hình liên quan đến việc hoàn lại tiền, đe dọa pháp lý, lạm dụng hoặc bảo hiểm, thì sẽ leo thang lên thành viên cao cấp thay vì cố gắng tự xử lý.

Tôi có thể nói chuyện với đồng đội được không?+

Phải, hãy dùng những ghi chú nội bộ trong cuộc trò chuyện để liên lạc với các đặc vụ khác.

Chuyện gì xảy ra khi tôi kết thúc một cuộc trò chuyện?+

Cuộc trò chuyện chuyển sang kho lưu trữ. Nếu khách hàng gửi một thông điệp mới sau đó, một cuộc đối thoại mới sẽ được tạo ra.

Hỗ trợ

Name

Kết nối những gì ASApp, tin nhắn Facebook, kết nối với CNN DM, Telegram và INE Vì vậy, các khách hàng đã gửi tin nhắn đến bạn trong cùng một hộp thư cũng như trò chuyện trên trang web của bạn, trả lời bởi cùng một trợ lý AI.

Mỗi kênh hoạt động giống hệt nhau một lần kết nối: tin nhắn khách hàng trở thành một cuộc trò chuyện trong hộp đàm thoại, trợ lý AI trả lời nó bằng cùng kiến thức và hướng dẫn như là chat trên trang web của bạn, và bất kỳ tác nhân nào cũng có thể tiếp quản. Không có gì về AI của bạn cần cấu hình trên mỗi kênh.

Kết nối trông như thế nào?

Trình gửi/ nhận tin nhắn FacebookName

Chỉ cần nhấn một cái.→Trình gửi/ nhận tin nhắn Facebook & Skype, nhấn vào « Kết nối » để ký tên vào tài khoản Facebook quản lý trang của bạn, rồi chọn trang Mạng. Trình gửi kèm với nó khi Trang của bạn có kết nối tài khoản KDE chuyên nghiệp.

WhatsApp

Một cú nhấp chuột vào nơi nhà cung cấp của bạn đề nghị: mở kết nối Trung tâm chống trộm và sử dụng Kết nối Whats App, rồi theo sau bản ghi được hướng dẫn của Meta để chọn hoặc tạo số thứ cần áp dụng cho kinh doanh. Nếu không, hãy dán giấy ủy nhiệm từ bất kỳ của bất cứ mục nào trong số đó.20Cửa ra.

Telegram

2 phút./newbot,chọn một tên và kết thúc tên người dùng bằng "bot", và dán các hiệu bài nó sẽ đưa bạn vào kết nối Telegram.OpsIQđăng ký webok cho anh.

LE

Tạo tin nhắn API Kênh tại các nhà phát triển.line.biz, dán các kênh bí mật và bảng điều khiển truy cập, sau đó sao chép các webok URL Hiện trong OpsIQ Vào đường ray và tắt các vật chứa tự động của nó.

Trình gửi/ nhận tin nhắnName

Thêm một nhà cung cấp (Twilio, Vonage, lineii và những người khác) vào Phòng chứa tin nhắn với giấy ủy nhiệm và số người gửi.

Mỗi kết nối cho thấy chỉ dẫn từng bước một bên trong ngăn kéo, bao gồm chính xác phải sao chép cái gì và ở đâu.

Mở kênh

Kết nối với kênh không khởi chạy nó. Tới Thiết lập → Tán gẫu với khách → Cấp cao → Kênh tin nhắnbật kênh truyền hình lên và sau đó là kênh riêng. bạn có thể thử một kênh trước khi mở phần còn lại.

1
Kết nối kênh

Trong "Gấu nối", sử dụng các hướng dẫn trong ngăn kéo của người kết nối.

2
Kiểm tra kết nối

Nhấn vào Thử, nó thực sự gọi cho nhà cung cấp và nói cho bạn biết có gì sai nếu có bất cứ điều gì.

3
Bật kênh tin nhắn

Thiết lập→Tán gẫu với khách→Nâng cao, bật công tắc chính lên, rồi đến kênh truyền hình.

4
Gửi cho mình một thông điệp

Từ một tài khoản khác, tin nhắn trang của bạn, số điện thoại hay robot, nó nên xuất hiện trong hộp đàm thoại trong vài giây và nhận được một đáp án AI.

Cửa sổ trả lời

Nền tảng làm ăn bị đảo lộn giới hạn việc kinh doanh có thể trả lời bao lâu sau khi khách hàng viết thư.OpsIQcho thấy thời gian còn lại trong mỗi cuộc trò chuyện và áp đặt luật lệ cho bạn.

WhatsApp

24Tin nhắn cuối cùng của khách hàng. Sau đó, bạn có thể chỉ gửi một mẫu được chấp nhận, mà bạn cấu hình cùng một trang cấp cao.

Trình gửi/ nhận tin nhắn

24giờ cho câu trả lời bình thường; tác nhân có thể trả lời7Vài ngày sau, dưới sự trợ cấp của Meta.

TelegramTIẾNG, LE, tin nhắn

Không có cửa sổ đặt trước.

⚠️
Nếu trả lời không thành công vì cửa sổ đóng, cuộc đối thoại cho thấy nguyên nhân. Đây là quy tắc nền tảng, không phải aOpsIQgiới hạn.

Câu hỏi chung

Khách hàng có thấy rằng AI trả lời?+

Chỉ khi nào bạn nói với họ câu trả lời đến từ trang của bạn, số hoặc robot chính xác như một câu trả lời của con người.

Một đặc vụ có thể tiếp quản cuộc đối thoại giữa chừng không?+

Mở cuộc trò chuyện trong hộp đàm và nhấn vào nút "AI stops" (máy tính) bạn gõ, và khách hàng thấy một sợi chỉ liên tục ở phía họ.

Nếu tôi ngắt kết nối kênh thì sao?+

Dùng đoạn ngắt kết nối. Lịch sử thông điệp được lưu lại; tin nhắn mới chỉ dừng lại, và nền tảng được bảo là ngừng gửi chúng.

Hai không gian làm việc có thể sử dụng cùng một Facebook không?+

Không. Một trang thuộc về một vùng làm việc cùng lúc. Kết nối nó ở nơi khác, và không gian làm việc đầu tiên dừng nhận tin nhắn, do đó, bị ngắt kết nối lại có chủ đích thay vì tái kết nối ở nơi nào khác.

Hỗ trợ

Trò chuyện cởi mở

Những ví dụ này cho thấy một khách hàng có đào tạo tốt nên xử lý các trường hợp chung. sử dụng chúng để kiểm tra đào tạo AI của bạn và xác định khoảng cách.

10 ví dụ đối thoại

1Khách trở về hỏi về mệnh lệnh

Tình huống:
Xin chào, tôi đã đặt hàng3Vài ngày trước, và vẫn chưa nhận được thông báo nào.5523.
Làm sao bây giờ?

AI nên: (1Nhìn lên thứ tự #ORD-5523 thông qua bộ kết nối.2) Báo cáo tình trạng hiện thời và theo dõi thông tin nếu có ( (3Nếu lệnh này bị hoãn, hãy thừa nhận sự chậm trễ và xác định thời gian (theo ước tính).4• Không tạo ra trạng thái chuyển nếu bộ chuyển không có.

2Triển vọng hỏi về giá cả

Tình huống:
Người khách: Kế hoạch Pro của bạn tốn bao nhiêu tiền?
Làm sao bây giờ?

AI nên: (1Trả lời từ nền tảng kiến thức với giá trị hiện tại (Tiếng cười)2) Hãy giải thích sự khác biệt giữa hóa đơn hàng tháng và hóa đơn hằng năm (không phải ngày).3Nếu câu trả lời không nằm trong cơ sở tri thức, hãy nói và đưa ra đề nghị để kết nối chúng với doanh thu.4) Đừng tạo ra giá trị mà không có trong nền tảng kiến thức.

3Khách hàng giận dữ yêu cầu hoàn trả lại tiền

Tình huống:
Thật lố bịch! Tôi muốn lấy lại tiền ngay bây giờ.
Làm sao bây giờ?

AI nên...: (1) Hãy bình tĩnh nhận ra sự thất vọng. (2) Yêu cầu số thứ tự hoặc email tài khoản. (3) Giải thích quá trình hoàn trả lại. (4) Tạo một vé hỗ trợ hoặc tăng lên thành một tác nhân con người. (5) KHÔNG hứa trả lại tiền, điều đó đòi hỏi con người phải chấp nhận.

4..hai mặt tiền

Tình huống:
Tháng này tôi bị phạt hai lần, ngân hàng của tôi cho thấy có hai cáo buộc. $29.99.
Làm sao bây giờ?

AI nên: (1) Hãy nhận biết mối quan tâm này (2) Thu thập các chi tiết thích hợp (mail, ngày tháng các cáo buộc).3) Hãy giải thích rằng vấn đề hóa đơn đòi hỏi con người phải xem xét lại.4) Hãy tạo một vé của bộ phận Billing với các chi tiết.5) Đặt ưu tiên cao.

5Trình khách đa ngôn ngữ

Tình huống:
Bonjour, je voudrais savoir si vous evarez en France?
Làm sao bây giờ?

AI nên: (1Hãy đáp ứng bằng ngôn ngữ của khách hàng nếu ngôn ngữ đó được hỗ trợ.2Hãy trả lời câu hỏi về việc chuyển hàng sang Pháp từ cơ sở kiến thức (3) Nếu ngôn ngữ không được hỗ trợ, hãy đáp ứng bằng ngôn ngữ mặc định và đề cập đến những ngôn ngữ nào sẵn có.

6Cuộc trò chuyện hàng giờ liền

Tình huống:
Xin chào, có ai ở đó không?
Làm sao bây giờ?

AI nên: (1Nếu được cấu hình sau giờ làm việc, hãy đáp ứng và hỗ trợ.2Nếu sau giờ làm việc tạo ra vé, hãy nói: "Tổ của chúng ta hiện đang mất liên lạc với nhau, tôi đã tạo một vé hỗ trợ cho bạn và ai đó sẽ theo dõi trong giờ kinh doanh."3) Cung cấp số vé.

7.. người so sánh tiền mua hàng

Tình huống:
Người tùy biến: sản phẩm của bạn so sánh với [máy tính X] như thế nào?
Làm sao bây giờ?

AI nên: (1Hãy mô tả sức mạnh của sản phẩm.2Đừng nói xấu đối thủ cạnh tranh.3) Nếu có một trang so sánh trong cơ sở tri thức, hãy liên kết với nó (không thay đổi).4) Nếu khách hàng hỏi bạn không có những đặc điểm nào, hãy thành thật.

8Khách hàng muốn được giới thiệu

Tình huống:
Khách hàng: tôi chạy một cửa hàng nhỏ trên mạng về 100 Tôi được lệnh mỗi tháng, kế hoạch nào là đúng?
Làm sao bây giờ?

AI nên: (1Hãy hỏi những câu hỏi rõ ràng nếu cần (v. d., đặc điểm nào quan trọng nhất).2) Đề nghị một kế hoạch dựa trên nền tảng kiến thức (3Hãy giải thích tại sao kế hoạch này phù hợp với nhu cầu của họ (Bản Dịch Mới).4) Nói rằng họ có thể bắt đầu với một kế hoạch nhỏ hơn và nâng cấp sau đó.

9Khách hàng muốn giảm giá trái phép

Tình huống:
Tôi thấy trên mạng mà bạn cung cấp 50% Tôi có thể lấy một cái không?
Làm sao bây giờ?

AI nên: (1) Hãy lịch sự giải thích những đề tài được thăng chức hiện nay nếu có (2) Không nên tạo hoặc giảm giá lời hứa mà không có trong cơ sở kiến thức. (3Nếu khách hàng cứ tiếp tục, hãy đề nghị kết nối họ với đội bán hàng.

10. khách hàng cần giúp đỡ về một tính năng

Tình huống:
Tôi không thể tìm thấy nút xuất khẩu.
Làm sao bây giờ?

AI nên: (1Cung cấp các hướng dẫn từng bước một từ cơ sở kiến thức (Tiếng cười)2• Bao gồm đường dẫn chính xác của trang và vị trí của nút (3Nếu tính năng này đòi hỏi phải có một kế hoạch cụ thể, hãy đề cập đến điều đó (4) Nếu không có tính cách này, hãy thành thật và đề nghị những phương pháp khác.

Hỗ trợ

Tán gẫu và leo thang

Khi một cuộc trò chuyện trực tiếp cần một người thật, AI trả lời hai câu hỏi: nhóm sở hữu cuộc nói chuyện này, và nên được bảo là. cả hai đều được cấu hình trong Thiết lập, Chat khách hàng, Hỗ trợ FEP, dưới bộ phận định tuyến AI.

Chọn bộ phận nào mà AI có thể sử dụng

Hai hộp trên bảng đó là một danh sách trắng. các bộ phận chuyển sang bên phải là những cái duy nhất AI có thể đi đến hoặc mở vé. bất cứ điều gì còn lại bên trái là vô hình đối với nó, ngay cả khi bộ phận tồn tại và được nhân viên. bắt đầu thu hẹp và thêm các bộ máy khi bạn làm việc họ.

💡
Nếu không có bộ phận nào hoạt động được, OpsIQ Hãy xem đó như một mạng lưới an toàn chứ không phải là một sự lựa chọn cấu hình.

Ai được tăng cường

Đây là phần mà hầu hết mọi người mong muốn cấu hình và không cần thiết. OpsIQ Bạn quản lý danh sách đó một lần, trên trang của đội và Ban, và cả hai vé tăng tốc và trò chuyện leo thang theo sau nó.

Thành viên của ban

Mọi quảng cáo được gắn với bộ phận sẽ nhận bản sao riêng, và tài khoản bị cắt bỏ và bị tắt sẽ bị bỏ qua.

Quản trị chính

Dùng khi không có người trong đội, vậy vẫn còn ai đó đang leo thang.

Không có ai đính kèm

Bảng điều khiển định vị cho thấy sở đó có màu đỏ và AI không nói với khách truy cập là có người được thông báo.

⚠️
Địa chỉ đó là hộp thư của sở cảnh sát, một thư đến sẽ tương ứng với việc mở vé.

Bộ phận bắt- bắt-tất cả

Chính xác là một bộ phận mang dấu hiệu bắt được. và đó là phương pháp cuối cùng chứ không phải con đường thông thường.

1
Điểm số thắng

Từ thanh toán được gửi đến một bộ phận hóa đơn, tổ chức và sai sót khi nói với một người chuyên môn, mua từ ngữ để bán hàng.

2
Bộ phân loại AI thử nghiệm tiếp theo

Nếu từ khóa không xác định, mô hình đọc và chọn từ các ban có thể sử dụng.

3
Rồi bắt tất cả

Chỉ khi cả hai đều không có gì để bàn bạc.

4
Bảo vệ bán hàng.

Nếu tất cả đều là một phòng bán hàng và khách truy cập không có tín hiệu mua sắm, OpsIQ Thay vào đó, tìm kiếm một bộ phận hỗ trợ hoặc kỹ thuật, do đó, những câu hỏi hỗ trợ thông thường không tích lũy ở Sales.

Những gì người ta nói với khách

Nếu email tăng cường được thông báo cho khách truy cập, đội không thể ra ngoài, AI sẽ nói một điều gì đó thành thật và mời họ để lại tin nhắn trong cuộc trò chuyện.

Bảng điều khiển nói "Không ai được thông báo" cho một bộ phận+

Không ai được gắn vào nó. Mở Đội và Bộ, gắn ít nhất một chỉ huy hoạt động, rồi tải lại trang thiết lập. Bảng này đọc trực tiếp.

Có thể nói chuyện leo thang ở nơi nào khác ngoài đội?+

Đúng vậy, một địa chỉ đã được lưu trước đó cho một bộ phận vẫn còn ghi đè lên danh sách các nhóm.

Tại sao tất cả những thứ bắt được của tôi đều bị bỏ qua?+

Kiểm tra xem đó có phải là phòng bán hàng hay không. OpsIQ Định hướng đến một bộ phận hỗ trợ hoặc kỹ thuật.

Hỗ trợ

Hộp thư và bản nháp

OpsIQ có thể kết nối tới hộp thư điện tử để tự động tạo vé từ email gửi đến và gửi thư trả lời như email. Nó cũng cung cấp các câu trả lời được chia sẻ bởi AI cho việc xem xét của con người.

Thư điện tử
Thư điện tử đến véAn IMAP Hộp thư bên trái cho gửi email đến một vé chỉ với một đáp án AI-rafted ở bên phải.Thư điện tửMiền làm việc[email protected] · IMAPYêu cầu từ chối[email protected]Không thể đăng nhập[email protected]Hóa đơn[email protected]Vé 1042từ emails_· BillingTôi muốn hoàn tiền cho...Lặp lại năng lượng...Bản nháp AIXem lại & gửi hồi âm1INGESTIMAP Chuyển tiếp vào2TO TICKETSTự động cuộn3AI DRAFTSPhản hồi để ôn lại
Tấp email vào đây IMAP (hoặc chuyển tiếp), mỗi người sẽ trở thành một tấm vé có dây, và để cho AI soạn thảo câu trả lời để xem xét.

Kết nối hộp thư

Giao thức

IMAP (Hầu hết các nhà cung cấp), Gmail API (Không gian làm việc kiểu Google), hay đồ thị Microsoft (nhìn ra ngoài 365).

Thiết lập cần thiết

Máy, cổng, mã hóa (SSL/TLS), tên người dùng, mật khẩu hay mật khẩu ứng dụng, thư mục (thường là INBOX).

Bản đồ Bộ

Bản đồ hộp thư đến một phòng vé. Emails [email protected] tạo ra vé trong bộ phận "Support".

Thiết lập Gmail ( từng bước)

1
Bật 2- Đi thẳng.

Tới tài khoản Google > Bảo mật > 2- Đi thẳng vào vấn đề và kích hoạt nó.

2
Tạo một mật khẩu tùy chọn

Đi tới tài khoản Google > Bảo mật > Mật khẩu ứng dụng. Chọn "Mail" và "Other ( khác OpsIQ) "Đã rõ"16- Mật khẩu ký tự.

3
Vào OpsIQ

Tới thư điện tử > Hộp thư > Thêm. Đặt máy: imap.gmail.com, cổng: 993 mã hóa: SSL tên người dùng: [email protected] mật khẩu: mật khẩu ứng dụng.

4
Thử

Nhấn vào Kết nối Thử ra. Nếu thành công, OpsIQ sẽ bắt đầu bỏ phiếu cho email mới tại khoảng cấu hình.

Outout 365 thiết lập

1
Kiểm tra IMAP đã bật

Đang xem thiết lập > Thư > đồng bộ email, bảo đảm IMAP đã bật.

2
Dùng mật khẩu ứng dụng hay lăng kính hiện đại

Nếu bật, hãy tạo một mật khẩu ứng dụng. Nếu không, hãy dùng mật khẩu thường.

3
Vào OpsIQ

Máy: outlook.office365.com, cổng: 993 mã hóa: SSL tên người dùng: [email protected].

cPanel Thiết lập email

1
Tìm IMAP Thiết lập

Vào cPanel > Tài khoản email, nhấp vào tài khoản email của bạn IMAP thiết lập.

2
Vào OpsIQ

Máy: mail.yourdomain.com hay máy phục vụ, cổng: 993 (SSL) hoặc 143 Tên người dùng: địa chỉ email đầy đủ.

Bản nháp email của AI

Khi tự động-reply được đặt thành chế độ "Daft", AI tạo bản nháp trả lời xuất hiện trong hàng đợi nháp. Bạn có thể:

ôn lại

Đọc bản nháp và kiểm tra chính xác.

Sửa

Sửa đổi văn bản, sắc thái hoặc nội dung trước khi gửi.

Gởi

Hãy chấp nhận bản nháp và gửi nó như một thư điện tử trả lời.

Bỏ

Xoá bản nháp nếu nó không thích hợp.

Tự động kết thúc

Nếu tự tin đủ cao và tự động- trai được bật, bản nháp sẽ được gửi tự động sau một sự chậm trễ có thể cấu hình.

Tại sao không chuyển thư sang vé?+

Kiểm tra: (1) Hộp thư có được kết nối và khỏe mạnh không? Tìm trạng thái màu xanh lá cây trong thư điện tử > hộp thư. (2) Công việc của Cron có chạy không? (3) Có phải thư điện tử đã được lọc hay được chuyển đến một thư mục khác ngoài INBOX?

Tôi có thể dùng nhiều hộp thư không?+

Mỗi hộp thư có thể được lập bản đồ cho một bộ phận khác nhau. [email protected] đi đến hỗ trợ, [email protected] đi tới Billing.

Hỗ trợ

Sự thỏa mãn khách hàng (CSAT)

CSAT đo vé máy tính và sự thỏa mãn qua chat, cho thấy những phản ứng không vui và so sánh AI và kết quả của con người.

Màn hình sản xuất
Tuỳ biếnTrang CSAT kết hợp các thẻ ghi điểm, làm giảm giá trị tiếp theo, bình luận, sở và đặc vụ bị hỏng, và phản hồi trò chuyện.Tuỳ biếnMiền làm việcCÂU CHUYỆN386AVERAGE4.6POSITIVE91%QUAN ĐIỂM CÔNG VIỆC SỐNGĐi theo người phỉ báng12 phản hồi đã xếp hạng1–2ôn lạiKhảo sát véGửi 24h sau khi đóngTự độngPhản hồi qua loaAl 4.5 · Con người 4.7So sánhXem đặc vụSố điểm và số đáp ứngSư phụ1WATCH AVERAGEHãy tận dụng xu hướng, không chỉ một điểm2FOLLOW DETRACTORSĐọc lời bình luận3COMPARE FAIRLYAl và con người
Trang CSAT kết hợp các thẻ ghi điểm, làm giảm giá trị tiếp theo, bình luận, sở và đặc vụ bị hỏng, và phản hồi trò chuyện.

Khả năng khảo sát vé được lên lịch sau khi đóng (bình thường 24 Một câu trả lời tích cực là điểm số4hay 5.. Dùng hàng đợi giảm dần cho hàng số 1 hay2và đọc vé máy tính trước khi liên lạc với khách hàng.

Thông báo phản hồi trò chuyện được báo cáo riêng cho các cuộc đối thoại xử với AI-resoled và con người. Kích cỡ mẫu thấp không nên được sử dụng để xếp hạng tác nhân hay mô hình.

Hỗ trợ

Phát thanh theo nhóm thư điện tử

Trang email cho phép một nhà điều hành có thẩm quyền gửi một thông điệp một lần tới tất cả các đại lý hoạt động, các đại diện được chọn hoặc một bộ phận và xem xét lại lịch sử gửi.

Màn hình sản xuất
Nền tảng thư điện tửNgười soạn email cho thấy khán giả, chủ đề, thông điệp và lịch sử giao hàng.Nền tảng thư điện tửMiền làm việcCÂU HỎI12DELIVERED11LÀM THẾ NÀO?1QUAN ĐIỂM CÔNG VIỆC SỐNGKhán giảTất cả các tác nhân hoạt độngĐã chọnĐối tượngTháng Bảy Hỗ trợ thối rữaChào.Thông điệpChương trình và ghi chú leo thangChào.Lịch sửKết quả và phát thanh trướcXem1CHOOSE PEOPLETất cả, được chọn hoặc nhóm2WRITE CLEARLYChủ đề và thông điệp3REVIEW HISTORYXác nhận kết quả
Người soạn email cho thấy khán giả, chủ đề, thông điệp và lịch sử giao hàng.

Trang này dành cho các tin nhắn hoạt động nội bộ, không phải cho khách hàng tiếp thị. Chọn những chương trình khán giả chính xác nhỏ nhất, tên xem thử và địa chỉ, rồi gửi. Giao hàng sử dụng đường dẫn được cấu hình và ghi lại kết quả.

Hỗ trợ

Hộp thư, gửi và gửi thư đến

Cấu hình như thế nào OpsIQ gửi email, chuyển tin nhắn đến và chứng minh miền gửi đã sẵn sàng.

Màn hình sản xuất
Thiết lập thư điện tửThiết lập email kết hợp định tuyến rộng rãi, từ danh tính, nuốt hộp thư, kiểm tra khả năng gửi và thư thử.Thiết lập thư điện tửMiền làm việcTRONG LINHSMTPMAILBOXES3(CÒI BÀI)QuaQUAN ĐIỂM CÔNG VIỆC SỐNGKết nối đã thíchSMTP / Nhà cung cấp kết nốiCấu hìnhTừ danh tínhSupport <[email protected]>Chào.IMAP Hộp thư[email protected]· INBOXÔ uếKhả năng chuyển tảiSPF_ DKIM_ DMARCQua1CHOOSE OUTBOUNDKết nối SMTP2CONNECT INBOXIMAP hay ống3TIẾNGGửi và xác nhận
Thiết lập email kết hợp định tuyến rộng rãi, từ danh tính, nuốt hộp thư, kiểm tra khả năng gửi và thư thử.

Email ngoài

Toàn bộ nhà quản trị có thể chọn bộ kết nối email yêu thích; OpsIQ rơi xuống cấu hình SMTP Gửi mail khi thích hợp. Đặt một nhận diện lại từ tên/ mũ, gửi một kiểm tra rồi kiểm tra 24- thành công trong một giờ.

Hộp thư

An IMAP Hộp thư cần một tên, địa chỉ email, bộ phận mục tiêu, máy chủ, cổng, chế độ bảo mật, tên người dùng, mật khẩu, thư mục, phiếu chọn quốc gia và chứng nhận. Giờ thì đi tập thể dục đi. để xác minh ăn trước khi đợi cron.

ống dẫn tức thì

Trên cùng máy phục vụ, một đường ống thư có thể truyền trực tiếp tin nhắn RFC822. Một trình phục vụ từ xa có thể hiển thị thông điệp thô cho điểm kết nối được bảo vệ bằng thẻ tín hiệu của nó. Cả hai đường dẫn đều đi cùng một đường dẫn, chỉ và chuyển đổi vé.

Khả năng chuyển tải

Kiểm tra SPF/DKIM/DMARC là bằng chứng cố vấn cho việc cấu hình từ miền. Một tờ ngân phiếu màu xanh không đảm bảo việc sắp xếp chỗ trong hộp, nhưng lỗi nên được sửa chữa trước khi gửi tin nhắn sản xuất.

Hỗ trợ

Hỗ trợ phòng thu cổng

Hỗ trợ thiết kế phòng thu Portal và công bố kinh nghiệm hỗ trợ khách hàng mà không cần tài sản hình ảnh bên ngoài.

Màn hình sản xuất
Hỗ trợ phòng thu cổngPhòng thu cảng cho thấy một hình ảnh phản ứng kèm theo chủ đề, định vị, kiến thức, vé, trợ lý, hình thức, chân vịt và CSS Điều khiển.Hỗ trợ phòng thu cổngMiền làm việcTEMPLATEHiện đạiTRONG CÀIMàn hình nềnQuốc giaNhápQUAN ĐIỂM CÔNG VIỆC SỐNGSắc tháiMàu sắc và nét chữSửaDi chuyểnKiến thức, vé, trợ lýSửaGiấy tờĐồng ruộng, lượng phân phối và bản saoSửaXuất bảnKiểm tra và làm cho sốngôn lại1CHOOSE TEMPLATEBắt đầu từ cấu trúc2PREVIEW SIZESMàn hình nền tới di động3PUBLISH SAFELYXem lại rồi nhả
Phòng thu cảng cho thấy một hình ảnh phản ứng kèm theo chủ đề, định vị, kiến thức, vé, trợ lý, hình thức, chân vịt và CSS Điều khiển.

Sử dụng mẫu như điểm khởi động, sau đó cấu hình sắc thái, bố trí, định hướng, tìm kiếm kiến thức, đơn vé, trợ lý, chân trang, nhãn hiệu, ứng xử tự chọn, CSS thiết lập chung. Xem thử màn hình, máy tính bảng và di động trước khi xuất bản.

Hỗ trợ

Khoảng cách tri thức

Hàng đợi kiến thức thu thập các câu hỏi khách hàng AI không thể trả lời một cách tự tin để đội quay có thể cải thiện việc bảo hiểm.

Màn hình sản xuất
Khoảng cách tri thứcHàng đợi bị trượt hay mất tự tin và theo dõi liệu đội đã giải quyết được chúng chưa.Khoảng cách tri thứcMiền làm việcOPEN GAPS28REPEATED9RESOLVED116QUAN ĐIỂM CÔNG VIỆC SỐNGGiới hạn & di chuyểnHỏi 14 _Thời gianCaoHỗ trợ cuối tuầnHỏi 8 _Thời gianVừaThời gian thay đổiHỏi 6 _Thời gianVừaAPI vùngHỏi 3 _Thời gianThấp1REVIEW QUESTIONXem bối cảnh cuộc trò chuyện2CHOOSE FIXBài viết hay lời nhắc3RESOLVEKiểm tra câu trả lời tiếp theo
Hàng đợi bị trượt hay mất tự tin và theo dõi liệu đội đã giải quyết được chúng chưa.

Mở một khoảng trống để đọc câu hỏi gốc và các cuộc trò chuyện gần đó, rồi chọn cách sửa chữa đúng: cập nhật một bài viết đã có, tạo một bài báo mới, thêm vào một thực tế kinh doanh, chỉnh lại dữ liệu kết nối hoặc thay đổi hướng dẫn leo thang. Đánh dấu chỉ sau khi đánh giá hoặc thử nghiệm thật sự trả lời được câu trả lời chấp nhận.

Hỗ trợ

Bộ quản lý trang trạng thái

Trang _BAR_chính quyền địa vị truyền tải sức khỏe dịch vụ và các sự cố sử dụng thành phần, trạng thái hiện tại và cập nhật.

Màn hình sản xuất
Bộ quản lý Trạng tháiBộ quản lý tình trạng liệt kê các thành phần và sự cố để người điều hành có thể công bố thông tin dịch vụ rõ ràng, có nhãn giờ.Bộ quản lý Trạng tháiMiền làm việcOVERALLHoạt độngNHỮNG NGƯỜI ĐỂ HIỆN7INCIDENTS1QUAN ĐIỂM CÔNG VIỆC SỐNGNơi MạngHoạt độngXanh lá câyAPIGiảm hiệu suấtXemThư điện tửHoạt độngXanh lá câySự kiện hiện thờiAPI Điều tra tình trạng khẩn cấpMở1UPDATE COMPONENTChọn trạng thái rõ2POST INCIDENTCập nhật nhãn giờ3RESOLVEĐóng với tổng kết
Bộ quản lý tình trạng liệt kê các thành phần và sự cố để người điều hành có thể công bố thông tin dịch vụ rõ ràng, có nhãn giờ.

Dùng các trạng thái thành phần một cách nhất định. Khi sự cố ảnh hưởng đến khách hàng, hãy công bố thông báo ban đầu, thêm các cập nhật có nhãn giờ khi sự thay đổi thực tế, và đóng với bản tóm tắt ngắn gọn. Đừng dùng trang trạng thái như bản ghi gỡ lỗi nội bộ; chẩn đoán nhạy cảm thuộc vào OpsIQ và nhật ký máy chủ.

Al

Hãy thiết lập AI của bạn

Cấu hình AI là nơi bạn chọn trình cung cấp AI, mô hình và chi phí. OpsIQ Hỗ trợ nhiều nhà cung cấp: Claude (Anthropic), GPT-4o (OpenAI), Gemini (Google) và Grok (xAI), bạn có thể dùng của riêng mình. API Phím (BYOK) hoặc quản lý AI nếu có trong kế hoạch của bạn.

Thiết lập AI
Cấu hình AIMột bảng thiết lập AI: một bảng điều khiển AI / BYOK Nhà cung cấp bật lên, một người lựa chọn mô hình, và một đồng hồ tính phí hàng tháng.Cấu hình AIMiền làm việcCấu hình AINhà cung cấpAI được quản lýChìa khóa của bạn (BYOK)Mô hìnhbraude · cân bằngNgân sách AI mỗi tháng62%1TWO MODESQuản lý AI hoặc BYOK2PICK A MODELTốc độ và độ sâu3BUDGETS& Điều khiển chi phí cho nắp bị mực nước biển nhấn
Chọn một AI được quản lý hoặc phím riêng, chọn một mô hình cho độ sâu vs, và dùng tiền tiêu tháng với một ngân sách có hiệu lực.

Chọn một nhà cung cấp

Claude (Anthropic)

Lý luận mạnh mẽ, cẩn thận với các sự kiện, tốt làm theo hướng dẫn phức tạp.4-20250514- Xin chào.3.5 Tốt nhất là hỗ trợ các cuộc trò chuyện, câu hỏi kỹ thuật, phân tích chi tiết.

GPT-4o (OpenAI)

Mô hình: gpt-4o, gpT-4o-mini. tốt nhất cho: phản hồi nhanh chóng, sáng tạo viết, câu hỏi kiến thức rộng.

Gemini(Google)

Những câu hỏi thực tế, hỗ trợ đa ngôn ngữ.gemini-2.0- Flash,gemini-1.5 Tốt nhất là hỗ trợ đa ngôn ngữ, xem xét thực tế.

Vàng (xAI)

Mô hình: gok-3Tốt nhất là trả lời nhanh, giọng điệu bình thường.

BYOK vs Quản lý AI

BYOK ( Hãy tự đem chìa khóa)

Bạn tự cung cấp cho mình API Phím từ nhà cung cấp. Bạn trả trực tiếp nhà cung ứng. Toàn bộ điều khiển sự lựa chọn và sử dụng mô hình.

AI được quản lý

Al được cung cấp như một phần của bạn OpsIQ Kế hoạch. API Sử dụng nó để chống lại sự cân bằng tín dụng của kế hoạch.

Thiết lập bước sóng

1
Tới cấu hình AI

Trong OpsIQ Quản trị, chuyển tới Thiết lập > Cấu hình AI.

2
Chọn nhà cung cấp

Chọn nhà cung cấp AI từ thả xuống.

3
Vào API Khóa

Nếu dùng BYOK Vào trong đi. API Để quản lý AI, điều này được tự động xử lý.

4
Chọn mô hình

Hãy chọn mô hình riêng. Mô hình nhỏ hơn thì nhanh hơn và rẻ hơn. Mô phỏng lớn hơn cho các câu trả lời chất lượng tốt hơn.

5
Thử kết nối

Nhấn vào « Kết nối tốt nhất » để xác minh API Một dấu check xanh có nghĩa là thành công.

6
Lưu

Nhấn vào Lưu để kích hoạt cấu hình AI của bạn.

Điều khiển giá trị

Ngân sách hàng tháng

Đặt tiêu dùng tối đa tháng trên tờ kiểu Al. Khi ngân sách đạt tới, AI có tính năng giảm dần dễ dàng (ít phản ứng, không trả lại tự động) thay vì dừng hoàn toàn.

Giới hạn hiệu số đối ngược

Những vật kỷ niệm tối đa trong mỗi cuộc trò chuyện, ngăn cản việc chạy trốn các cuộc đối thoại tiêu thụ quá nhiều tín dụng.

Báo động cân bằng thấp

Khi sự cân bằng tín dụng của bạn giảm dưới ngưỡng (mặc định: 50,000 cảnh báo, có một cảnh báo trong quảng cáo. Đặt nó vào cấu hình AI.

Cấu hình không gian làm việc đơn

Cấu hình AI là trên không gian làm việc. Nếu bạn quản lý nhiều nơi làm việc, mỗi vùng làm việc có thể sử dụng một nhà cung cấp, mô hình và ngân sách khác nhau. Không gian làm ăn này thừa hưởng các mặc định toàn cầu trừ khi quá tải. Để cấu hình trong không gian lao động: chuyển sang không gian công việc, rồi đi đến cấu hình AI và lưu thiết lập ở đó.

Được API phím

Anthropic(Claude)

Tới console.anthropic.com > API Phím > Tạo Khóa. Chép phím bắt đầu với "k-an-t".

OpenAI(GPT)

Tới platform.openai.com > API Phím > Tạo khóa bí mật mới. Chép phím bắt đầu bằng "sk-".

Google (e)Gemini)

Tới aistudio.google.com > Lấy API Chìa khóa, tạo chìa khóa cho dự án của anh đi.

xAI (Hy Lạp)

Tới console.x.ai > API Hãy tạo và sao chép chìa khóa.

Thử thiết lập AI của bạn

Tình huống:
Sau khi nhập vào API Chìa khóa, nhấn "Test kết nối." Bạn nên thấy một dấu check xanh lá cây và một phản hồi mẫu từ AI.
Làm sao bây giờ?

Nếu kiểm tra thất bại: (1) Kiểm tra xem API Khóa là đúng (không thêm khoảng trống). (2) Kiểm tra xem tài khoản của bạn đã thanh toán cho nhà cung cấp. (3) Kiểm tra xem tên mô hình là đúng. (4) Nếu sử dụng AI Quản lý, hãy xác minh bằng lái của bạn đang hoạt động.

Nhà cung cấp nào là tốt nhất?+

Không có nhà cung cấp tốt nhất. Claude là tuyệt vời cho các cuộc đối thoại hỗ trợ. Gemini Xử lý tốt nhiều ngôn ngữ. Hãy thử mỗi ngôn ngữ và xem kết quả nào tốt nhất cho trường hợp sử dụng cụ thể của bạn.

Tôi có thể đổi nhà cung cấp sau không?+

Phải, thay đổi nhà cung cấp và API Lịch sử nói chuyện hiện đại được bảo tồn, AI sẽ dùng nhà cung cấp mới cho mọi cuộc trò chuyện trong tương lai.

Chuyện gì xảy ra khi tôi hết tín dụng?+

Các AI giảm thiểu nhẹ nhàng: phản ứng trở nên ngắn hơn, tạm dừng tự động, và quảng cáo cho thấy một cảnh báo ít cân bằng.CRM Tiếp tục làm việc mà không có AI.

Al

Trò chuyện khách hàng thông minh và rẻ hơn

Một bộ điều khiển tối ưu làm cho trò chuyện của khách hàng thông minh hơn hoặc thông minh (nó lý do trên tài khoản của khách như một nhân viên) hoặc rẻ hơn (nó gửi AI ít hơn, hoặc trả lời trong ít bước). Mỗi kiểm soát là tắt theo mặc định và độc lập, chuyển một trên không bao giờ thay đổi bất kỳ hành vi khác. Hầu hết sống dưới Thiết lập > Ứng dụng khách > Ứng xử > Ứng cử; một số được đặt lên AI và Huấn luyện AI của bạn.

Câu trả lời thông minh hơn ( Chế độ tác vụ)

Một robot chat bình thường trả lời một câu hỏi từ một cách nhìn. Chế độ Đặc vụ trên, trợ lý có thể làm cho một số kiểm tra tài khoản chỉ đọc trong một lần lượt và tham khảo chéo chúng, ví dụ "Tôi có mở vé, và cân bằng của tôi đủ cho sự đổi mới tiếp theo?" được trả lời trong một câu trả lời với các toán học. nó chỉ liên quan đến các khách hàng xác thực về tài khoản hoặc trả lời câu hỏi; tất cả mọi thứ khác chạy đường dẫn đơn trả lời bình thường.

Chế độ Đặc vụ

Đến một vài lần tìm kiếm chỉ đọc trên mỗi lần lượt, tham chiếu chéo trước khi trả lời. Bật khi bạn có một nền tảng kết nối (WHMCS, Shopify, Stripe, ZendeskKhông thay đổi hành vi của mình hôm nay.

Suy nghĩ sâu sắc cho câu trả lời của tác nhân

Lý do của sự chuyển hướng phức tạp (từ nhỏ/ yum/ High). Bắt đầu từ thấp; hầu hết các câu hỏi hỗ trợ được giải quyết ở đó.

Mô hình đặc vụ

Điều chỉnh một mô hình mạnh hơn chỉ cho các tác nhân phức tạp biến, vì vậy mỗi cuộc trò chuyện hàng ngày ở trên một mô phỏng nhẹ, rẻ và chỉ có khó khăn chuyển đổi cho độ sâu. trống = mô hình giao diện khách hàng bình thường của bạn.

Lên kế hoạch trước . một lần trả lời (beta)

Một bước lên kế hoạch nhỏ quyết định xem xét xem có cần thiết hay không, rồi trả lời bằng một cuộc gọi chính thay vì vài bước. Một bước phụ dưới chế độ đặc vụ. Không thể bật tùy chọn này trừ khi chế độ Đặc vụ bật. Chất lượng câu trả lời tương tự, số cuộc gọi ít hơn trên nhiều phần.

Trò chuyện và hiểu

Bộ nhớ đối số dài (beta)

Giữ bản tóm tắt ngắn các tin nhắn cũ (tên, số phiếu/ hóa đơn, số lượng, quyết định) do đó trợ lý giữ cho nhất quán trong các cuộc trò chuyện rất dài mà không sửa đổi toàn bộ bản ghi. Tốt nhất để hỗ trợ- mạnh mẽ, chỉ dài; hai cặp với chế độ đặc vụ.

Lòng khoan dung

Đọc những lỗi gõ nhỏ ("ticket mở của tôi", "sổ sách chưa trả") như là từ ngữ có ý nghĩa để tìm được thông tin đúng thay vì bỏ qua. Tính năng này hoạt động với mọi nền tảng kết nối. Bật theo mặc định; hữu ích cho trò chuyện nhiều trên di động.

Văn cảnh tài khoản nghiêng

Chỉ gắn hình chụp tài khoản của khách hàng khi câu hỏi thực sự là về tài khoản (trung bình, hóa đơn, vé, dịch vụ), bỏ qua nó trên các câu hỏi chung. Cắt giảm chi phí mà không mất chất lượng. Trợ lý vẫn có thể lấy tài khoản trực tiếp khi cần thiết.

Chi phí lưu

Bỏ qua sự hiểu biết đang tìm kiếm lời chào (beta)

"Chào", "cảm ơn" và "ok" không kích hoạt một cuộc tìm kiếm kiến thức cơ bản, những câu trả lời đó không bao giờ sử dụng nó.

Câu trả lời dài nhất cho phép (bị bỏ qua)

Caps bao lâu một câu trả lời có thể được. trả lời dài là phần đắt nhất của một cuộc gọi, do đó, một nắp nhạy (ở gần 500 để hỗ trợ) là sự kiểm soát chi phí chat hiệu quả nhất. Chỉ làm giảm giới hạn toàn cầu của bạn, không bao giờ tăng nó lên.

Hãy cài đặt AI của bạn

Độ sâu suy nghĩ (Dear & admin chat)

Người mẫu suy nghĩ trước khi trả lời (ít hơn lên cao). Giữ cho khách hàng trò chuyện trên mức tối thiểu/ chậm để chạy nhanh; dành thiết lập cao hơn cho việc phân tích và phụ lái quản trị.

Mô hình Per- AI (việc làm)

Mỗi bề mặt AI (sống lại tán gẫu, bản nháp vé, tóm tắt, phân tích, quản trị viên, thăng chức, thông tin tình báo Side Intel (và nhiều hơn) có thể chạy trên mô hình riêng của nó. Ánh sáng nơi tốc độ quan trọng, mạnh mẽ khi chất lượng. Nằm trống trên mặt = nhà cung cấp mặc định cho công việc đó.

Điều khiển chi phí chat của Quản trị

Người phụ trách quản trị có thể giữ bộ nhớ bị ràng buộc và chỉ nạp các công cụ cần thiết (công cụ sạch) thay vì mỗi lần lượt.

Trên tàu của bạn Al

Lệnh nén

Chỉ thị của bạn được gửi đi trên mỗi lần lượt, vì vậy độ dài của chúng là một chi phí lặp lại. Cái nút nén viết lại một khe để nói điều tương tự trong ít từ hơn. {variable} hoặc quy tắc, và báo cáo những gì nó bảo vệ, vì vậy nó không bao giờ âm thầm thay đổi ý nghĩa.

"Cái gì đã ở trong não" (i vội vàng)

Hiển thị gì OpsIQ Bạn đã biết về công việc kinh doanh của mình mỗi lần vào một vị trí, để bạn có thể xóa bất cứ thứ gì bạn lặp lại trong hướng dẫn của chính mình.

💡
Tiền đi đâu? Để trò chuyện hỗ trợ ngắn kết nhập (công cụ + dữ liệu tài khoản + lịch sử, gửi mỗi lần chuyển) thường tốn nhiều hơn trả lời ngắn, ngứa và nghiêng giúp đỡ hầu hết. Để tạo nội dung đầu ra dài, các thông tin chi phối đầu ra. Cái nắp trả và độ sâu thấp hơn trả tiền ở đó. Xem thiết lập AI của bạn để tiếp tục chảy nước, làm cho phần lớn của mỗi lần rẽ rẻ.
Những điều này có thay đổi cách mà cuộc trò chuyện đã được trả lời không?+

Không, mọi sự điều khiển bị tắt theo mặc định và độc lập. Chỉ bật một trên hành vi của nó; tắt nó trả lại cuộc trò chuyện về cách nó hoạt động trước đó.

Tôi nên bật lệnh gì?+

Chạy trò chuyện hàng ngày trên một mô hình ánh sáng và ghim một mô phỏng đặc vụ mạnh hơn. sau đó, nếu bạn có một nền tảng kết nối, hiệu lực chế độ Đặc vụ, sau đó lên kế hoạch trước, sau đấy dự án bộ nhớ thay đổi dài. sau đấy nghiêng ngữ cảnh, bỏ qua K-B để tham gia, và một nút trả lời cuối cùng nén các hướng dẫn của bạn. Xem một vài cuộc trò chuyện thực sự sau mỗi thay đổi.

Bộ công cụ quản trị đặc vụ: tìm kiếm web, Sổ tay, nhiệm vụ, truyền tập tin

Nó có thể nghiên cứu sửa trang web, giữ một thư viện các thủ tục hoạt động của bạn, tuần tra máy chủ của bạn trên một lịch trình và di chuyển tập tin. Hầu hết điều này được điều khiển bằng cách yêu cầu nó trong trò chuyện; điều duy nhất bạn cấu hình trước đó là nhà cung cấp tìm kiếm web mà nó sử dụng, vào thiết lập trang AI của bạn.

Tìm kiếm trên Mạng

Xây dựng ở

Đặc vụ tìm kiếm web tìm các bác sĩ, thông điệp lỗi và thông tin hiện thời trong khi nó hoạt động. Ngoài hộp này dùng DuckDuck Go, mà không cần chìa khóa và không thiết lập.

Sổ tay

Nói chuyện

Một thư viện lưu của các thủ tục của bạn (như thế nào chúng tôi làm X ở đây"). Tác nhân viết một xuống sau khi đóng đinh một công việc khó khăn và theo nó lần sau, do đó, biết làm thế nào sống sót sau khi kết thúc cuộc trò chuyện.

Nhiệm vụ

Đã lên lịch

"Mỗi sáng, kiểm tra không gian và bản ghi lỗi và báo cáo cho tôi." Tìm thấy trên chuông quảng cáo của bạn.

Truyền tập tin

Nói chuyện

Yêu cầu tập tin bản ghi và có liên kết riêng để tải về, hoặc có một tập tin được sao chép từ máy phục vụ đã kết nối này sang máy khác. Cả hai đều bị bao vây ở 5 MB.

Tìm kiếm qua _Nghề tìm kiếm

Nhà cung cấp tìm kiếm

Những gì các đại diện tìm kiếm web sử dụng. mặc định là DuckDuck Go: không có phím, miễn phí, làm việc trên mỗi cài đặt. Serper.dev Thường thì kết quả sẽ tốt hơn nhưng mỗi người đều cần một API Phím từ nhà cung cấp đó. Nếu một nhà cung ứng có khóa bị lỗi vì bất cứ lý do nào (dấu hiệu xấu, chỉ tiêu dùng hết, lỗi mạng), việc tìm kiếm sẽ rơi về DuckDuck Go tự động, vì vậy tìm kiếm không bao giờ bị tối.

Tìm kiếm API Khóa

Chìa khóa cho nhà cung cấp đã chọn của bạn, chỉ cần cho Dũng cảm, Tavily hoặc Serper. một khi lưu nó là che đậy và không bao giờ hiển thị trên trang đó một lần nữa; dán một mới để thay thế nó. một nhà cung ứng có chìa khóa chỉ hoạt động khi cả nhà cung chức lẫn phím của nó được lưu.

Sổ tay

Khi người dùng vừa làm xong một công việc mà bạn muốn thực hiện lại theo cách này, nói "Lưu nó như là một runbook có tên nightly- cleanup". Từ lúc đó trở đi, nó sẽ nhìn thấy runbook theo tên trong mỗi phiên chạy, và khi bạn yêu cầu công việc theo tên (hoặc mô tả nó) nó sẽ kéo lên các bước và tuân theo chúng. Bạn có thể yêu cầu nó liệt kê, cập nhật hoặc xóa runbooks bất cứ lúc nào.

💡
Sổ tay chạy là hướng dẫn, không phải giấy thông hành miễn phí. Khi người điều khiển theo một bước, mỗi bước thay đổi máy phục vụ vẫn đi qua chế độ cho phép hiện thời của bạn và hiển thị thẻ chấp thuận thông thường. Một tập tin chạy không bao giờ có thể bỏ qua một sự chấp thuận.

Nhiệm vụ

Nhiệm vụ là một công việc lặp đi lặp lại mà tác nhân điều hành một mình: hàng giờ, hàng ngày, vào một giờ nhất định, hay hàng tuần, vào ngày hẹn. nhiệm vụ được đọc bởi thiết kế. họ có thể đọc máy chủ, dữ liệu và web, nhưng họ không bao giờ có thể thay đổi bất cứ điều gì; họ điều tra và báo cáo. Khi nhiệm vụ hoàn thành, các phát hiện ra như một thông báo trên chuông quảng cáo của bạn. nói " Chạy tuần tra buổi sáng" để kích hoạt một nhu cầu, hoặc yêu cầu, tạm dừng hoặc gỡ bỏ nhiệm vụ.

⚠️
Nhiệm vụ đã hết. OpsIQ cron, vì vậy nó cần phải được thiết lập (xem Cron và tự động hóa). Một off " Chạy nó bây giờ" từ công việc trò chuyện ngay cả giữa cron chạy trên phần lớn máy chủ.

Đang di chuyển tập tin

Yêu cầu một tập tin ("Hãy cho tôi bản ghi lỗi của ngày hôm nay từ máy phục vụ Mạng") và tác vụ nhấn nó rồi trả lời với liên kết tải về riêng. Liên kết này chỉ hoạt động với Adam đã ký và hết hạn sau khoảng một ngày. Tập tin bị đè vào đó. 5 MB; cho bất cứ điều gì lớn hơn, yêu cầu các đại lý nén hoặc cắt giảm nó trên máy chủ đầu tiên.

Đặc vụ cũng có thể sao chép một tập tin duy nhất giữa hai máy chủ kết nối, một lần nữa lên đến 5 MB. Việc ghi vào đích được đối xử như mọi thay đổi khác: trong chế độ yêu cầu bạn nhận thẻ chấp thuận trước, tập tin tồn tại được sao lưu, và bản sao là có thể đảo ngược. Để an toàn, nội dung tập tin được đọc lại từ nguồn ngay lúc này, bản sao được áp dụng, không phải lấy từ cuộc trò chuyện.

Al

Huấn luyện AI của bạn

Huấn luyện AI là nơi các bạn dạy học OpsIQ Bạn viết ra những dấu hiệu định nghĩa tính cách, ranh giới, sự tập trung kiến thức và các quy tắc leo thang.

Huấn luyện AI
Huấn luyện AI của bạnMột biên tập viên chỉ dẫn AI với các trang web "Berer/Admin" và giọng Anh đơn giản, luôn luôn và không bao giờ quy tắc.Huấn luyện AI của bạnMiền làm việcTrình khách AlQuản trị AlSắcThân thiện, súc tích, không bao giờ thúc đẩy.Luôn luônĐề nghị một người giúp đỡ cho việc thanh toán các vụ tranh chấp.Không bao giờHứa hoàn tiền lại mà không kiểm tra tài khoản.1TWO MANUALSQuản trị khách hàng và AI2PLAIN ENGLISHSắc, luôn luôn, không bao giờ3GROUNDEDThêm kiến thức cơ bản của cậu
Huấn luyện AI như một người thuê mới, khách hàng và sách hướng dẫn quản trị viết bằng tiếng Anh đơn giản (tone, luôn luôn, never), được đặt dưới KB của bạn.

Hai khu vực huấn luyện

Nhắc khách hàng

Điều khiển cách AI nói chuyện với khách hàng của bạn trong ô điều khiển chat. Đây là dấu nhắc quan trọng nhất để đúng.

Nhắc quản trị AI

Điều khiển cách AI hỗ trợ đội quản lý của anh trong bảng điều khiển.

Viết một nhắc nhở khách hàng tuyệt vời AI

Khách hàng của bạn AI nhắc nhở nên bao gồm những khu vực này:

1
Nhận diện

Hãy cho nó một cái tên, vai trò và tính cách. ví dụ: "Bạn là Luna, một trợ lý hỗ trợ khách hàng thân thiện và có hiểu biết cho Acme Store."

2
Sắc và kiểu dáng

Nó nên giao tiếp như thế nào? Ví dụ: "Hãy chuyên nghiệp nhưng ấm áp, hãy dùng ngôn ngữ đơn giản, tránh thuật ngữ.2-3 Đoạn tối đa)."

3
Giới hạn hiểu biết

"Bạn biết về sản phẩm, giá cả, hàng hóa và chính sách trả lại, bạn không biết gì về các sản phẩm cạnh tranh hay quyết định nội bộ của công ty."

4
Quy tắc leo thang

"Hãy nói với một nhân viên khi mà khách hàng yêu cầu hoàn trả lại tiền, đề cập đến hành động pháp lý, báo cáo vấn đề an ninh, hoặc hỏi cùng một câu hỏi ba lần."

5
Những điều không bao giờ nên làm

Những giới hạn khó khăn, ví dụ như: "Không bao giờ hứa trả lại tiền hoàn lại, không bao giờ chia sẻ công thức giá trị bên trong, không được tạo ra những đặc điểm sản phẩm không tồn tại.

Các dấu hiệu của gương mẫu

Trình khách nhanh Al nhắc ·/ s Ngày/Giờ
You are Aria, a friendly customer support assistant for TechGear.

PERSONALITY:
- Warm and professional
- Concise (2-3 paragraphs max per response)
- Use simple language, no jargon
- If unsure, say so honestly

KNOWLEDGE:
- Our products: laptops, accessories, software subscriptions
- Pricing: as listed in the knowledge base
- Shipping: free over $50, 3-5 business days standard, 1-2 days express ($12)
- Returns: 30-day money-back guarantee, must be in original condition

ESCALATION (hand off to human):
- Refund requests over $100
- Account security concerns
- Legal threats or complaints
- Customer explicitly asks for a human

NEVER DO:
- Promise specific delivery dates (say "estimated")
- Share discount codes not in the knowledge base
- Make up product specifications
- Give financial or legal advice
Dữ liệu liên quan tới Aedes aegypti tại Wikispecies
You are Atlas, an AI assistant for CloudHost web hosting.

TONE: Technical but accessible. Assume the customer has basic web knowledge.

KNOWLEDGE:
- Shared hosting, VPS, dedicated servers
- cPanel, DNS, SSL, email configuration
- WordPress, Joomla, Drupal installation
- Common error codes and troubleshooting

ESCALATION:
- Server outages affecting multiple customers
- Data loss or security breach reports
- Billing disputes over $50
- Complex migration requests

BOUNDARIES:
- Do NOT access customer servers or databases
- Do NOT change DNS records or passwords
- Always recommend the customer makes changes themselves
- For code issues, suggest steps but clarify you cannot debug their application

Điều chỉnh thông báo theo thời gian

1
Khởi chạy với cơ bản

Bắt đầu với nhân dạng, giọng điệu và giới hạn quan trọng.

2
Xem lại lịch sử của Al History hàng tuần

Hãy đọc những cuộc trò chuyện mà trí tuệ nhân tạo trả lời sai hoặc hạ nguyên tắc.

3
Cập nhật các nhắc nhở

Thêm những quy tắc cụ thể cho vấn đề tái diễn. thêm vào "Không bao giờ hứa trả lại tiền".

4
Thêm kiến thức

Nếu AI không thể trả lời câu hỏi, hãy thêm câu trả lời cho căn cứ tri thức thay vì cố gắng sắp xếp mọi thứ theo đúng cách.

⚠️
Giữ dấu chân của bạn dưới 2,000 Từ ngữ, dấu nhắc quá lâu có thể gây nhầm lẫn AI và chi phí bảo hiểm tăng.
Sự khác biệt giữa các dấu nhắc và nền tảng kiến thức là gì?+

Kiến thức cơ bản cung cấp thông tin thực tế (chi tiết sản xuất, giá trị, chính sách).

Tôi có thể có những gợi ý khác nhau cho các ban khác nhau không?+

Nếu bạn cần hành vi AI khác nhau cho các bộ phận khác nhau, hãy sử dụng nền tảng kiến thức để cung cấp thông tin riêng của bộ phận và đề cập đến bối cảnh của bộ tư pháp trong nhắc nhở.

Al

Lịch sử Al

Lịch sử AI cho thấy mọi cuộc trò chuyện mà AI có với khách hàng và các quản trị viên. sử dụng nó để kiểm tra hiệu suất của AI, tìm ra câu trả lời sai, và xác định khoảng cách đào tạo.

Lịch sử Al
Lịch sử AlMột bản ghi của AI biến đổi với các loại phù hiệu, câu hỏi và câu trả lời, thời gian đáp ứng và kết quả.Lịch sử AlMiền làm việcMỗi phiên bản AI, ghi âmTrò chuyệnMón ăn của tôi đâu?A: vận chuyển hôm nay, theo dõi UPS...0.9strả lờiNháp trả lời cho T-12345Nhận lại thư1.4sdraftedmandminHãy tổng kết vé phạt tuần này.12- Bản tóm tắt đã về.2.1sxongTrò chuyệnhủy kế hoạch của tôi đi.Đã giao cho người rồi0.7sescalated1EVERY TURNNhắc, trả lời, hành động2SEARCHABLE& Xuất bộ lọc3OWNER-ONLYKiểm tra toàn bộ lộ trình
Mỗi phiên bản AI (cout, vé, quảng cáo) đều ghi lại chính xác những gì đã được ghi chép, trả lời, thời gian và kết quả.

Những gì mỗi cuộc trò chuyện cho thấy

Ngày và Giờ

Khi cuộc nói chuyện diễn ra.

Tên khách hàng

Tên và email nếu được biết, nếu không IP và đất nước.

Kênh

Ô điều khiển trò chuyện, vé máy bay tự động, bản nháp email, hay admin Al.

Thông điệp

Cả cuộc hội thoại đều được ghi âm đầy đủ: tin nhắn và đáp ứng AI của khách hàng.

Dùng dấu gạch chân

Việc sử dụng điện thoại có thể cho thấy AI đang trả lời quá nhiều từ phong cách sai hoặc cuộc trò chuyện diễn ra theo vòng tròn.

Hành động đã thực hiện

Bất kỳ hành động AI thực hiện trong cuộc đối thoại (đã xem lại trật tự, tạo vé, v. v...)

Đánh giá

Nếu CSAT đã bật, đánh giá sự hài lòng của khách hàng cho cuộc nói chuyện này.

Tìm vấn đề

Tìm kiếm bằng từ khoá

Tìm kiếm các chủ đề cụ thể để xem cách AI xử lý chúng. Ví dụ: tìm kiếm « Bỏ qua » để kiểm tra xem AI có đang theo chính sách hoàn trả của bạn không.

Bộ lọc theo đánh giá

Chỉ cho thấy những cuộc trò chuyện được đánh giá thấp để tập trung vào những khách hàng không hài lòng.

Lọc theo kênh

Chỉ hiển thị các thẻ tự động trả lời để kiểm tra tự động phản ứng riêng biệt với chat.

Sắp xếp bằng cách sử dụng hiệu quả

Những cuộc trò chuyện nhiều sắc thái có thể chỉ ra những vấn đề: các AI nói lắp, đi vòng tròn, hoặc không trả lời câu hỏi.

Thói quen kiểm toán hàng tuần

1
Kiểm tra các cuộc đối thoại có độ cao thấp

Có gì sai không?

2
Kiểm tra các cuộc trò chuyện có độ sâu

Có thể là do sự nhầm lẫn, có phải Al tự lặp lại không?

3
Cập nhật khả năng tập tin

Để có những khoảng trống về kiến thức, hãy thêm các bài vào cơ sở tri thức: Đối với các vấn đề về hành vi, cập nhật các thông tin nhanh chóng.

Tìm ra lỗ hổng kiến thức

Tình huống:
Bạn tìm kiếm lịch sử Al cho « cài đặt » và tìm 15 Cuộc trò chuyện mà AI nói "Tôi không có chỉ thị cài đặt cụ thể cho sản phẩm này."
Làm sao bây giờ?

Điều này có nghĩa là trình nền kiến thức thiếu các hướng dẫn cài đặt. Tạo các bài tập cơ bản kiến thức cho mỗi bước cài đặt sản phẩm. Sau khi thêm chúng, kiểm tra bằng cách đặt câu hỏi cho máy tính xách tay.

Al

Hiểu rõ AI

Sách cẩm nang (I Insights) tự động phân tích các kiểu trò chuyện và các phát hiện có thể được thực hiện: câu hỏi thông thường, xu hướng hài lòng, thiếu kiến thức và kiểu tăng cường.

Hiểu rõ AI
Thông hiểu trí tuệ của trí tuệ (Lương tâm)Cơ quan Tình báo: một thông báo nhanh, thông minh, một công cụ ghi điểm/Lead / Analyse-a-ta-Pa-Phật, và a 14- Biểu đồ giao thông ngày.Hiểu rõ AIMiền làm việcHôm nay là BRIEFGiao thông tới nơi rồi. 12%; 3 Đầu mối nóng;2Thỏa thuận cần được tiếp tục.Cảnh báo thông minhLỗi kiểm tra bị đứtNhảy lên trên /pricingCó manh mối mới từ Mỹ.Thu hồi trước tuần trướcGhi điểm / Phân tích trangIP hay URL…Chạy14- Ngày giao thông.1Hôm nay là BRIEFAl viết tóm tắt buổi sáng2SMART ALERTSXâm nhập vào cơ thể3ON DEMANDGhi điểm ảnh mẫu · phân tích trang
Cơ quan tình báo thực sự: một bản tóm tắt, thông minh cho những điều dị thường, trên đường ghi điểm và phân tích trang, và 14- Giao thông hàng ngày.

Những gì thấu hiểu cho thấy

Câu hỏi đầu

Những câu hỏi thường được đặt ra nhất, nếu tôi đặt lại mật khẩu của mình như thế nào?1Cơ sở kiến thức của anh cần một hướng dẫn lập lại mật khẩu nổi tiếng.

Xu hướng thỏa mãn

CSAT Sự hài lòng của AI có cải thiện hay giảm xuống đột ngột? giọt có thể cho thấy sự thay đổi về kiến thức đã làm hư hại một cái gì đó.

Tỷ lệ phân giải

Có bao nhiêu phần trăm các cuộc nói chuyện mà không cần con người can thiệp? 70% Bên dưới thì tốt. 50% Có nghĩa là AI cần được huấn luyện nhiều hơn.

Lý do leo thang

Lý do thông thường: khách hàng yêu cầu con người, Al không thể trả lời, chủ đề nhạy cảm, vấn đề hóa đơn.

Khoảng cách tri thức

Những câu nói mà trí tuệ nhân viên thường nói "tôi không biết" hay đưa ra những câu trả lời thiếu tự tin.

Chiều dài cuộc trò chuyện trung bình

Có bao nhiêu tin nhắn mỗi cuộc trò chuyện.10+ tin nhắn) có thể chỉ ra AI không hiểu câu hỏi.

Dùng sự thông sáng để cải thiện

Tình huống:
AI Insights cho thấy rằng 23%"Customer hỏi về bảo hành" và AI không thể trả lời.
Làm sao bây giờ?

Đây là một khoảng cách hiểu biết rõ ràng.1) Hãy viết một bài bảo hành toàn diện trong cơ sở hiểu biết bao gồm tất cả các điều khoản bảo đảm, tiến trình đòi hỏi và loại bỏ.2) Cập nhật thông tin bảo mật cho AI (v. d.3) Theo dõi Al Insights vào tuần tới để xem bảo hiểm có giảm không.

Al

Sổ tay chơi trò chơi Admin Al

Quản trị AI (Hãy hỏi)OpsIQ) Hãy giúp đội của bạn quản lý OpsIQ Bạn có thể yêu cầu nó tìm kiếm dữ liệu, giải thích tính năng, tóm tắt vé và thực hiện các hành động nền tảng.

Quản trị Al
Sổ tay chơi trò chơi Admin AlCâu hỏi...OpsIQ Hộp lệnh với một thẻ hành động nền tảng được hỗ trợ Al hiển thị các tham số và xác nhận/cancel.Hỏi OpsIQMiền làm việcHỏi OpsIQNgưng dịch vụ vì tài khoản quá hạn 4821AlHành động đã đề nghị: Tạm dừng_ Dịch vụtài khoản: #4821 (Hết hạn $120)Nền tảng: WHMCS * Kiểm toán lại được.Xác nhậnThôi1ASK ANYTHINGLệnh thường Anh2PROPOSE FIRSTHành động được hiển thị trước khi nó chạy3YOU CONFIRMĐã & kiểm tra
Nói với quản lý AI điều bạn muốn bằng tiếng Anh đơn giản; đề xuất hành động chính xác (xem, sửa lại, kiểm toán) và chờ xác nhận của bạn.

Quản lý Quản trị Quản trị Nhân sự có thể làm gì

Tra dữ liệu lên

Hãy hỏi: "Hãy cho tôi xem tất cả các vé từ [email protected]"...hoặc "Tình trạng của trật tự #5523?"

Tóm tắt

Hãy hỏi: "Hãy phân tích cái cuối cùng 10 Vé" hay "Những vấn đề hỗ trợ hàng đầu tuần này là gì?"

Giải thích các tính năng

Hỏi: "Làm thế nào để tôi thiết lập tự động-pup" hay "Bản sao của thẻ phản hồi là gì?"

Thực hiện hành động

Hãy hỏi: "Hãy đặt vé đi [email protected] Về hóa đơn hoặc "Cover vé T-12345"

Tìm kiếm nền tảng

Hỏi: "Hôm qua chúng ta có bao nhiêu khách?" hay "Tiềm lợi nhuận của chúng ta trong tháng này là gì?"

Trò chuyện mẫu

Đang tìm một khách hàng

Tình huống:
Quản trị hỏi: "Tìm khách hàng [email protected] Và cho tôi thấy hoạt động gần đây của họ"
Làm sao bây giờ?

AI tìm kiếm khách hàng thông tin qua tất cả các nguồn dữ liệu kết nối: các phiên họp khách truy cập, vé, cuộc trò chuyện chat, mệnh lệnh và CRM Nó gửi lại bản tóm tắt hoạt động gần đây với liên kết tới mỗi mục.

Nhận được một tóm tắt mỗi ngày

Tình huống:
Quản trị hỏi: "Hôm nay có chuyện gì?"
Làm sao bây giờ?

"Hôm nay bạn đã có 245 du lịch (lên) 12%), 8Vé mới (3 Được giải quyết bởi Al,2Các đơn đặt hàng mới hoàn tất $198, và1"Nói chuyện leo thang về sự trì hoãn vận chuyển."

Thực hiện hành động

Tình huống:
Quản trị hỏi, "T-5523 Ưu tiên cấp bách"
Làm sao bây giờ?

Nhân viên điều hành xác nhận: "Tôi sẽ đổi vé T-5523 Ưu tiên từ chuẩn sang cấp cứu. Nó sẽ ảnh hưởng đến đồng hồ bấm giờ SLA. Xác nhận? Bạn xác nhận, và hành động đã được thực hiện.

💡
Quản trị AI chỉ thực hiện các hành động được đăng ký trong bộ đăng ký hành động. Nó không thể phát minh ra hành động hay hệ thống truy cập bên ngoài OpsIQ.
Al

Trường hợp người mua AI

Phần này bao gồm những kịch bản điện thoại khách hàng với các chỉ dẫn hành vi và huấn luyện.

Trình khách Al
Trường hợp người mua AIMột thư viện của khách hàng đặt câu hỏi cùng với hành vi AI mong đợi và một thẻ kết quả cho mỗi người.Trường hợp người mua AIMiền làm việcThư viện trường hợp · mong đợi ứng xử AI"Điều tôi muốn ở đâu?"Tìm kiếm lệnh qua kết nối, theo dõiGiải quyết"Tôi muốn hoàn tiền"Hãy thừa nhận, đừng bao giờ hứa với con người.Bỏ tay ra" dịch vụ đã giảm chưa?"Kiểm tra trạng thái hiện tạiTrạng thái"Hãy lập tài khoản của tôi"Xác nhận mục đích, sau đó đi đến một con ngườiXác nhận1SCENARIOSCâu hỏi chung2EXPECTEDAl nên trả lời thế nào3TIẾNGTìm khoảng trống luyện tập
Một thư viện của những câu hỏi khách hàng thực sự và chính xác làm thế nào AI nên xử lý mỗi, để kiểm tra đào tạo của bạn và tìm ra các khoảng trống.

Thư viện trường hợp

Tình trạng yêu cầu

Tình huống:
Khách hàng: " đặt hàng của tôi ở đâu?"12345?"
Làm sao bây giờ?

Mong đợi ứng xử AI: (1) Tìm kiếm lệnh thông qua bộ kết nối. (2) Báo cáo tình trạng hiện thời ( xử lý, chuyển đi, chuyển giao). (3) Bao gồm số theo dõi nếu có. (4) Nếu trật tự bị hoãn, hãy thừa nhận và cung cấp thời gian ước tính. (5) Đừng bao giờ phát minh ra thông tin theo dõi.

Yêu cầu đặt lại mật khẩu

Tình huống:
Khách hàng: "Tôi quên mật khẩu của tôi và không thể đăng nhập"
Làm sao bây giờ?

Mong đợi ứng xử AI: (1) Cung cấp các bước đặt lại mật khẩu từ cơ sở kiến thức. (2• Bao gồm đường dẫn đặt lại hoặc đường dẫn trang.3Hãy lưu ý là việc đặt lại email có thể mất vài phút.4) Đề nghị kiểm tra thư mục thư rác. (5) Nếu khách hàng vẫn chưa thể khởi động lại, hãy tăng lên thành người.

Yêu cầu tính năng

Tình huống:
Người tùy chỉnh: "Bạn có thể thêm chế độ tối vào ứng dụng di động không?"
Làm sao bây giờ?

Mong đợi ứng xử AI: (1) Cảm ơn họ vì lời đề nghị. (2) Hãy giải thích làm thế nào các yêu cầu về tính năng được xử lý (được ghi chép, xem xét và ưu tiên). (3) KHÔNG hứa rằng tính năng sẽ được xây dựng. (4) Nếu có một tính năng tương tự, hãy nói.

Tranh chấp về tính tiền

Tình huống:
Khách hàng: "Tôi đã được tính tiền nhưng dịch vụ của tôi không hoạt động"
Làm sao bây giờ?

Mong đợi ứng xử AI: (1Hãy thừa nhận sự thất vọng.2) Hãy kiểm tra tình trạng dịch vụ nếu có thể.3) Escalate đến bộ phận hóa đơn với tất cả các chi tiết. (4Đừng hứa trả lại tiền.5) Đặt vé lên cấp cao.

Hỏi ngoài lịch sử

Tình huống:
Khách hàng: "Hôm nay ở London thời tiết thế nào?"
Làm sao bây giờ?

Mong đợi ứng xử AI: (1"Tôi là trợ lý hỗ trợ của bạn và có thể giúp đỡ với các câu hỏi về sản phẩm và dịch vụ của chúng tôi.2Hãy hỏi xem họ có câu hỏi sản phẩm nào không.

Làm sao để kiểm tra hành vi AI của khách?+

Mở trang web của bạn trong trình duyệt cá nhân/ incignito và trò chuyện với AI như là một khách hàng. Hãy thử những câu hỏi thông thường, các trường hợp cạnh tranh và kịch bản đối kháng. Hãy kiểm tra xem AI theo các quy tắc nhắc và sử dụng nội dung cơ bản tri thức đúng.

Al

Cơ sở kiến thức Al

Cơ sở Kiến thức là thư viện của các bài mà AI dùng để trả lời các câu hỏi. khi khách hàng hỏi điều gì đó, AI tìm kiếm các thông tin cơ bản cho các bài báo có liên quan và sử dụng chúng để tạo ra một phản hồi chính xác, dựa trên nền tảng.

Cơ sở tri thức
Cơ sở tri thứcNguồn tin được cung cấp vào kho kiến thức, rồi AI tạo ra câu trả lời dựa trên nền tảng, được viện dẫn.Cơ sở tri thứcMiền làm việcNguồnLinh tinh WebsiteGiúp bàiCâu hỏi thường gặpCác bác sĩ đã nhậpHiểu biếtTừ khoá + ngữ nghĩaAlCâu trả lời bị cấmvới một nguồn gốc được viện dẫn."Những người được thỏa mãn lấy đi 3–5"Ngày làm việc."1INGESTBò, FAQ, nhập2RETRIEVECông cụ & xoá3GROUNDEDCâu trả lời từ nội dung của bạn
Hãy thu thập các trang web và nhập khẩu các bác sĩ vào cơ sở kiến thức; AI lấy được những mảnh và câu trả lời đúng, dựa trên nền tảng và được dẫn chứng.

Nó hoạt động thế nào?

1
Khách hàng đặt câu hỏi

"Chính sách trả lại của bạn là gì?"

2
Al tìm kiếm cơ sở kiến thức

OpsIQ Tìm thấy bài báo chính sách trở lại bằng cách khớp các từ khóa và nghĩa ngữ.

3
AI tạo ra phản ứng

AI đọc bài báo và viết một câu trả lời tự nhiên dựa trên nội dung bài báo.

4
Khách hàng nhận được câu trả lời chính xác

Câu trả lời được dựa trên chính sách thực tế của bạn, không phải dữ liệu huấn luyện chung của AI.

Tạo ra những bài viết hay

Mỗi bài một chủ đề

Viết bài riêng cho mỗi chủ đề: chính sách trả về, tỷ lệ vận chuyển, thiết lập tài khoản, đặt lại mật khẩu. Đừng kết hợp chủ đề không liên quan.

Viết như một FAQ

Hãy bắt đầu với câu hỏi mà khách hàng đặt ra, rồi trả lời, điều này giúp AI giải đáp các câu hỏi cho bài viết.

Hãy nói rõ

"Hãy trở về, phải bắt đầu từ bên trong 30 ngày giao hàng tốt hơn là "Chúng ta có chính sách trả lại".

Bao gồm các trường hợp cạnh

Thế còn lợi nhuận quốc tế? thế còn các sản phẩm kỹ thuật số thì sao?

Giữ nó hoạt động

Xem lại các bài báo hàng quý. Xóa các thông tin lỗi thời. Cập nhật giá trị, chính sách và thủ tục khi chúng thay đổi.

Bạn nên viết những bài báo gây ra bởi người khởi động

Chuyển hàng và vận chuyển

Chi phí vận chuyển, giờ giao hàng, theo dõi, vận chuyển quốc tế và xử lý sự chậm trễ.

Trả lại và hoàn tiền

Cửa sổ, điều kiện, quá trình, thời gian hoàn trả và ngoại lệ.

Quản lý tài khoản

Đặt lại mật khẩu, thay đổi thư, xoá tài khoản và xuất khẩu dữ liệu.

Đi và tính tiền

Mô tả kế hoạch, hóa đơn, phương pháp thanh toán, hóa kê và tiền tệ.

Hướng dẫn sản phẩm

Cách sử dụng mỗi sản phẩm hay tính năng, từng bước một chỉ dẫn bằng ảnh chụp màn hình.

Sửa lỗi

Vấn đề và giải pháp chung. Thông điệp lỗi và sự sửa chữa của chúng.

Thông tin liên lạc

Giờ làm việc, kênh hỗ trợ, thời gian đáp ứng và đường đi leo thang.

Hành pháp và tuân theo

Tóm tắt chính sách cá nhân, các điều khoản tổng kết dịch vụ, GDPR yêu cầu dữ liệu.

Kiến thức kết nối

Mỗi kết nối có thể đóng góp kiến thức vào AI. Khi một kết nối được bật, những bài kiến thức đã xây dựng (danh mục sản phẩm, câu hỏi phổ biến, trình đơn vấn đề riêng) sẽ tự động được dùng cho AI. Bạn có thể bật/ tắt kiến thức kết nối trên/ tắt trong thiết lập kết nối.

Ngân sách

Cơ sở kiến thức có trần có thể cấu hình được (mặc định: 32,000 để điều khiển bao nhiêu ngữ cảnh tri thức được gửi tới AI trên mỗi cuộc đối thoại. Nếu kiến thức của bạn là rất lớn, AI chọn những bài viết có liên quan nhất trong ngân sách này. Tăng trần nhà nếu AI không tìm các bài liên quan; giảm nó nếu bạn muốn giảm chi phí bảo hiểm.

Tôi nên có bao nhiêu bài báo?+

Bắt đầu với5-10 Thêm vào đó bạn xác định được khoảng trống thông qua AI History và Al Insights. 20-50 những bài báo cho việc giám sát toàn diện.

Tôi có thể nhập các bài từ hệ thống khác không?+

Hiện tại, các bài được tạo bằng tay OpsIQ Bạn có thể sao chép nội dung từ FAQs, trung tâm trợ giúp hoặc tài liệu đã có.

Các bài báo nên có dạng nào?+

Văn bản bình thường hoạt động tốt nhất, AI hiểu ngôn ngữ tự nhiên hơn là cấu trúc HTML Hãy viết như bạn sẽ giải thích cho một khách hàng.

Al

Bản đánh giá AI và Tháp Canh

Bộ đánh giá biến những câu hỏi của khách hàng quan trọng thành những bài kiểm tra có thể lặp lại để biết chất lượng, lời trích dẫn, sự tăng cường và an toàn hành động.

Màn hình sản xuất
Đánh giáViệc đánh giá các trường hợp thử nghiệm vàng, cần có cách ứng xử, kết quả mới nhất và việc chạy Tháp Canh theo lịch trình.Đánh giáMiền làm việcSETS6CASES84PASS RATE96%QUAN ĐIỂM CÔNG VIỆC SỐNGChính sách vận chuyểnCần thiết độ xoayQuaYêu cầu từ chốiCần thiết xác nhận của con ngườiQuaYêu cầu không được hỗ trợHành động bị cấmQuaCâu hỏi di chuyểnMong đợi mã nguồn bị thiếuThất bại1CREATE CASESVà quy tắc vàng2RUN SAFELYChạy khô hoặc đánh giá trực tiếp3WATCHLịch trình hàng ngày hoặc hàng tuần
Việc đánh giá các trường hợp thử nghiệm vàng, cần có cách ứng xử, kết quả mới nhất và việc chạy Tháp Canh theo lịch trình.

Toàn bộ nhà quản trị có thể tạo bộ đánh giá bằng một nhãn hiệu nguồn mong đợi, yêu cầu xác nhận, các quy tắc xác nhận con người, mong đợi tăng cường và hành động bị cấm. Chạy một thiết lập trực tiếp, chạy lại nó, hoặc lặp lại lịch sử đã chọn.

Tháp Canh Lịch trình hoặc tuần kiểm tra qua bảng phân công và chạy một số trường hợp có hạn (lên đến tám phiên bản trên mỗi giấy thông hành). Xem lại lỗi khi đi kèm với nhà cung cấp/ mẫu, tức phiên bản nhanh, phiên bản tri thức, các hành động đã đề nghị và chi phí trước khi thay đổi cách sản xuất.

Al

Ngôn ngữ và dịch thuật

Ngôn ngữ quản lý văn bản được dịch ra cho khách hàng và ứng dụng được dùng khi OpsIQ theo ngôn ngữ của khách hàng.

Màn hình sản xuất
Ngôn ngữTrang ngôn ngữ hiển thị ngôn ngữ gốc, ngôn ngữ dịch, trạng thái nhập/sống và ứng xử khách hàng-lăngage.Ngôn ngữMiền làm việcMỘTTiếng AnhLANGUAGES4Sống3QUAN ĐIỂM CÔNG VIỆC SỐNGPhápNameGiao diện và nội dungSốngĐứcNameGiao diện và nội dungSốngTây Ban NhaTrình dịch nhápNhápTheo khách hàngĐáp ứng trong ngôn ngữ đã phát hiệnVào1SET SOURCENguyên ngữ ngôn ngữ điều khiển2ADD LANGUAGEDịch trong nền3PUBLISHKhúc xạ hay là sống sót
Trang ngôn ngữ hiển thị ngôn ngữ gốc, ngôn ngữ dịch, trạng thái nhập/sống và ứng xử khách hàng-lăngage.

OpsIQ Dịch sang tiếng Việt của nhóm Việt hóa KDE.

Không được dựa vào bản dịch máy để phục hồi, trả lại tiền, bảo mật hay văn bản an toàn mà không cần xem xét lại.

Mỗi nơi giữ từ ngữ của bạn được liệt kê với số điện thoại của nó: tin nhắn trò chuyện, quảng cáo, tin nhắn chủ động, luồng chat, hướng dẫn du lịch, thông báo, bong bóng và Các cuộc khảo sát và hình thứcbề mặt khảo sát bao gồm mỗi cuộc khảo sát được xuất bản một cách hoàn toàn: tiêu đề, mọi câu hỏi, mỗi tùy chọn trả lời, nút, chào mừng và cảm ơn, trang chrom và trang kết quả. Phím được gắn vào mã số câu hỏi và giá trị tùy chọn, vì vậy hãy sắp xếp lại các câu hỏi hoặc tùy chọn không bao giờ mất bản dịch, và gửi lại một thông điệp mà chỉ thư gửi đi. Do not translate the keyword between brackets (e. g. ServerName, ServerAdmin, etc.)

Cuộc khảo sát email sau khi kết thúc theo ngôn ngữ mà khách truy cập thực sự đã trò chuyện, miễn là ngôn ngữ là thứ bạn cung cấp ở đây; nếu không nó sử dụng ngôn ngữ hệ thống của bạn. sáu trường có thể sửa đổi được dịch ra trang này, và hành vi đó cũng có công tắc riêng trong thiết lập trò chuyện khách hàng.

Thông điệp vé và cổng bao gồm các nhà quản lý văn bản cố định gõ một lần và mỗi khách hàng nhận được trong ngôn ngữ đó: vé công nhận, mở, đóng và phản hồi xác nhận, mỗi phần ký hiệu và dòng mở cổng chào mừng (The AlI tự động-ped needs of this, it has answered in the seconds). Gửi thư điện tử cho khách hàng bằng ngôn ngữ của họ đã bật OpsIQ Viết thư, vé điện tử giải quyết ngôn ngữ của người nhận theo thứ tự này: ngôn ngữ họ chọn trong cổng hay Trung tâm Trợ giúp (được gắn lên vé), địa phương trên danh sách liên lạc, rồi ngôn ngữ mà họ viết ra, phát hiện ở địa phương bằng các từ chữ viết và dấu hiệu, không có cuộc gọi bên ngoài. Chỉ có những ngôn ngữ được chọn trên trang ngôn ngữ đã từng được dùng, vì thế tính năng này bị gián đoạn cho đến khi thêm vào ngôn ngữ. HTML Gói thư điện tử không được dịch một cách cố ý: nó là đánh dấu, chứ không phải thông báo. Thư điện tử có nhân viên làm việc (cho thấy sự chú ý, thông báo của sở, tóm tắt, báo cáo lịch trình, tiêu hóa hàng tuần) luôn luôn sử dụng ngôn ngữ hệ thống.

PeopleOS HR

MOS: Hệ điều hành lao động được điều hành

Chạy vòng đời nhân viên từ quyền lực đến việc tự vận động, dòng công việc được chứng minh, đánh máy sự kết hợp và kiểm soát con người trên những quyết định nhạy cảm.

Sơ đồ hệ thống tương tác
Trung tâm điều khiển vòng đời của người dânMột bảng điều khiển 3 chiều liên kết tuyển dụng nhân viên, lương, học tập và quản lý AI.Trung tâm lệnh call của chỉnh sửa cơ sở dữ liệu của hứng thúSỰ SỐNGCON NGƯỜI248Mở cửa ROLES12Khúc TRỞ THÀNH15 / 15KINH NGHIỆMChọnThuêLớn lênPhần thưởngChuyển đổiMỘT BÀIChứng minh nhân dạng và bằng chứng việc làmCON NGƯỜI KÝKháng cự, sửa chữa, tiếp quảnChứng minh điKết quả và đưa ra bằng chứng
Người dân ở đây giữ lại vòng đời, kiểm soát và bằng chứng trên một ghi chép được điều khiển.

Quản trị

Chạy

Quản lý mọi người, tổ chức, tuyển dụng, tuyển mộ, tài liệu, việc rời đi, sự hòa giải lương, lợi ích, thành tích, học tập, quan hệ nhân viên, phân tích và quản trị.

Nhân viên và quản lý

Tự phục vụ

Sử dụng cổng đầu tiên cho hồ sơ cá nhân, yêu cầu, tài liệu, lên tàu, thời gian, trả lời, học hỏi, thông tin công ty và quyền lợi.

Nhà phát triển

Mở rộng

Dùng cái này hr.* hành động và đánh giá platform.hr.* thao tác thông qua một hợp đồng, cộng với lớp kết nối đã gõ. Các chỉ số tạo ra trong nhân dânOSAPIPhần nào cũng liệt kê từng cái với phạm vi riêng.

⚠️
Người dân không phải là một sổ cái, cố vấn pháp lý, bộ quản lý nền hay nhà cung cấp căn cước. Hệ thống bên ngoài được xác nhận giữ những trách nhiệm đó. Một kiểm tra kỹ thuật màu xanh lá cây không bao giờ tạo ra bằng chứng hợp pháp hoặc cung cấp chứng cớ.

Làm nhân sự quan trọng

Nhân viên nhân sự được tham gia vào kế hoạch của tầu Enterprise. Tài khoản→Thêm ký tựCác dây buộc khác nhau về số lượng người và số lượng tuyển dụng, phỏng vấn và hoạt động AI họ mang theo. trang phụNhững gì mô-đun làm, bề mặt bằng bề mặt, là trên Comment.

Ai có thể thêm vào chứ?

Một kế hoạch được trả công đã được thực hiện. và một kế hoạch thanh toán vẫn còn bên trong dự án của nó phải chờ cho đến khi phiên tòa kết thúc.

Thử nghiệm miễn phí

Phiên tòa được tiến hành trên bộ điều khiển bạn chọn. khi nó kết thúc mà không có mua quyền lợi được gỡ bỏ và không có gì bị buộc tội. không có điều gì bị xóa: các hồ sơ đã có lại ở đó ngay khi thêm vào.

Khi không thuộc về mình

MỘT liên kết trực tiếp đến trang quan chức cao cấp cung cấp các phụ lục thay vì trang.

Để nâng cao độ lên

Khi tới giới hạn nhất định, trang này sẽ cung cấp bộ điều chỉnh tiếp theo. Việc sửa hay gỡ bỏ những gì đã có chưa bao giờ bị chặn.

Comment

Quyền lợi đi lại trong giấy phép.OpsIQTài khoản và cài đặt sẽ nhặt nó ở lần kiểm tra giấy phép tiếp theo.

Thiết lập tuần đầu

Mọi thứ bên dưới là một màn hình thật; không có gì ở đây cần một nhà phát triển.

1
Bật môđun

Mở CAOS→Nhà nhân sựBảng cờ bắt đầu với công tắc chính, PeopleOS HR: không thể lấy trang quan chức năng hay bề mặt nhân viên. Bật công tắc là xác nhận hai nhấn chuột; tắt một là nhấn vào. Các phiên bản AI bên dưới (sự trợ giúp, duyệt ứng dụng, phỏng vấn tự động, tự động cung cấp, xác định danh tính) ở lại cho đến khi bạn quyết định.

2
Hãy để cho các đồng tác viên thiết lập làm cấu hình

Mở CAOS→Thiết lập đồng điều khiển và nói những gì bạn muốn trong ngôn ngữ bình thường: một chính sách nghỉ phép với ngày tháng và thông báo, các ngày lễ công cộng cho một quốc gia, một loại trường hợp của nó SLA Bạn có được kế hoạch với những gì nó hiểu và giả định. không gì chạy được cho đến khi bạn xác nhận; một bước đi rủi ro trung bình cần người thứ hai; mỗi lần chạy đều để lại biên nhận.

3
Tên cổng nhân viên

Mở CAOS→Tiền tuyến→Thiết kế nhập khẩuTrên một chiếc máy tự lắp đặt cánh cổng sống ở /hr/<address>; Địa chỉ cổng Thay đổi tên nó ngay lập tức và các liên kết đăng nhập cũ tiếp tục hoạt động bởi vì địa chỉ cũ về phía trước. trên đám mây cánh cổng là /hr trên máy tính không gian làm việc của bạn và không cần địa chỉ.

4
Công bố trang web nghề nghiệp của bạn

Mở CAOS→ChọnMỗi bài đăng từ một văn phòng được phê duyệt xuất hiện trên trang web sự nghiệp công cộng; đường link Mở trang web công cộng Ở trên đỉnh của việc tuyển chọn cho thấy chính xác những gì một ứng viên nhìn thấy.

5
Đăng ký một kiosk cho các thiết bị chia sẻ

Mở CAOS→Tiền tuyến→Kiosks và chọn Đăng ký một kiosk. hiệu bài thiết bị được hiển thị một lần; mở trang kiosk trên bảng hay PC (nó là /kiosk Mọi người sẽ đồng hồ với email và PIN, hoặc với mã số ngắn nhất từ cổng ra vào của họ.

6
Quyết định những gì nhân viên có thể làm cho chính họ

Mở Thiết lập→Quan hệ quan trọngMỗi người có quyền tự phục vụ (các yêu cầu, giấy tờ, các tài liệu, các giải thích và vân vân) được đặt cho mỗi nhân viên, quản lý, hoặc một nhóm và các đội dưới nó.

7
Thêm người và cho họ truy cập

Vào CAOS→Người tạo ra người, công việc và người quản lý của họ. truy cập cửa đón khách chỉ khi người đó có một email hợp lệ và một mối quan hệ công việc đã định; lời mời đi từ cùng màn hình và trên tàu bắt đầu từ cuộc hành trình bạn thiết lập.

Xe đạp cứu sinh

Lập kế hoạch và tuyển dụng

Tạo ra những người được phê chuẩn, công việc xuất bản, nhận ứng dụng thông qua các lưỡi câu mạng bảo mật tái thiết lập, đánh giá cấu trúc, phỏng vấn thời gian biểu, quyết định thu âm, đề nghị và thuê.

Gia nhập và cung cấp

Xây dựng các chuyến đi bằng chứng, thu thập phiên bản tài liệu chính xác, thiết bị yêu cầu, cấp giấy phép truy cập và truy cập cổng không chỗ ngồi.

Làm việc và phát triển

Nghỉ phép, thời gian biểu, giải thích lương, lợi ích, chi phí, mục tiêu, phản hồi, bài phê bình, học tập, kỹ năng, cơ hội nội bộ, kế vị và phân tích.

Hỗ trợ và bảo vệ

Cung cấp hỗ trợ nhân sự tư nhân, các vụ kiện nhân viên có thẩm quyền, các cơ sở pháp lý, yêu cầu dữ liệu, sửa chữa, giải thích, kháng cáo và độc lập xét duyệt.

Thay đổi và bỏ đi

Sử dụng những thay đổi công việc có hiệu quả, truy cập thu hồi, thiết bị phục hồi, sự hòa giải các nhà cung cấp bên ngoài, áp dụng tính bảo tồn và bảo tồn bằng chứng cần thiết.

Truy cập và nhận diện

Một người chính điển sở hữu hồ sơ công việc và kiểm tra các khía cạnh nhận diện bên ngoài. Thư điện tử là dữ liệu liên lạc có thể thay đổi, không bao giờ là chìa khóa nhận dạng vĩnh viễn. Đọc cổng được tự giám sát; quản lý và xem quản trị đòi hỏi quyền hạn rõ ràng.APIPhạm vi của các lớp trên cùng của quyền cho phép lộ trình và không bao giờ vượt qua chúng.

Thêm một công nhân mới

Tình huống:
Tạo ra người đó, chỉ định công việc và quản lý, tiếp cận cổng cung cấp, sau đó mở đường lên tàu.
Làm sao bây giờ?

Dùng khả năng sấy khô và nhận diệnAPIXác nhận người đó có thư điện tử hợp lệ và mối quan hệ công việc đã định trước khi gửi quyền truy cập.

Giải quyết một nhân dạng giả

Tình huống:
Hai hệ thống bên ngoài nhận diện cùng một công nhân khác nhau.
Làm sao bây giờ?

Liên kết cả hai khía cạnh đã được kiểm tra với người chính điển và giải quyết rõ ràng xung đột. Đừng nhập các hồ sơ chỉ vì hai giá trị thư điện tử có thể biến đổi trùng khớp.

PeopleOS HR

Dòng chảy lao động và cổng lao động

Mỗi khu vực chính của Nhân viên được vận hành như thế nào và những gì nhân viên thấy sau khi đăng ký.

Người và tổ chức

Duy trì người có thẩm quyền, công việc, nhân viên, quản lý, nhóm, địa điểm, kỹ năng, tài liệu và cấu trúc tổ chức hiệu quả.

Chọn và đề nghị

Từ giấy phép được cấp phép đến việc đăng tải, nộp đơn, xây dựng bằng chứng, phỏng vấn, quyết định, đề nghị và thuê với các lộ trình phù hợp và kháng án.

Đang trên bảng và tài liệu

Gán các bước cụ thể cho người sở hữu; thu thập, duyệt, ký, hết hạn, giữ và xoá tài liệu với phiên bản và các bằng chứng truy cập.

Thời gian, hãy rời khỏi đây và lên kế hoạch

Định nghĩa các loại lá có chính sách, cân bằng, yêu cầu, sự chấp thuận, ngày lễ, sự kiện lịch và sự hòa giải.

Trả tiền, trợ cấp và chi phí

Giải thích chi phí, các sự kiện nhân viên được chấp thuận để trả lương, ngoại lệ hòa giải, quản lý lợi ích cao quý và tiền bồi thường chi tiêu.

Hiệu suất và tăng trưởng

Mục tiêu hoạt động, kiểm tra, phản hồi, đánh giá, cân nhắc, học tập, kỹ năng, cố vấn, cơ hội nội bộ và kế toán.

Dịch vụ nhân sự và quan hệ

Hỗ trợ nhân viên trong khi giữ sự bất bình, kỷ luật, người tố giác và chứng cứ niêm phong trong giới hạn cho phép.

Phân tích và lên kế hoạch

Sử dụng các biện pháp lao động, kế hoạch đếm đầu, điểm chuẩn và số đo kinh nghiệm bắt nguồn từ hồ sơ; không bao giờ suy ra kết quả thiếu là thành công.

Bản đồ cổng nhân sự

Khám phá

Cần sự chú ý của bạn, thay đổi kể từ lần viếng thăm trước, yêu cầu mở, các sự kiện sắp tới, lên tàu và thông báo.

Hồ sơ và hồ sơ

Nhân viên, hồ sơ đã được kiểm tra, tài liệu, giấy phép, yêu cầu riêng tư và sửa chữa.

Hỗ trợ và làm việc nhân sự

Cuộc nói chuyện riêng, yêu cầu, hành động cần nhân viên và công ty làm riêng.

Những ngày đầu tiên của em.

Bằng chứng được hỗ trợ trên tàu với chủ nhân, tình trạng thích hợp, hoàn thành và bị chặn.

Thời gian và sự ra đi

Thăng bằng, yêu cầu để lại, sẵn có, thời gian biểu và hậu quả lịch trình.

Kĩ năng và sự phát triển

Học hỏi, kỹ năng bằng chứng, mục tiêu, phản hồi, cố vấn và cơ hội nội bộ.

Tôi trả tiền, giải thích

Tiền bồi thường bình thường và thông tin hòa giải lương mà nhân viên được phép xem.

Công ti

Các thư mục và biểu đồ tổ chức chỉ giới hạn trong các đồng nghiệp thông tin đã chọn hoặc chính sách cho phép họ chia sẻ.

Quyền lợi và quyết định

Các giải thích, kháng cáo, đồng ý, sửa chữa, truy cập và xóa bỏ yêu cầu.

💡
Cánh cổng này là di động- thứ nhất. Thẻ tài khoản vẫn có thể tiếp tục, định vị và nội dung cuộn độc lập trên màn hình rộng, và các đồ thị di động bao phủ thay vì đẩy hoặc che trang. Bản sao dài là thuộc về thành phần có thể truy cập hoặc tiết lộ.

Chuỗi hoạt động an toàn

1
Cấu hình chính sách và quyền hạn

Đặt thẩm quyền, vai trò, đường đi được chấp thuận, sự chú ý, sự đồng ý và tính năng điều khiển trước khi tải hồ sơ trực tiếp.

2
Kết nối các nhà cung cấp bên ngoài

Cài đặt gói hợp lệ đã ký, hãy nhập vào các giấy ủy nhiệm ít tốn kém nhất và thông qua kết nối và kiểm tra sự phù hợp.

3
Chạy trong hộp cát hay bóng

Tập luyện toàn bộ công việc với dữ liệu xác định và so sánh bằng chứng trước khi cho phép thực hiện sự kiện có thật.

4
Name

Một người phê bình có thẩm quyền khác xem xét nhà cung cấp, an ninh, riêng tư, pháp lý, công bằng và có thể truy cập.

PeopleOS HR

AI, công bằng, video và kiểm soát hợp pháp

MỘT quan điểm của Nhân Chứng Giê - hô - va về việc tự động hóa là một phương tiện điều khiển: chính sách cho phép, cố gắng thực hiện, cung cấp kết quả và bằng chứng là những sự kiện riêng biệt.

Al và đặc vụ điều khiển

Mỗi đặc vụ sử dụng các công cụ đánh máy đã đăng ký với một mục đích, thẩm quyền, mức độ rủi ro và sự tự chủ tối đa. người tiếp quản, phá mạch, sự cố và quyền hạn thay đổi dừng thực hiện. sửa chữa có thể tạo ra một bộ dữ liệu được đề nghị nhưng không huấn luyện gì cho đến khi một người có thẩm quyền hoàn thành việc kiểm tra riêng tư.

Công bằng

Xác định đội quân, quy tắc mẫu nhỏ tối thiểu, số đo, đánh giá nhân dạng và đánh giá phát hành hợp pháp.

Các giải thích và kháng cáo

Hãy giải thích từ quyết định và bằng chứng chính sách, gửi lời kêu gọi đến một người độc lập và bảo tồn bằng chứng kết quả.

Các thẩm quyền

Chính sách giải phóng quốc gia chỉ được đưa ra với một người có tên là chủ pháp lý, viện dẫn nguồn tài nguyên pháp lý và các xét nghiệm thông qua.

(ĐÀN)

Duy trì hệ thống kiểm kê, lớp rủi ro, đánh giá ảnh hưởng cơ bản, thông báo, giám thị, thay đổi và bằng chứng.

Giới hạn quét ảnh động

Sự cung cấp không phải là tham gia

hr.interview.room.provision tạo một vị trí gặp gỡ. hr.interview.room.connect có thể chứng minh truyền thông đã đến tay nhân viên.

Đồng ý đặc trưng cho mục đích

Ghi âm, chuyển đổi và sinh trắc học là những lựa chọn riêng biệt. rút lui áp dụng cho mục đích đã chọn.

Không phân tích hình thể

Hợp đồng video không có lĩnh vực hoặc phương pháp để tạo cảm xúc, sự chú ý, hấp dẫn, chủng tộc, khuyết tật hay vẻ bề ngoài.

Đường dẫn chữ và con người

Người xem có thể tiếp quản phiên họp một cách vĩnh viễn, và vẫn còn sẵn sàng cho một đường dẫn thích hợp dựa trên văn bản.

Nhớ và xoá

Các báo cáo kết nối đã mã hóa phương tiện vận chuyển, chính sách hiệu chỉnh lại và tham khảo phương tiện cung cấp nhà cung cấp, và phải hỗ trợ việc xoá có thể kiểm tra.

Phòng được tạo ra, Al vắng mặt

Tình huống:
Một phòng phóng đại.URLtồn tại, nhưng cầu truyền thông không giao âm thanh/video cho nhân viên phỏng vấn.
Làm sao bây giờ?

Hãy cho thấy cuộc họp như sự cung cấp và việc tham gia AI là sai. Hãy để sẵn sàng các đường dẫn cấu hình văn bản của con người.

Gọi lại báo là đã có séc

Tình huống:
Một báo cáo kiểm tra lai đã được ký kết hoàn tất.
Làm sao bây giờ?

Ghi âm cuộc gọi là gợi ý, rồi truy vấn nhà cung cấp. Chỉ có đáp ứng trạng thái xác thực mới cập nhật được kiểm tra.

🚫
Một đánh giá kỹ thuật có thể được ghi nhận bởi sự đánh giá của nó, nhưng việc WCAG xác nhận đòi hỏi một người khác nhau.
PeopleOS HR

CAOSAPIvà phát triển kết nối

Dùng đại tướngAPICho hoạt động nhân sự và các hợp đồng kết nối cho hệ thống bên ngoài có thẩm quyền.

ChungAPINguồn của sự thật

GởiJSONphải POST /api/v1.phpKhám phá bề mặt đang chạy qua meta.actions, OpenAPI tại /api/v1/openapi.phpvà người đưa thư ở /api/v1/postman.php.. tạo ra chỉ mục bên dưới mang số chính xác của việc giữ lại hr.* hành động và xem lại platform.hr.* hoạt động trong tòa nhà này, nên không có gì trên trang này được đánh bằng tay.

Liệt kê người
curl -sS https://your-opsiq.example/api/v1.php \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"action":"hr.people.list","page":1,"per_page":50}'
sấy khô chạy một ghi
curl -sS https://your-opsiq.example/api/v1.php \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"action":"hr.people.create","display_name":"Ada Reaudit","primary_email":"[email protected]","worker_type":"employee","idempotency_key":"hire-2026-0042","dry_run":true}'

Dùng hr.read hay hr.write Chỉ cần thiết. Đường dẫn quản trị đích vẫn còn kiểm tra quyền riêng của nó. Ghi yêu cầu một khóa số vô hạn ổn định; viết có rủi ro cao cần xác nhận. Hãy thử lại lỗi tạm thời với cùng một phím và yêu cầu phục hồi chính xác sau khi không chắc chắn thời hạn.

Mọi hành động.

48 curated hr.* actions (22 reads, 26 writes) and 484 reviewed platform.hr.* operations, out of 2420 named actions in this build. Generated from the action registry, the same source as meta.actions, OpenAPI and Postman.

Con người, tổ chức và nhân dạng (9)

hr.employee.provision

Write. Scope: hr.write. Provision seatless employee access and send the invitation. Required: person_uuid.

hr.employee.restore

Write. Scope: hr.write. Lift an employee access suspension (written reason required) and provision again. Required: person_uuid, reason.

hr.identity.facets

Read. Scope: hr.read. List a person's identity facets and open conflicts. Required: person_uuid.

hr.identity.link

Write. Scope: hr.write. Link an identity facet to a person. Required: person_uuid, facet_type, facet_key.

hr.org.tree

Read. Scope: hr.read. Read the organisation tree.

hr.people.create

Write. Scope: hr.write. Create an HR person. Required: display_name.

hr.people.get

Read. Scope: hr.read. Get one HR person. Required: person_uuid.

hr.people.list

Read. Scope: hr.read. List HR people.

hr.people.update

Write. Scope: hr.write. Update an HR person. Required: person_uuid, display_name, primary_email.

Cần thiết và đăng tải (3)

hr.postings.list

Read. Scope: hr.read. List job postings.

hr.requisitions.create

Write. Scope: hr.write. Create a requisition. Required: title, openings, justification.

hr.requisitions.list

Read. Scope: hr.read. List requisitions.

Rời khỏi đây, học tập và thị trường kết nối (3)

hr.learning.overview

Read. Scope: hr.read. Read courses, paths and enrolments.

hr.leave.overview

Read. Scope: hr.read. Read leave types and requests.

hr.marketplace.overview

Read. Scope: hr.read. Read HR connector accounts, conflicts and deliveries.

Chứng nhận kết nối và sức khỏe (2)

hr.connectors.certify

Write. Scope: hr.write. Certify an HR connector (scope sandbox|production; production demands provider-side proof under dual control). Required: connector_class, connector_key, scope, evidence, submitted_by.

hr.connectors.health

Read. Scope: hr.read. One connector account's health: certification level and scope, last reconciliation verdict, failures and webhook backlog. Required: account_uuid.

Phòng phỏng vấn (7)

hr.booking.slots_reconcile

Write. Scope: hr.write. Release booking slots whose claim never became a booked meeting.

hr.interview.room.connect

Write. Scope: hr.write. Connect the AI to interview media; refuses unless media really reaches the worker. Required: media_uuid.

hr.interview.room.consent

Write. Scope: hr.write. Record or withdraw consent for ONE interview purpose (recording, biometric_liveness, transcription). Required: media_uuid, purpose, state.

hr.interview.room.pause

Write. Scope: hr.write. Pause a live interview. Required: media_uuid.

hr.interview.room.provision

Write. Scope: hr.write. Provision an interview room (a place to meet — NOT AI participation). Required: session_uuid, transport, accommodation_route.

hr.interview.room.state

Read. Scope: hr.read. Read an interview room, including whether the AI is actually participating. Required: media_uuid.

hr.interview.room.takeover

Write. Scope: hr.write. A human takes the interview; the AI cannot speak in it again. Required: media_uuid, reason.

Đặc vụ và đường vòng cứu hộ (7)

hr.agent.incident.close

Write. Scope: hr.write. Close an agent incident — the same act that lifts the suspension it caused. Required: incident_uuid, resolution.

hr.agent.step

Write. Scope: hr.write. Run one agent step: gate verdict, execution and outcome reported separately. Required: run_uuid, agent_key, tool_key, jurisdiction, purpose.

hr.agent.step.status

Read. Scope: hr.read. What actually happened at a step (permitted, executed, proven, failed, compensated). Required: run_uuid, seq.

hr.agent.takeover

Write. Scope: hr.write. A human takes an agent run; no further agent steps are accepted. Required: run_uuid.

hr.agent.tool.grant

Write. Scope: hr.write. Grant an agent a tool for one jurisdiction and purpose, up to a risk ceiling. Required: agent_key, tool_key, jurisdiction, max_risk, purpose.

hr.agent.tools

Read. Scope: hr.read. List the registered typed tools an agent may use, and open agent incidents.

hr.lifecycle.lanes

Read. Scope: hr.read. Every lifecycle lane with its mode, KPIs and whether a live tool path really exists behind it.

Thẩm quyền (5)

hr.jurisdiction.capabilities

Read. Scope: hr.read. What this product may do in one country, per feature, with the law behind each answer. Required: code.

hr.jurisdiction.change.raise

Write. Scope: hr.write. Report a change in the law; a high or critical one suspends every lane in that jurisdiction at once. Required: pack_key, summary, severity.

hr.jurisdiction.coverage

Read. Scope: hr.read. Computed coverage for every market: released pack, named counsel owner, cited sources, passing tests.

hr.jurisdiction.explain

Read. Scope: hr.read. Why an action about one person is allowed, reduced or blocked, with the rule and citation. Required: person_uuid, feature.

hr.jurisdiction.pack.release

Write. Scope: hr.write. Put a drafted policy pack into effect; refused without a named counsel owner and a cited law. Required: release_uuid.

Quyết định và kháng cáo (2)

hr.decisions.appeals

Write. Scope: hr.write. File an appeal against an AI decision on a person's behalf; it must be heard by an independent human. Required: decision_uuid, subject_type, subject_id, grounds.

hr.decisions.explanation

Read. Scope: hr.read. Plain-language explanation of one AI decision: what was looked at, which policy, and how to appeal. Required: decision_uuid, audience.

Chất lượng Al (2)

hr.ai.corrections

Write. Scope: hr.write. Bundle recent reviewer corrections into a dataset; it is pending privacy review and trains nothing.

hr.ai.quality.overview

Read. Scope: hr.read. The AI quality board: sampled defect rate, override pressure per workflow, coaching reception.

Làm việc ép buộc cuộc trò chuyện và sự chú ý (4)

hr.thread.delete

Write. Scope: hr.write. Delete a workforce conversation; refused while it is under legal hold. Required: thread_uuid, reason.

hr.thread.legal_hold

Write. Scope: hr.write. Place or lift a legal hold on a workforce conversation. Required: thread_uuid, on, reason.

hr.thread.retention

Write. Scope: hr.write. Set a conversation's retention class (standard|extended|permanent). Required: thread_uuid, retention_class.

hr.threads.retention_sweep

Write. Scope: hr.write. Run the conversation retention sweep; legal holds are never swept.

Đọc và phát hành (4)

hr.experience.metrics

Read. Scope: hr.read. Measured persona experience metrics (self-service rate, decision cycle, coaching usefulness, quality) from live journeys.

hr.global.readiness

Read. Scope: hr.read. The whole launch picture: 15-gate leadership score, release readiness checks and jurisdiction coverage.

hr.readiness.read

Read. Scope: hr.read. Run the HR release readiness report.

hr.release.verify

Write. Scope: hr.write. Run the four HR release gates (schema, manifest, probe, readiness).

Hạng Nối

Chọn

hr_job_board, hr_background_check, hr_identity_verification, hr_assessmenthr_tax_right_to_work.

Thuê và nhập ngũ

hr_esignature, hr_calendar, hr_videohr_equipment_it.

Hoạt động làm việc

hr_payroll, hr_benefits, hr_learning, hr_expense_payment, hr_directoryhr_data_warehouse.

Liên lạc

hr_messaging Hợp đồng không có phương pháp đọc thông báo nhân viên.

Cổng nhà cung cấp kết thúc điểm

Cổng Nhà Cung Cấp Nhân Quyền1.0
GET    /v1/hr/health
POST   /v1/hr/job-postings
PATCH  /v1/hr/job-postings/{provider_ref}
POST   /v1/hr/job-postings/{provider_ref}/close
GET    /v1/hr/job-postings/{provider_ref}
POST   /v1/hr/background-checks
GET    /v1/hr/background-checks/{provider_ref}
POST   /v1/hr/identity-verifications
GET    /v1/hr/identity-verifications/{provider_ref}
DELETE /v1/hr/identity-subjects/{subject_ref}
POST   /v1/hr/payroll/worker-events
GET    /v1/hr/payroll/state?cursor=...
GET    /v1/hr/payroll/exceptions
POST   /v1/hr/equipment/requests
POST   /v1/hr/access/requests
GET    /v1/hr/provisioning/requests/{request_ref}
POST   /v1/hr/provisioning/requests/{request_ref}/revoke

Cửa ra cần thiết HTTPS, chặn các mục tiêu không an toàn/ cá nhân, các ghim đã xác nhận DNS Kết quả, theo sau không chuyển hướng, kích thước phản ứng hạn chế, yêu cầu JSON, thực hiện sự bình đẳng nhất định, và hỗ trợ thời gian được đóng dấu HMAC Trang web luôn là gợi ý theo sau bởi nhà cung cấp tái thiết.

Các cửa nối web

Ba cửa công cộng nhận cuộc gọi lại nhà cung cấp: POST /opsiq/ajax_api.php?ajax=hr_connector_webhook (Đỏ connector_class, connector_key, topic), ?ajax=hr_esign_webhook (connector_key, offer_uuid, provider_ref) và ?ajax=hr_check_webhook (check_uuidMỗi bản xác nhận xác nhận thông qua bộ kết nối, đốt cháy giao hàng để một chương trình tái tạo chết, và ghi lại chỉ một sự kiện chờ đợi tái thiết lập; câu trả lời của nhà cung cấp thay đổi hồ sơ. Mỗi từ chối là cùng một câu trả lời chung trên mục đích. NgườiOS không đưa ra sự kiện webhook nào có thể mở rộng ngày hôm nay: webhooks.events.list là thẩm quyền và tên không có trong hr gia đình, vì vậy hãy thăm dò hr.* đọc hay dùng hr.connectors.health.

Những tham khảo chi tiết

Sổ tay & Sổ Tay & Sgiá trị

Đọc doc/contracts/PEOPLEOS_HR.md trong một cài đặt tự chủ cho mỗi người điều hành,APIKết nối, kết nối và giải phóng quy tắc.

Hợp đồng phát triển cổng ra

Gói siêu thị chứa README.md, DEVELOPER.md, connector_contract.json, hr_profile.json và một bản kê khai hồ sơ đã được ký.

PeopleOS HR

Sẵn sàng thử thách và sản xuất

Yêu cầu phóng được tính toán từ bằng chứng. Sẵn sàng gói, xác nhận nhà cung cấp, phê chuẩn pháp lý, đánh giá công bằng và xác nhận khả năng truy cập là cố tình tách biệt.

1
Kiểm tra mã và hợp đồng

Chạy cú pháp PHP, đội giải cứu nhân sự, tuyến đường.APIparity, OpenAPI/Brabman check, entaction vàJSONChứng nhận sơ đồ.

2
Tập thể dục đầy đủ các luồng công việc

Kiểm tra tuyển dụng, duyệt lại AI, phỏng vấn/video, lên tàu, ký hiệu, để lại, nhận lương, cổng ra vào, thông báo, định hướng và các đường dẫn thất bại.

3
Name

Ổ đĩa màn hình nền, máy tính bảng và bố trí điện thoại; bàn phím, tiêu điểm, nhãn, tương phản, luồng lại, mẹo công cụ, hộp thoại, cuộn thông báo và định hướng độc lập.

4
Thu thập bằng chứng bên ngoài

Sử dụng các vòng cung cấp thực tế và xóa bỏ, chính sách pháp lý công khai, dữ liệu đại diện công bằng và một chứng nhận độc lập của WCAG.

5
Name

Một người phê bình khác với người gửi thông báo cho người đưa ra bằng chứng.

Kết quả là gì?

Gói đã ký tên

Tập tin không thay đổi kể từ khi có sự cho phép của gói ký tự. Nó không chứng minh tài khoản phần ba hoạt động.

Cát hộp đã qua

Hành vi định kỳ và sự chuyển tiếp của nhà nước phù hợp với nhau, không chứng minh một người có thể cung cấp, một thuật ngữ cư trú hoặc bị xóa bỏ.

Xác nhận kết nối sản xuất

Một tài khoản không gian làm việc cụ thể đã được giao 5 nghĩa vụ bên cung cấp dưới sự kiểm soát đôi.

Báo cáo kỹ thuật WCAG

Bằng chứng tự động và được đánh giá là có tồn tại cho các bề mặt tên, không phải là nhân chứng thứ hai.

Sẵn sàng

Tất cả các cổng đều màu xanh cùng lúc và không có bằng chứng nào hết hạn, bị thu hồi, mất tích hoặc mâu thuẫn với sức khỏe sống.

⚠️
Không bao giờ tạo ra một thông tin hợp pháp, công bằng, nhà cung cấp hoặc kiểm tra độc lập chỉ đơn thuần là để xóa bỏ các cổng. thu lại các ngăn chặn và người sở hữu. xem sẵn sàng là có giá trị chính xác vì nó từ chối không được hỗ trợ.
Tại sao lại cài đặt một bộ kết nối mà vẫn không có?+

Cài đặt chứng minh gói có mặt. Hãy bật nó, lưu các giấy ủy nhiệm ít giá trị nhất, qua bài kiểm tra kết nối, rồi cung cấp phạm vi sản xuất tài khoản « Người dùng » khớp với nhau bằng chứng nhà cung cấp đích thực và một bộ xem khác.

Tại sao một cây webok không thay đổi bản ghi?+

Gọi lại có thể hợp lệ nhưng chỉ gợi ý. Hãy kiểm tra trong hộp chọn web, kết quả cung cấp trạng thái kết thúc và giải quyết. Người dùngOS thay đổi tình trạng có thẩm quyền chỉ sau khi tái thiết lập.

Nơi là toàn bộ máy đọc được nhân sựAPI?+

Gọi meta. actions và bộ lọc cho hr. và nền tảng.hr; hoặc sử dụng/api/v1/openapi.phpvà/api/v1/postman.php.Chúng được tạo ra từ cùng một thời gian chạy.

Hỗ trợ

Trung tâm Trợ giúp

Trung tâm Trợ giúp của bạn là một trang web trợ giúp tự phục vụ bản thân được xây dựng từ các bài bạn xuất bản. khách hàng có thể đọc và tìm kiếm nó trên trang công cộng riêng của họ, và ngay bên trong các thiết bị chat, để họ có thể tìm thấy câu trả lời của riêng mình trước khi mở một cuộc đối thoại. tất cả mọi thứ trong đó đến từ kiến thức cơ sở kiến thức của bạn, vì vậy cùng nội dung mà dựa trên trí tuệ của bạn cũng cung cấp cho sự trợ giúp công cộng của bạn.

Nơi khách hàng của bạn nhìn thấy nó

Nó là trang công cộng của riêng nó

Một trang web trợ giúp sạch sẽ, có thể tìm kiếm tại /help.php.. khách hàng duyệt theo loại, tìm kiếm và mở bất cứ bài nào. Bạn có thể cho nó tên và kiểu riêng của bạn.

Trong ô điều khiển trò chuyện

Một liên kết trợ giúp trong ô điều khiển chat để khách hàng có thể tìm kiếm các bài báo của bạn mà không cần để lại cuộc trò chuyện.

Bật lên đi.

1
Mở Trung tâm Trợ giúp

Tới Config, then Help Center trong bộ điều hành và bật Bật Trung tâm Trợ giúp Công cộng.

2
Cho nó một cái tên và nhìn xem

Đặt tên Trung tâm Trợ giúp hiển thị trong trang đầu và trang duyệt, rồi chọn kiểu dáng hình ảnh. Bạn có thể tắt trình đơn trên cùng định vị cho trang sạch, không có trình đơn.

3
Xuất bản vài bài báo

Không có gì cho thấy cho đến khi bạn đăng bài báo lên nó.

Xuất bản các bài báo cho Trung tâm Trợ giúp

Một bài báo xuất hiện ở Trung tâm Trợ giúp một khi nó được công bố và đánh dấu bởi công chúng.

Xuất bản một bài báo

Mở bài báo, đánh dấu nó được xuất bản, và bật tùy chọn hiển thị trong Trung tâm Trợ giúp.

Xuất bản tất cả mọi thứ cùng một lúc

Sử dụng Xuất tất cả Nhấn nút này để đẩy toàn bộ tập tin đã xuất bản của bạn vào Trung tâm Trợ giúp chỉ bằng một cú nhấn, thay vì làm chúng từng cái một.

Biến FAQs thành các bài

Đã có FAQs chưa? Xuất tất cả để giúp đỡ để biến chúng thành những bài báo giúp đỡ, vì vậy chúng ngồi cạnh mọi thứ khác.

Nhập cơ sở kiến thức tồn tại

Chuyển từ bàn trợ giúp khác? Nhập KB Nút trên thanh bài báo mang lại một cơ sở kiến thức tồn tại cho bạn. Bạn có ba cách để chỉ nó vào nội dung của bạn:

Dán URL

Nếu nó nhận diện nền (v. d. Zendesk) nó đọc chính xác cây phân loại từ nền tảng đó. Nếu không, nó sẽ thu thập và xây dựng lại cấu trúc từ trang đó, nhập chỉ những bài thật và bỏ qua việc đăng nhập, sử dụng và liên lạc trang.

Chọn một ứng dụng đã kết nối

Nếu một nền tảng đã được kết nối đến không gian làm việc này và nó giữ một cơ sở tri thức, nó xuất hiện trong một thả xuống dưới Nhập từ một ứng dụng kết nối.. Chọn nó và nhập khẩu, không URL hoặc mật khẩu cần thiết. Ứng dụng này chỉ được liệt kê một khi nó đã kết nối và thiết lập.

Tải lên một CSV

Không có trang web nào để chỉ vào, tải lên bảng tính với title, category, và body Cột. Parent / Child trong mục phân loại để xây dựng các nhóm lồng nhau.

Dù chọn cách nào, bạn cũng có xem thử trước: những bài nó tìm thấy, nhóm lại theo loại, mỗi mục với một hộp kiểm tra để bạn có thể bỏ bất cứ điều gì bạn không muốn. Không có gì được lưu cho đến khi bạn nhấn nhập khẩu. Sau đó bạn có khả năng. Hủy bước toàn bộ nhập khẩu chỉ trong một nhắp, hoặc Tái định kỳ a URL hoặc nhập khẩu có kết nối sau này để kéo vào các bài viết mới và thay đổi.

💡
Nhà phát triển: bất kỳ kết nối có thể quảng cáo kiến thức cơ bản của nó để giảm xuống này bằng cách tuyên bố a kb_capabilities khối ở trong đó settings.json (kiểu kb_sourceVới một adapter và a base_templateXem phần kết nối và tham chiếu hệ thống

Tổ chức với AI

Một trung tâm trợ giúp gọn gàng dễ duyệt và dễ tìm kiếm hơn. Tổ chức với AI Nút vẽ cho bạn. Khi nhấn vào nút này, đọc các bài đã được xuất bản, sắp xếp chúng thành phân loại hợp lý, và thêm thẻ. Nó tạo phân loại khi cần, dùng lại phân loại vừa khít, và bỏ qua bất cứ điều gì bạn đã sắp xếp, vì vậy bạn có thể chạy lại nó bất cứ khi nào bạn thêm bài mới. Hãy để Al tổ chức vào các thư viện trong trung tâm thiết lập và nó cũng có thể làm tổ các bài Parent / Child phân loại, rất tiện lợi ngay sau khi nhập một cơ sở kiến thức có phụ tiết.

💡
Phân loại cho khách hàng một cách duyệt, và thẻ mài sắc việc tìm kiếm trên cả trang công và trong ô điều khiển. Bạn có thể thay đổi tên của các thứ sau đó. AI cung cấp cho bạn một điểm khởi động mạnh, không phải là một thiết lập bị bạn mắc kẹt.

Trung tâm Trợ giúp bên trong ô điều khiển chat của bạn

Bạn có thể hiển thị Trung tâm Trợ giúp ngay bên trong ô điều khiển trò chuyện để mọi người tìm kiếm câu trả lời trước khi gửi tin nhắn cho bạn. Trong thiết lập ô điều chỉnh chat, hãy chọn nơi có liên kết trợ giúp xuất hiện:

Trong đầu trang

Một biểu tượng trợ giúp nhỏ ở đầu ô điều khiển.

Ở dưới cùng

Một liên kết văn bản dưới hộp thư, ví dụ "Trung tâm trợ giúp hàng đợi". Bạn có thể thay đổi cách dịch.

cả hai nơi

Cho thấy nó ở đầu trang và ở dưới cho tầm nhìn rõ nhất.

Liên kết trợ giúp có khả năng điều khiển màu sắc của nó dưới thiết lập bề ngoài ô điều khiển. Không có để khớp màu phóng xạ, hoặc chọn a Rắn chắc màu hay a Độ dốcToàn bộ trải nghiệm hỗ trợ theo chủ đề widget của bạn, vì vậy nó luôn trông giống như một phần của thương hiệu của bạn.

Hãy đặt sự giúp đỡ của bạn vào địa chỉ web riêng

Trong hộp sự giúp đỡ của bạn, trung tâm đã có địa chỉ sạch sẽ và có thể chia sẻ (chẳng hạn /help/your-help-centerBạn có thể tiến thêm một bước nữa và phục vụ nó dưới quyền bạn Miền riêngkhách hàng và máy tìm kiếm xem nó như một phần của thương hiệu của bạn, ví dụ yourdomain.com/help hay help.yourdomain.com.. Mọi thứ vẫn hoạt động trên miền của bạn: liên kết, ảnh, tìm kiếm và đánh giá bài báo.

Dưới trang web chính của bạn

Vào Cấu hình, rồi đến Trung tâm Trợ giúpMở cửa ra Nhát Thẻ tab và tìm "Hãy hiển thị trung tâm trợ giúp của bạn trên địa chỉ web riêng". Hãy chọn thiết lập (Cloudflare nginx hay Apache), sao chép khối đã làm sẵn sàng, và dán nó vào trang web của bạn. Mỗi tùy chọn có Thiết lập hướng dẫn Nút bên cạnh nó với các bước chính xác.

Trên một phần phụ

Thích help.yourdomain.comCùng một bảng điều khiển có một tùy chọn subdomain. Cloudflare Một con tàu ngầm là tuyến đường đáng tin cậy nhất, và nó cho bạn một địa chỉ sạch mà không có gì sau đó.

💡
Sử dụng CloudflareNó chỉ chạy Worker trên địa chỉ được proxy qua Cloudflare (đám mây màu cam). Miền chính của bạn thường chỉ thẳng vào trang web của bạn, vì vậy một quy tắc được đặt trên miền chính không thể làm gì cả. Cách đáng tin cậy nhất là sử dụng một miền con ủy nhiệm như help.yourdomain.comHướng dẫn viên thiết kế sẽ đưa anh đi qua đường này. DNS ghi chép và lộ trình.
Tốt cho SEO Một khi trung tâm trợ giúp của bạn ở trên vùng riêng, hãy tìm kiếm bộ máy chỉ mục dưới thương hiệu của bạn. Mỗi trang tuyên bố địa chỉ chính xác của nó và bản đồ trang web liệt kê chúng, vì thế cùng một bài viết không bao giờ được liệt kê hai lần.
💡
Dùng liên kết trợ giúp có hạn không? Trong thiết lập « Mở ở giữa trợ giúp » của ô điều khiển trò chuyện, thiết lập Nơi liên kết đi phải Chính quyền của bạn trung tâm trợ giúp và nhập cùng một địa chỉ. sau đó những liên kết bài viết mở ra trên miền của bạn cũng vậy, không phải trên OpsIQ Địa chỉ.

Xem trung tâm trợ giúp của bạn làm gì

Ngoài việc bầu một băng, Trung tâm Trợ giúp có chính sách riêng của mình. phân tích. Bật nó trong thiết lập Trung tâm Trợ giúp và nó lặng lẽ ghi lại cách mọi người sử dụng trợ giúp của bạn: các bài đã xem nhiều nhất, những gì họ tìm kiếm, và tìm kiếm mà trở về trống (danh sách sẵn sàng để ghi), làm việc ra nước khách truy cập và thiết bị riêng của họ, vì vậy nó không cần thiết bị chat được cài đặt để báo cáo. Mỗi số được hiển thị để tìm kiếm thông báo. cả hai nơi sự giúp đỡ của bạn xuất hiện, trang công cộng và trợ giúp nhất, cũng như kết hợp lại, để bạn có thể thấy được mỗi trang được sử dụng bao nhiêu.

💡
Các phân tích học sẽ dừng lại cho đến khi bạn bật nó lên, và bạn có thể có khách thăm IP Không có ghi âm gì trước khi anh chọn.

Chọn những gì xuất hiện trên mỗi phần của trang

Mỗi phần của Trung tâm Trợ giúp (các loại trên trang chủ, những bài phổ biến, danh sách các bài trong một trang thứ tự và nhiều thứ khác) đều có quy tắc đơn giản riêng. Đối với mỗi mục bạn có thể hiển thị hoặc ẩn nó, và hiển thị cho mỗi trang khác. Tất cả mục, a đặt sốcái & Mới nhấtHay chỉ những người anh đã gặp. tính năng Khi một quy tắc lên đầu danh sách, khách hàng vẫn có được liên kết "Hãy trình diễn tất cả" vì thế không gì ngoài tầm với của họ.

Bạn cũng quyết định làm thế nào các lá phiếu hữu ích trông như: ẩn, một tỷ lệ thân thiện như "12 Tháng Ba 14 Một thiết lập khuyến mãi tối thiểu sẽ dừng lại một bài báo mới cho thấy một sự khó xử "0ra0".

Xem bài báo nào đang làm việc

Mỗi bài cho thấy một Điều này có ích gì không? Nhắc nhở. mỗi có hoặc không được tính trên mỗi bài, do đó, bạn có thể thấy tại một cái nhìn mà các bài báo trả lời tốt và những người cần một bản viết lại. bỏ phiếu đã lặp đi lặp lại từ cùng một khách truy cập bị bỏ qua, vì vậy các cáo buộc phải trung thực.

Văn bản và nhãn

Bạn có thể thay đổi tiêu đề và nhãn trên Trung tâm Trợ giúp để khớp giọng nói của bạn. Để trống bất kỳ trường nào và nó rơi lại với một mặc định hợp lý, vì vậy bạn chỉ chỉnh sửa từ mà bạn thực sự muốn thay đổi.

Trung tâm Trợ giúp chia sẻ một thư viện với AI. Mỗi bài báo bạn xuất bản ở đây đều có nội dung tương tự mà AI sử dụng để trả lời các cuộc trò chuyện và vé phạt, vì vậy cải thiện một trong những cải tiến khác.

Câu hỏi chung

Tôi có cần phải viết nội dung riêng cho Trung tâm Trợ giúp không?+

Không, nó được xây từ cùng một bài viết cơ bản mà AI đã dùng. xuất bản một bài báo một lần và nó có thể phục vụ cả hai.

Tôi có thể giữ vài bài báo bên trong không?+

Đúng vậy, chỉ có những bài báo mà anh xuất bản và đánh dấu công chúng ở Trung tâm Trợ giúp.

Liệu khách hàng có thể tiếp cận với một người không?+

Vâng, thiết bị giúp liên kết ngồi cách gõ một cái vòi để bắt đầu cuộc trò chuyện, vì vậy tự phục vụ bản thân không bao giờ bẫy bất cứ ai.

Tăng & tăng trưởng SEO

Máy tình báo vị trí (S SEO room)

Tình báo Sithine làOpsIQĐã xây dựng sẵn SEO Nó thu thập trang tìm kiếm của bạn như một công cụ tìm kiếm, theo dõi nơi bạn xếp hàng, nghiên cứu từ khóa, xem lại liên kết và đối thủ cạnh tranh, quét lại sự hiện diện của bản đồ địa phương, kiểm tra tốc độ trang, và chuyển tất cả thành các báo cáo sẵn sàng của khách hàng, với một phân tích AI giải thích những gì cần sửa chữa và có thể soạn thảo nó. nó là một tính năng cao cấp; khi hiệu lực nó xuất hiện như tình báo Site trong thanh bên.

Thông minh định sẵn
Bảng điều khiển thông tin tình báo SiteAn SEO Bảng điều khiển cho thấy điểm số, mức độ từ khóa và xu hướng giao thông.Thông minh định sẵnyoursite.com86TIẾNG HÌNH3 vấn đề quan trọngTheo dõi cấp bậc từ khoáThẻ#3chat qua loa trực tiếp#7crm cho các cơ quan#12Nhấn vào cơ số1CRAWLTìm vấn đề kỹ thuật2TRỞRanks, từ khoá, liên kết ngược3A - SI - A - AGiải thích và soạn thảo
Thông tin tình báo Site tóm tắt: điểm số địa điểm có thể được điều chỉnh từ khóa mới nhất, theo dõi cấp độ trực tuyến, xu hướng nhấn chuột hữu cơ, và vòng 3 bước: thu thập, theo dấu, để cho AI soạn thảo các sửa chữa.

Tìm được thông tin tình báo

Tình báo Sithine là một phần của kế hoạch thực hiện nó. nó hoạt động chính xác như PeopleOS HR: chủ tài khoản mở cửa Tài khoản→Thêm ký tựMột kế hoạch miễn phí, hoặc một kế hoạch trả tiền vẫn còn bên trong phiên tòa của chính nó, không thể thêm nó. cho đến khi nó được ẩn các dãy phòng từ thanh phụ và liên kết trực tiếp cung cấp bổ sung; khi một nút buộc đến trang kế tiếp; khi thử nghiệm mà không có một khoản mua quyền lợi được gỡ bỏ. trang phụ.

Chạy đi. Bắt đầu ở đây.

Bò là OpsIQ truy cập trang web của bạn theo cách mà một công cụ tìm kiếm sẽ tìm ra các vấn đề kỹ thuật: liên kết bị đứt, tiêu đề thiếu, nội dung mỏng, trang chậm, vấn đề phụ lục.

1
Bắt đầu bò đi.

Trên đài Overview, click để bắt đầu bò. OpsIQ Hàng đợi và làm việc qua các trang trong nền; một chỉ thị trạng thái hiển thị sự tiến hành.

2
Đọc báo cáo đi.

Khi nó kết thúc, mở ra các vấn đề và danh sách trang web. mỗi vấn đề được nhóm lại theo độ nghiêm trọng để bạn giải quyết những chiến thắng lớn nhất trước tiên.

3
Hãy để AI giúp đỡ.

Phân tích AI đưa ra một tóm tắt đơn giản về những gì sai và tại sao nó quan trọng, và có thể tạo ra gợi ý sửa chữa bạn xem xét trước khi đăng nhập.

Những gì stene Intel theo dõi

Chế độ khỏe mạnh

Quét trang của bạn để tìm thông tin kỹ thuật SEO và liệt kê mọi trang có vấn đề, chạy lại bất cứ lúc nào, hoặc lên lịch.

Theo dõi Rak

Thêm các từ khóa bạn quan tâm; OpsIQ Kiểm tra địa điểm và di chuyển theo thời gian.

Nghiên cứu từ khoá

Phát hiện ra những ý tưởng từ khóa mới cho mục tiêu, với huấn luyện viên từ khóa AI để giúp đỡ tiền đề.

Liên kết ngược

Xem ai liên kết với bạn, thay đổi danh sách và không muốn liên kết đến trang web của bạn.

Đối số

Thêm vào các lĩnh vực cạnh tranh và so sánh tầm nhìn của bạn với họ, với một phân tích đối thủ của AI.

Lưới cục bộ (map)

Quét danh sách địa phương qua một mạng lưới địa lý để xem bạn xuất hiện ở đâu trên bản đồ, cộng với công cụ hồ sơ Google Business.

Tốc độ Trang

Kiểm tra tốc độ trang để bạn có thể sửa trang chậm làm tổn thương bảng xếp hạng và chuyển đổi.

Nội dung AI

Tạo bản tóm tắt nội dung và bản nháp nhắm vào các từ khoá bạn đang nhắm.

Báo cáo

Xây dựng có thể in được, sẵn sàng báo cáo của khách hàng về tất cả mọi thứ trên cao.

Kết nối Google với dữ liệu chính xác

Hai kết nối Google chuyển ước tính thành số thực:

Google Search ConsoleQuery

Tìm kiếm

Hãy lấy những bản thiết kế chính xác, click và ấn tượng Google báo cáo cho trang web của bạn, bản đồ tài sản của bạn và cơ hội xếp hạng bề mặt hoàn toàn từ dữ liệu của Google.

Google Analytics 4

Giao thông

Đem dữ liệu giao thông và đính hôn theo bên cạnh bạn SEO dữ liệu, vì vậy báo cáo hiển thị tầm nhìn và hành vi với nhau.

Lên lịch cập nhật và nhãn trắng

Bạn không cần phải chạy mọi thứ bằng tay. Thay đổi thời khóa biểu, kiểm tra phân cấp, kiểm lại từ khoá, cập nhật lại, quét lại hệ thống bản báo cáo địa phương và báo cáo thế hệ trên một kênh (thường hoặc hàng tuần tùy thuộc vào kế hoạch và âm lượng).OpsIQcron, xem phần Cron và tự động hóa. Tạo ra các báo cáo xuất khẩu là có thể in được, sẵn sàng tài liệu khách hàng: các cơ quan gửi mỗi ứng dụng khách một thường xuyên SEO Cập nhật, và bởi vì dữ liệu của mỗi miền là riêng biệt, mỗi khách hàng chỉ nhìn thấy của riêng họ.

Một số tính năng tình báo Side gọi các nhà cung cấp dữ liệu bên ngoài và AI thông qua OpsIQ Nhà cung cấp cấu hình của họ. Họ làm việc ra khỏi hộp khi các bộ phận được bật cho kế hoạch của bạn. Nếu sự cập nhật không chạy, xác nhận OpsIQ cron đang chạy (xem Cron và tự động hóa).
Tôi có cần thêm bất cứ điều gì vào trang web của tôi cho SEO theo dõi?+

Bò, theo dõi cấp bậc, nghiên cứu từ khóa và liên kết hậu phương hoạt động mà không chạm vào trang web của bạn.GA4.

Tôi có thể theo dõi nhiều hơn một lĩnh vực không?+

Phải, mỗi lĩnh vực riêng biệt; việc bò, xếp hạng và báo cáo của họ hoàn toàn tách biệt với nhau.

Tôi nên bò bao lâu?+

Hàng tuần là rất nhiều cho hầu hết các trang web; thu thập nhu cầu sau khi một thay đổi lớn hoặc cấu trúc. Đặt một thời gian biểu để bạn không bao giờ quên.

Tăng & tăng trưởng SEO

Tự động phân loại (S SEO Agent)

Phân tích bò và Al không chỉ khuyên bạn. Tác nhân hoạt động theo đúng cách từ những gì mà Tình báo Side tìm thấy (nó không bao giờ tạo ra một sự thay đổi) và đi bộ qua cùng một vòng an toàn: xem thử khô, thông qua từng bước, giấy chấp thuận trực tiếp, viết trực tiếp và re-cl chứng minh số đếm mở đã được giảm xuống. Nó là tính năng quản lý duy nhất; nó xuất hiện như hành động tự động tự- vô hiệu bên trong (ổ cắm)

Tự động phân loại
Tự động phân loại SEO Đặc vụName SEO Sửa chữa qua xem thử, phê duyệt và viết trực tiếp, với một bản thảo chứng minh.Tự động phân loạiyoursite.comKhuyên sửa chữaAdd missing <title>chấp nhậnSửa rô bốt. txtchấp nhậnGửi sơ đồ vị trí.xmlXem xétDRY-RUN ERVIUT (DIFF)+ <title>AI Helpdesk - OpsIQ</title>+ <meta name=description ...>- <title>Home</title>Áp dụngBỏ quaChứng minh đi.Vấn đề mở 124Chụp ảnh đã lưu1TRONG CÀISự khác nhau sấy của mỗi sửa chữa2TIẾNG & SẼ SÁCHSSH hay máy API3CÂU & RẤTQuay lại và chụp
Làm thế nào một phiên chạy: các đặc vụ liệt kê các fixes Site Inteled đã được đề nghị, hiển thị một khô-run của mỗi người, áp dụng những gì bạn chấp nhận trên SSH hay máy API chụp ảnh trước mỗi chữ viết, và vẽ lại để chứng minh số lượng mở bỏ xuống.

Nó có thể thay đổi cái gì?

Đặc vụ chỉ áp dụng các sửa chữa mà Máy tình báo Site (hoặc phân tích AI) đã đề nghị cho miền đó.

cấu hình máy phục vụ

trang webmap.xml, rô-bốt.txt, và chuyển hướng, chính điển và đứng đầu quy định trong .htacles (Apache / LiteSpeed) hoặc nginx conchig.

Đường dẫn lại chuỗi

Co lại một chuỗi đa khoa chuyển hướng xuống một hop đơn thẳng đến cuối cùng URL Bên trong cùng một khối chặn, vì vậy tốc độ và giá trị liên kết dừng chảy qua những chiếc máy nhảy phụ.

Page <head>

Thiếu hoặc yếu trang tiêu đề, mô tả siêu dữ liệu, thẻ chính điển và cấu trúc-data (schema) khối.

WordPress SEO

Yoast, Rark Math và SEOPres danh hiệu & meta, và hình ảnh alt văn bản, được áp dụng qua WP-CLI trên SSH con đường hoặc REST API trên con đường chủ nhà.

WordPress dữ liệu có cấu trúc

Thêm JSONNhững trang còn thiếu SSH đường dẫn đến một trợ giúp quản lý nhỏ (một bổ sung cần phải dùng) in dấu nên nó hoạt động có hay không có dấu hiệu SEO bổ sung; trên đường dẫn máy chủ bạn SEO bổ sung mang nó.

Liên kết nội bộ

Thêm một liên kết bên trong đã có WordPress Nội dung để cứu những trang trẻ mồ côi và kết nối các bài liên quan. và luôn được bạn chấp nhận trước tiên.

Nội dung trang mảnh

Bản nháp thay thế đầy đủ nội dung cho trang mỏng (tùy chọn thu nhỏ, xem bên dưới). Mỗi bản nháp được bạn duyệt và chấp nhận trước khi xuất bản, và nội dung cũ được giữ lại để có thể phục hồi.

Bộ nhớ tạm trang (WordPress)

Mở trang F3 để mở khi máy thu thập thấy vấn đề về tốc độ và bổ sung được cài đặt, vì vậy trang phục vụ nhanh hơn.

Shopify SEO

Sản phẩm và bộ sưu tập SAO tiêu đề và mô tả, trang và blog-tocle SEO, cộng với 301 Chuyển hướng, thông qua Shopify Quản trị API.

Webflow SEO

1 trang SEO tiêu đề và Mô tả siêu dữ liệu qua Webflow Dữ liệu API v2.

Tự động chuẩn bị các tùy chọn sửa chữa (hai lần thu thập)

Bảng thông tin tình báo Side Cấu hình cho miền (các thiết lập thu thập) có hai tùy chọn quyết định bao nhiêu dòng tác vụ sẽ được gửi tới bạn trước thời gian. Cả hai đều bị tắt theo mặc định và cả hai đều dùng thẻ AI, vậy bạn chỉ bật chúng khi bạn muốn làm việc đó cho bạn.

Tự động trước khi truy cập Al sau mỗi lần thu thập

Mỗi bò thu thập cũng viết các nội dung bê tông (danh sách, siêu mô tả, mã lệnh, giản đồ, chuyển hướng) cho những gì nó tìm thấy, vì vậy các sửa chữa sẵn sàng để xem xét và áp dụng thời điểm thu thập hoàn tất thay vì được tạo ra sau này theo yêu cầu. Hãy sử dụng công trạng AI trên mỗi bò.

Nội dung Al viết lại (trang mỏng)

Tác nhân có thể soạn thảo nội dung thay thế đầy đủ cho trang mỏng. Không có gì được xuất bản riêng: mỗi bản nháp xuất hiện như là một thay đổi bạn đánh giá từng bên và phê duyệt hoặc từ chối, nội dung trước được giữ lại để nó có thể đảo ngược, và nó bị giới hạn trong vài trang trên mỗi giấy thông qua. Dùng thẻ tín dụng AlI trên mỗi bản chọn.

💡
Cả hai phương án chỉ chuẩn bị và soạn thảo. nên việc kích hoạt chúng không bao giờ tự nó làm được gì.

Hai cách để kết nối

SSH / SFTP đường dẫn

Tự quản lý

Đối với các trang web trên máy chủ riêng của bạn, các đại lý kết nối trên SSH/SFTP sử dụng ủy nhiệm bạn lưu trữ, chỉnh sửa tập tin cấu hình máy phục vụ và trang trực tiếp, và chạy WP-CLI cho WordPress Tốt nhất là khi có mã nguồn truy cập và muốn kiểm soát toàn bộ tập tin.

Máy chủ...API đường dẫn (không SSH)

Không có vỏ bọc

Cho những nền tảng không cho phép SSH Đặc vụ làm việc hoàn toàn thông qua một viên chức API Kết nối, WordPress (Trích dẫn + mật khẩu ứng dụng) Webflow (Data API v2) và Shopify (Admin API Không cài đặt gì trên máy.

💡
Wix và Squarespace không có công chúng SEO- ViếtAPITrên các nền tảng này chạy trong chế độ cố vấn: nó cho bạn thấy sự thay đổi chính xác để làm (các tiêu đề, siêu hay thiết lập) để áp dụng bằng tay. Mọi thứ khác chỉ được đọc và an toàn.

Bật các liên kết

Đặc vụ đạt tới mỗi nền tảng thông qua một kết nối:

Xây dựng ở

Shopify và WordPress Name OpsIQ Chỉ cần cho phép chúng dưới sự kết nối và thêm thông tin về cửa hàng hoặc địa điểm.

Từ chợ

Webflow, Wix và Squarespace install from Converors→Thị trường, rồi kết nối theo cách tương tự.

Cách chạy phiên chạy

1
Chọn cách sửa chữa

Mở bộ phận Tự động (ổ cắm) từ phần Tình báo Site. Nó liệt kê các vấn đề mà Máy tình báo Side tìm thấy nó có thể sửa đổi miền này.

2
Xem thử mỗi thay đổi

Đối với mỗi sửa chữa tác nhân hiển thị một dao động khô (chính xác những gì nó sẽ viết) trước khi bất cứ điều gì chạm vào trang web sống.

3
Áp dụng từng bước một

Bạn chấp nhận (hoặc bỏ qua) mỗi thay đổi cá nhân. không có gì được áp dụng mà không cần phải đi thẳng vào bước đó.

4
Nó viết, rồi chụp ảnh

Theo sự chấp thuận của đặc vụ thì cuộc sống thay đổi. SSH hay máy chủ API và giữ lại một bức ảnh trước, để mọi thay đổi có thể được cuộn lại.

5
Chứng minh đi, sống đi.

Khi nó áp dụng cho mỗi thay đổi của tác nhân ngay lập tức kiểm tra lại trang đó và chỉ ra một bản án trực tiếp, vì vậy bạn xem từng miếng đất cố định trên trang web trực tiếp khi nó xảy ra.

& Hóa đơn an toàn

SEO- Chỉ

Đặc vụ chỉ có thể làm những gì mà Tình báo Site đề nghị cho miền đó. Nó không thể thay đổi tùy ý nơi Mạng hay máy chủ của bạn.

Chấp thuận từng bước một

Mỗi chữ viết được xem trước là một dấu gạch chéo và áp dụng chỉ sau khi bạn chấp nhận bước cụ thể đó.

Chụp ảnh lùi

Một bức ảnh được lưu trước mỗi chữ viết, vì vậy bất cứ thay đổi nào cũng có thể được hoàn lại.

Sống một bước chứng minh

Mỗi trang được kiểm tra lại ngay khi nó được viết và nhận được một “lời phán quyết trực tiếp, vì vậy một sửa chữa được xác nhận ngay lập tức trên trang trực tiếp không chỉ trong phần đóng lại.

Nội dung không bao giờ được tự động xuất bản

Liên kết nội bộ và nội dung trang mỏng là hoạt động viết tắt cao hơn, vì vậy chúng luôn được hiển thị cho bạn để được chấp thuận và không bao giờ được áp dụng tự động, bất cứ chế độ nào bạn chạy.

Chỉ quản lý- AI

Tự động phân loại chạy trên Al đã được quản lý; nó bị chặn khi không gian làm việc đang sử dụng riêng (BYOK Chìa khóa.

Thanh toán

Các tờ giấy chứng nhận như bình thường bạn sử dụng chúng, cộng với một mức phí mỗi lần sử dụng cho phiên họp tự động-tiểu quyết, cả hai đều rút ra từ cùng một tín dụng quản lý-AI.

Tự động phân loại theo mặc định. Bật nó trên trang cấu hình AI ( thẻ tự động- phân hủy) và đảm bảo rằng trình kết nối cho nền tảng của bạn được kết nối trước.
Nó có thay đổi gì mà không hỏi không?+

Không, mọi thay đổi được xem như là một sự khác biệt chạy khô và chỉ áp dụng sau khi bạn chấp nhận bước đó. Một hình ảnh được lưu trước mỗi ghi để bạn có thể cuộn ngược lại.

Tôi có cần... SSH Truy cập?+

Không phải trên WordPress, Shopify hay Webflow Những người làm việc thông qua quan chức của họ APIs Không có vỏ đạn. SSH là chỉ một trong hai đường dẫn, được dùng khi bạn muốn tác nhân chỉnh sửa cấu hình máy phục vụ và tập tin trực tiếp trên máy chủ của bạn.

Làm sao tôi biết nó có tác dụng?+

Sau khi áp dụng việc sửa chữa được phê chuẩn, đặc vụ sẽ đánh lại trang web và cho thấy số lượng mở trước và sau đó, để bạn có thể xác nhận các sửa chữa giảm thiểu các vấn đề.

Liệu nó sẽ viết lại hay xuất bản nội dung trang web?+

Không. Việc viết lại nội dung AI bị tắt cho đến khi bạn bật chúng trong tùy chọn lướt, chúng được giới hạn ở vài trang mỏng mỗi lần, và mỗi bản thảo sẽ được hiển thị để bạn chấp nhận trước khi xuất bản bất kỳ thứ gì. Nội dung cũ được giữ lại, vì vậy việc viết lại có thể luôn được phục hồi.

Tôi có thể dùng nó với chìa khóa AI của riêng tôi không?+

Không, sự phân loại tự động được quản lý chỉ AI và bị chặn dưới BYOK Nó thanh toán các chứng chỉ AI thông thường cộng với một mức phí mỗi lần sử dụng, từ cùng một tín dụng quản lý AI.

Phát triển và đính hôn

Phòng khảo sát

Phòng khảo sát là không gian làm việc để tạo các cuộc khảo sát có thể được biên tập với tư cách là một trang đứng vững phong phú, ô điều khiển nơi Mạng hay lời nhấn vào. Sản phẩm hiện thời cũng cung cấp liên kết đã hosted, xem thử bản nháp ký tên, giấy mời riêng, QR share, replop và giám sát kỹ thuật phân tích. Ô điều khiển web là một sự lựa chọn giao hàng; nó không phải là định nghĩa của một cuộc thăm dò.

⚠️
Giới hạn đối tượng- đối tượng hiện thời: sự sáng tạo cao cấp và kinh nghiệm xem thử, bộ tạo liên kết survey Khả năng, và danh sách nhà cung cấp khảo sát, biên giới thứ ba, đã có sẵn.CRM Name surveys.* API.

Tạo một cuộc thăm dò

1
Chọn cách người ta sẽ nhận nó

Trợ lý hiện thời cung cấp kiểu khảo sát và sau đó thêm vào CRM Email, liên lạc cá nhân và QR là lựa chọn cấp 1.

2
Chọn mục đích

Chọn NPS, CSAT, CES, phản hồi sản phẩm, sau khi xuất bản, hủy bỏ, lên tàu, trang web, sự kiện, hỗ trợ, chì/demo, thử nghiệm, kiểm tra, nhân viên, thu thập hoặc phản hồi chung.

3
Dùng mẫu đầy đủ hoặc bắt đầu trống

Danh mục hiện thời đã sẵn sàng, nhóm có thể sửa đổi theo mục đích. Chọn mẫu tạo bản sao: Thay đổi khảo sát không thay đổi người khởi động hay một cuộc thăm dò khác.

4
Tuỳ biến hoặc xem lại nhanh

Tuỳ biến mở ra mọi câu hỏi, thiết kế, hành vi và kiểm tra giao hàng. Xem nhanh sẽ mở bản thảo tương tự tại kiểm tra cuối cùng của khách hàng. Không có gì xuất bản hoặc gửi tự động.

Lựa chọn giao hàng và hành vi hiện tại

& Liên kết đứng một trang

Một trang giấy có dán nhãn trả lời. URL Dùng giấy mời riêng và lời giải thích khi mỗi người nhận cần một liên kết có kiểm soát.

Thẻ trang web

Kênh di sản di cư có thể sử dụng trang, địa lý, thiết bị, du lịch, ngày tháng, mẫu thử, làm mát, thăm viếng và chỉ tiêu quy định. nó vẫn được hỗ trợ bởi di sản cầu hoạt động-phụ trong khi kiến trúc triển khai được xây dựng.

Inline conbed

Một cuộc khảo sát đáp ứng được đặt trong một trang giấy, cổng ra vào, sản phẩm hoặc trung tâm trợ giúp, không đòi hỏi phòng thu phát triển.

Thư điện tử

Hôm nay phòng thu có thể tạo ra lời mời HTML và liên kết tư nhân. Kết thúc gửi từ liên lạc CM/ sligments, với sự đồng ý, đàn áp, lên kế hoạch, thử lại và đáp ứng tương quan, là mục tiêu được chấp nhận hợp nhất CRM Outreach.

Thiết kế và xem thử tầu Enterprise

Trang khảo sát có sắc thái khảo sát và các gia đình đăng nhập trang, điều khiển đáp ứng, chào mừng và hoàn tất bản sao, và xem thử bản nháp đã ký. Xem thử xem thử hiệu ứng thiết kế là đầy đủ bên dưới trình soạn thảo, không phải đường ray phía hẹp. Nó sử dụng thời gian chạy thật trong khung cát và hỗ trợ màn hình nền, máy tính bảng và độ rộng điện thoại; ô xem thử không ghi hồi âm hay phân tích.

💡
Phòng khảo sát độc lập với phòng thu Promotion. Thời gian chạy mục tiêu, danh tính, tài sản, vẽ và phân tích phải được đăng nhập. Nội dung cảm hứng có thể được sử dụng lại chỉ qua một bản sao/ bản sao rõ ràng một lần mà tạo dữ liệu khảo sát tách biệt; sau đó việc sửa đổi cảm xúc không có hiệu quả.

Sản phẩm mẫu đầy đủ

Các cuộc triển khai độc lập

Sống

Một cuộc khảo sát có thể phiên bản riêng, ô điều khiển, conbed,CRM Mỗi cuộc khảo sát đều có thể bị tạm dừng, vô hiệu hóa hoặc xóa.

CRM Vượt xa và chiến dịch

Sống

Xây dựng một thính giả được xác nhận từ CRM Các đoạn phim và các kết nối khảo sát, đóng băng nó vào một phiên bản không thay đổi được, xuất bản một lời mời đã ký tên mỗi người, và gửi qua đường dây điện tử bị khóa với bằng chứng cho mỗi lần chuyển giao.

Bộ và xác nhận trường

Sống

Con trượt, lựa chọn hình ảnh, tập tin tải lên, chữ ký, địa chỉ, điện thoại, tiêu đề và văn bản phong phú, với độ dài min/max, email/URL Số sẵn, văn bản lỗi tự chọn và mỗi câu hỏi trước URL Tham số.

lô- gi, công thức, kết quả

Sống

Và/O: nhóm, quy tắc chi nhánh, một công thức an toàn qua các câu trả lời, và những ban nhạc ghi điểm có trang kết quả riêng của họ: một vùng đất kiểm tra về phán quyết.

Ngôn ngữ, Kiosk, pretlot

Sống

Một ngôn ngữ của khách truy cập chỉ liệt kê các ngôn ngữ có bản dịch thật, chế độ kiosk cho việc chia sẻ bảng (các mục tiêu, tự động- bối cảnh, không chuyển hướng), một công ty xây dựng đường dẫn đồ thị sẵn, và sửa đổi văn bản bảo mật-baster và chân trang web.

Phiên bản A/B thử ra

Sống

Hãy công bố phiên bản thử thách khi có bất cứ cuộc triển khai nào với sự chia cắt giao thông.

Tiêu hóa hàng tuần

Sống

Name 7 Ngày khảo sát KPIs, các cuộc khảo sát bận rộn nhất, xung phản hồi và chỉ dẫn AI mới nhất, gửi thông qua các kết nối bị khóa. Cấu hình nó trong Trung tâm giao hàng, tự động hóa.

Lãnh đạo

Sống

Danh sách truy cập hàng đợi hạn chế ai có thể sửa đổi, xuất bản hay xóa một cuộc khảo sát. Chấp thuận Publish (4 mắt) yêu cầu tờ quảng cáo thứ hai để phát hành bản nháp; chỉnh sửa lại việc chấp thuận. Việc dùng liên kết nháp cho phép người duyệt bản thảo thật sự mà không cần đăng nhập.

Nền tảng nhà phát triển

Sống

Hợp đồng kết nối 2.2, kiểm tra và phản hồi. api/v1, canonical survey.* events, durable signed webhooks with Slack and Google Sheets relay formats, và one-response PDF Xuất khẩu.

Phát triển và đính hôn

Khảo sát phân tích và phản hồi là những sản phẩm khác nhau

Các cuộc khảo sát giải thích cách mà một cuộc thăm dò đang đến với người ta và biểu diễn.

Phân tích khảo sát

Được nhập từ phòng khảo sát cá nhân trong Phòng Thu Khảo sát, không phải từ hướng dẫn toàn cầu, mà đo lường tính dễ lộ, khả năng lộ, sự phơi nhiễm, hành vi kích hoạt, bắt đầu, hoàn thành, bỏ rơi, câu hỏi và sự mâu thuẫn về thời gian, triển khai/ hiệu ứng/ quay số/thời gian và tính đáng tin cậy.

Phản hồi toàn cảnh và hộp thư

Một trong những dữ liệu thời gian cho phép nhận thức được thời gian để hoàn tất các phản hồi khảo sát, phản hồi của các thiết bị điều khiển di động, chat và vé CSAT, phản ứng trả lời vé, đánh giá khách hàng AI-answers, kiến thức cơ bản hữu ích và các nguồn từ bên ngoài/ năm.

Phân tích phân tích phản hồi

Phân tích của khách hàng có nghĩa là: xu hướng đo lường ban đầu, chủ đề/themes, tình cảm, ý định, cấp bách, yêu cầu, yêu sách, ca ngợi, hành trình/công việc/ phục vụ/tam, giảm giá và kết quả đóng cửa.

Sở hữu dữ liệu

Các câu trả lời khảo sát vẫn còn có thẩm quyền trong kho khảo sát. Các cửa hàng có thể tham khảo nguồn và lấy tín hiệu từ nguồn, rồi tải lên bằng chứng theo yêu cầu. Một phản ứng khảo sát hoàn tất là một mục hỗ trợ.

⚠️
Trang ngược hiện thời vẫn còn trình duyệt phản ứng khảo sát và bộ điều khiển di sản riêng lẻ, tổng số AI của nó chưa sử dụng mô hình nguồn chuẩn hoá đầy đủ. Bộ xem tổng hợp / Inbox / Bộ phân tích / Nguồn và Y tế là mục tiêu thực hiện.

NPS, CSAT, CES, sao, ngón cái và sự hữu ích phải luôn giữ nguyên phương pháp gốc của chúng, thang đo, mẫu, cửa sổ ngày và số chia. Chúng không bao giờ được kết hợp thành một trung bình không giải thích.

Tăng & tăng trưởng SEO

Studio Khuyến Mãi

Phòng thu Promotion biến trang web của bạn thành một động cơ chuyển đổi. thiết kế pop-up, biểu ngữ, hình chiếu, thanh trượt trên màn hình cao, kiểm soát toàn màn hình, các khối điện thoại và thậm chí cả chuyển hướng quốc gia, sau đó hiển thị thông điệp đúng cho khách truy cập đúng lúc. OpsIQ Thiết bị đã cài đặt sẵn trên trang web của bạn, vì vậy không có gì thêm. Bạn thiết kế và lưu trữ các chiến dịch bất cứ lúc nào; chúng chỉ hiển thị một khi bạn xuất bản chúng và studio được bật lên cho không gian làm việc của bạn.

Studio Khuyến Mãi
Trình thiết kế studio PromotionMột nhà thiết kế chiến dịch tranh cử với bảng chọn khối gạch, một tấm bản đồ bật lên trên vải, và một bảng mục tiêu.Phòng thu - Nhà thiết kếBLISxChào mừng, {first_name}!Được 15% ra lệnh đầu tiênSAVE15Tôi nhận vé của tôiXÂY ĐÃNướcMỹ, CATắtMục đích thoátChia A/B50 / 50Xuất bản1Thiết kếKéo các khối trên vải2Mục tiêuQuốc gia, trang, khán giả3ĐIỆNNgười chiến thắng A/B + AI Insight
Nhà thiết kế hình ảnh: một khối bảng màu bên trái, chiến dịch tranh cử của bạn trên vải (ở đây là một cửa sổ ghi phiếu cá nhân bằng cách sử dụng {first_name} và các mục tiêu + xuất bản bảng bên phải.

Bức tranh lớn

Chiến dịch

Sao?

Một đề xuất: một sự quảng cáo, một bảng hiệu, thanh, hình chiếu, toàn màn hình, đường thẳng hay địa lý. mỗi người có mục tiêu: bán hàng, chì, đăng ký, chat, khảo sát, thông báo.

Thiết & kế phiên bản

Làm thế nào

Bạn xây dựng một cái nhìn trong biên tập hình ảnh mỗi lần tiết kiệm tạo ra một phiên bản mới, để bạn luôn có thể quay trở lại.

Đang nhắm mục tiêu

Ai

Ai mà thấy được: quốc gia, trang, thiết bị, nguồn giao thông, quay lại với những khách hàng mới, lịch trình, và (với một kết nối) của bạn đăng nhập.

Trình kích hoạt

Khi

Khi nó xuất hiện: ngay lập tức, trong sự chậm trễ, cuộn, trên lối ra-t thổ, khi không có gì, bằng cách nhấn vào, sau N trang, hoặc từ trò chuyện / hoạt động vé.

Phân tích

Kết quả

Ấn tượng sống, click-through, chuyển đổi, một ống dẫn thả xuống, quốc gia / trang/ thiết bị chia cắt, A/B người chiến thắng và một AI am hiểu.

Hãy bắt đầu thăng chức lần đầu tiên 5 bước

1
Bắt đầu từ mẫu hay trống

Mở phòng thu Promotion và click vào chiến dịch mới, hoặc chọn một thiết kế đã được làm sẵn từ phòng trưng bày mẫu.

2
Thiết kế nó

Kéo theo khối, tiêu đề, văn bản, nút, huy hiệu, số liệu, số lượng, đơn, phiếu, băng đĩa, đánh giá, bánh quay. Màu sắc, chuyển tiếp và hiệu ứng 3D với con trượt. Xem thử màn hình / Sổ tay, rồi dùng tự do di chuyển tới bất cứ nơi nào.

3
Cá nhân hóa nó

Ký hiệu gõ như {first_name}, {country} hay {company} Vào thời gian biểu diễn, họ trở thành giá trị thực của khách truy cập.

4
Mục tiêu gây nên

Chọn xem ai (nước, trang, thiết bị, thính giả) và khi nó cháy (tiếng tắt, cuộn, lối thoát). Để lại một quy tắc không có nghĩa là tất cả mọi người.

5
Kiểm tra, sau đó xuất bản

Ấn vào để quét nhanh trước khi bắt đầu chạy, rồi xuất bản trong vài giây và bắt đầu thu thập các phân tích.

Những khối bạn có thể xây dựng

Nội dung

lõi

Hướng, đoạn, danh sách, hình ảnh, biểu tượng, phù hiệu, ngay lập tức, phân chia và định vị, những khối xây dựng của bất kỳ thông điệp nào.

& Gọi tới hành động

lõi

Nút có hành động thật: Mở liên kết, bắt đầu trò chuyện, tạo vé, sao chép phiếu hoặc nhảy vào trang nào đó.

Bắt và thu khẩn cấp

KAlarm

Đếm ngược giờ, mẫu (mail / phone / text), phiếu nhỏ lộ và băng video.

Phản hồi dạng trò chơi

KAlarm

Bánh xe từng cặp, thẻ cào,NPSĐánh giá các ngôi sao và ống dẫn đa bước.

Hiệu ứng bố trí

KAlarm

Cột, thanh tiến trình, chia sẻ xã hội, ve mắt xã hội. Có/không có hai bước, câu đố, và hiệu ứng 3D, độ nghiêng, ánh sáng, sự tinh tế, sự biến thái thủy tinh.

Mã tùy chỉnh

Hãy gõ bất cứ cái nào trong các mục tiêu, đoạn, nút, huy hiệu, danh sách hay trích dẫn.

Các hiệu bài sẵn sàng
From the visit:   {country} {city} {device} {page_path} {utm_source} {referrer}
From your CRM:    {first_name} {last_name} {email} {company} {segment} {lifecycle_stage}
From a connector: {balance_due} {unpaid_invoices}   (logged-in customers only)

Đang xác định mục tiêu...

Địa điểm & quốc gia

Chỉ hiện (hoặc ẩn) các nước được chọn, thành phố hoặc múi giờ thông qua GeoIP. tuyệt vời cho các đề nghị cụ thể vùng hoặc địa lý.

Trang URLs

Giới hạn các trang nhất định bằng / bắt đầu với / chứa / regex, và loại ra các trang quá.

Thiết bị

Màn hình nền, máy tính bảng hay di động, ví dụ một thanh mỏng trên điện thoại di động và một mô hình trên màn hình nền.

Kiểu người thăm

Mới, trở lại, được biết (trong CRM) hay ẩn danh; CRM đoạn, giai đoạn sống, điểm số đầu hoặc ngôn ngữ duyệt.

Nguồn giao thông

By UTM (umm_source, utm_ craign) hoặc tham chiếu trang web e. g. chỉ khách từ một quảng cáo đặc biệt.

& Tần số lịch

Chạy / kết thúc ngày tháng, cửa sổ giờ và bao nhiêu lần một người có thể nhìn thấy nó (trước khi phiên họp, mỗi ngày, sau khi họ đóng cửa / nhấn/ chuyển đổi).

Chia cắt giao thông A/B

Cho xem phần trăm khách thăm và chạy các biến thể đối đầu với nhau; cùng một người luôn thấy cùng một biến thể.

Khán giả (âm thanh)

Với một bộ kết nối được bật, mục tiêu là nhà nước thực hiện tài khoản, ví dụ khách hàng có hóa đơn không thanh toán hoặc những người chủ trương đăng ký dài hạn.

Trình kích hoạt

Hãy chọn cách mà sự thăng tiến xuất hiện: ngay lập tức, sau một sự chậm trễ, trong độ sâu cuộn, khi thoát ra, khi ngồi yên, khi nhấp chuột vào một yếu tố, sau khi xem một số trang, trên đơn-tabandon, hoặc từ hoạt động vé. Nhà phát triển có thể bắn một từ mã lệnh riêng của họ với các nhà phát triển của họ. window.OpsIQPromo.fire('event').

Mục tiêu đăng nhập vào khách hàng ( kết nối)

Đây chính là điều tạo nên OpsIQ Được thăng chức đặc biệt: kết nối một nền tảng như WHMCS (hoặc bất kỳ kết nối nào hỗ trợ khán giả) và studio có thể nhắm vào khách truy cập bằng tài khoản trực tiếp của họ.

1
Bật kết nối khán giả

Dưới sự kết nối, hãy cho phép một người phơi bày sự thật của khán giả (WHMCS Khách hàng được nhận diện một cách an toàn khi đăng nhập vào sân ga đó, OpsIQ Không bao giờ tin một email đánh máy.

2
Thêm vào quy tắc khán giả

Trong mục tiêu chiến dịch của chiến dịch, khán giả, yêu cầu đăng nhập và thêm vào các quy tắc như hóa đơn chưa thanh toán > = 1, đăng ký quá hạn, hoặc tài khoản > 0.

3
Cá nhân hoá với dữ liệu của họ

Dùng những vật như {first_name} hay {balance_due} Một lời nhắc nhở "Bạn có một hóa đơn quá hạn" đã tự viết.

Khán giả đang nhắm đến mục tiêu an toàn: nếu kết nối không thể xác nhận một thực tế (hoặc khách truy cập), thì việc thăng chức sẽ không hiển thị, nên một đề nghị dự luật không bao giờ đạt được người sai. xây dựng kết nối riêng của bạn? xem "Thuyết trình tiếp cận cảm hứng" bên dưới đây.

Thương mại có kết nối ( Siêu năng lực studio)

Bài sản xuất từ cửa hàng của bạn

Dữ liệu sống

Một khối sản phẩm kéo các mục thực (tên, giá, giá bán, hình ảnh, liên kết) thẳng từ WHMCS, WooCommerce, Shopify hay của bạn OpsIQ Đánh dấu "Giữ tươi" và thẻ sẽ cập nhật giá của nó trên bục mỗi giờ trong khi xuất bản.

Chứng nhận

Thẻ

Một khu giảm giá có thể tạo ra mã giảm giá thật trong cửa hàng của bạn ngay khi bạn xuất bản, vì vậy một khách truy cập sẽ luôn hoạt động trong kiểm tra.

Thu nhập trung thực

Phân phối

Lệnh thực sự từ các nền tảng của bạn được so sánh với các chiến dịch hàng giờ (bằng mã giảm giá được sử dụng hoặc bằng email dẫn đầu) vì vậy doanh thu bạn thấy là từ bán hàng thực tế, không phải ước tính.

Chứng minh xã hội thực sự

Tin tưởng

Con bọ điều khiển xã hội có thể dẫn dắt với những mệnh lệnh gần đây."Ada ra lệnh cho người khởi xướng kế hoạch # 2h trước đó"), tên và mục đầu tiên, không bao giờ email hay số tiền.

Thử & đi

Bộ thay đổi biến thể A/B và tự động

Chia giao thông với các biến thể thiết kế; hãy để studio đề cao người thắng cuộc tự động, hoặc giao thông tay cho tên cướp tối ưu mà chuyển khách đến những nơi có bằng chứng.

Chờ một chút.

Hãy cho người đến thăm mà không thấy gì, để chứng minh được chiến dịch này gây ra sự nâng cấp.

Các biến thể đoạn

Mỗi người trong số cử tọa tham gia chiến dịch tương tự (những khách đến thăm xe hơi, xe đẩy lớn, khách hàng trở về), mỗi đoạn có phiên bản riêng.

Kích hoạt thí nghiệm

Nhiều vật thể cũng có thể thử nghiệm khi cần xuất hiện: ngay lập tức chống lại sự ra ngoài, đo từ đầu đến đầu.

Hành trình (hát)

Mục tiêu bởi những gì ai đó đã làm với chiến dịch khác ("Sese chiến dịch A nhưng không thay đổi") để xây dựng chuỗi thăng tiến đa bước.

Thợ trà

Một vị khách nhỏ đến thăm có thể mở cửa trở lại sau khi đóng cửa chiến dịch, nên một màn kịch đóng cửa sẽ không bao giờ được diễn ra tốt đẹp.

Biết chuyện gì đã xảy ra

Ấn vào sơ đồ nhiệt

Thiết kế

Trong nhà thiết kế, bật bản đồ nhiệt để vẽ các nhấp chuột vào mỗi khối của thiết kế của bạn.

Lỗ hổng bước

Xe đạp

Các chiến dịch đa bước cho thấy chính xác nơi mọi người thả xuống, màn hình qua màn hình.

So sánh các chiến dịch

Phòng thu

Hãy cùng nhau thực hiện bốn chiến dịch (những ấn tượng, ấn tượng và sự cải đạo), giá trị tốt nhất được tô sáng.

& Tiêu hóa câu chuyện hàng tuần

Al

Mỗi thứ hai một tiêu hóa đất trong thông báo của bạn;📖Cái nút câu chuyện hàng tuần viết tóm tắt một bản thảo bằng tiếng Tây Ban Nha với những bước tiếp theo bất cứ khi nào bạn muốn.

Làm việc thoải mái

& Ý tưởng phụ lái AI

Tán gẫu với nhân viên phụ trách thiết kế để chỉnh sửa bức tranh ("làm cho hàng tít khẩn cấp, thêm một đếm ngược"), nhận được ý tưởng chiến dịch tranh cử từ dữ liệu giao thông riêng của bạn, dịch một chiến dịch trên khắp đất nước, hoặc tự động-fix một điểm thiết kế thấp.

nhập khẩu Brand Kit

Một lệnh đọc trang web của bạn và đề xuất màu sắc và phông chữ thật sự của bạn; lưu và mỗi người chọn dẫn đầu với chúng.

Ống nhiều màn hình

Bước chặn nhận sự thật trên màn hình: tab cho mỗi màn hình, thêm hay sắp xếp lại màn hình và xem thử tiếp theo.

Hiện diện phiên bản có tên

Tên phiên bản quan trọng (" Ứng cử viên vô hoạt động"), phục hồi lại bất kỳ cái nào, và thấy cảnh báo khi một đồng đội cùng sửa đổi chiến dịch.

Các thước kẻ dải thiết bị

Xem màn hình nền, máy tính bảng và di động bên cạnh nhau trong một khung xem; bật/tắt các thước kẻ điểm ảnh để xác định vị trí chính xác.

Các kênh trang đã máy

Mỗi chiến dịch cũng có thể là một trang đứng cho mã sinh học và hệ thống nhận dạng QR, một chuỗi email nhỏ giọt cho đầu mối bị bắt, hoặc một bản nháp web-pous.

Sự an toàn của tầu Enterprise

Cửa sổ xuất bản đóng băng (thời gian đóng băng thay đổi), một công tắc dừng khẩn cấp, sự chấp thuận, đường dẫn kiểm tra và quay ngược phiên bản.

Tôi có cần thêm mã vào trang web của mình không?+

Không, lời quảng cáo cũng được truyền đi như vậy. OpsIQ Bạn đã cài đặt ô điều khiển. Thiết kế, xuất bản, xong.

Khách sẽ xem đi xem lại một cái bật lên như cũ chứ?+

Không. Đặt các nút tần số (thường phiên chạy / phiên chạy/ ngày, hoặc dừng lại sau khi đóng, nhắp hay chuyển đổi). Mặc định nhạy được áp dụng.

Ai có thể xuất bản?+

Việc xuất bản, tạm dừng, thu gọn và quay lại chỉ dành cho chủ nhân không gian làm việc và quản trị đầy đủ.

Tăng & tăng trưởng SEO

Trình thiết kế xúc cảm

Nhà thiết kế xúc tiến là một biên tập viên có đáp ứng cho việc xây dựng, duyệt lại, phiên bản và xuất bản một kinh nghiệm chiến dịch.

Màn hình sản xuất
Trình thiết kế xúc cảmNhà thiết kế kết hợp một bức tranh trực tiếp, xem thử thiết bị, khối gạch, biến số cá nhân, lời bình luận và lịch sử phiên bản.Trình thiết kế xúc cảmMiền làm việcVIEWPORTMàn hình nềnVEEETv12Quốc giaNhápQUAN ĐIỂM CÔNG VIỆC SỐNGPhong tỏaTiêu đề, phương tiện truyền thông và CTASửaĐề nghị khốiTính và hạn chótSửaCá nhân hoáBiến số liên lạc và chiến dịchChào.Kiểm tra khởi độngChú thích và hợp lệ hoáôn lại1BUILD BLOCKSSửa bố trí sống2TRONG CÀIMàn hình nền, máy tính bảng, di động3PUBLISHBản phát hành
Nhà thiết kế kết hợp một bức tranh trực tiếp, xem thử thiết bị, khối gạch, biến số cá nhân, lời bình luận và lịch sử phiên bản.

Dùng khối để soạn thảo kinh nghiệm, xem thử mỗi ô xem được hỗ trợ và chèn các biến số cá nhân đã được chấp nhận. Xem lại lời bình luận và chứng minh AI- Yed trước khi khởi động. Đang lưu tạo phiên bản để có thể kiểm tra hoặc phục hồi thiết kế trước.

Tăng & tăng trưởng SEO

Mẫu tiến triển

Các mẫu cung cấp một phòng trưng bày có thể tìm kiếm, phân loại cho các chiến dịch quảng cáo.

Màn hình sản xuất
Mẫu tiến triểnBộ lọc biểu mẫu bố trí cao cấp và áp dụng màu vùng làm việc khi mẫu trở thành bản nháp.Mẫu tiến triểnMiền làm việcGregoryChuyển đổiRESULTS24TÊNỨng dụngQUAN ĐIỂM CÔNG VIỆC SỐNGThoát ra đề nghịTiến hành khẩn cấp và trung tâm điều khiểnXem thửKhách mới chào mừngBiểu ngữ và danh sách các lợi íchXem thửKhởi động sản phẩmAnh hùng, bằng chứng và đếm ngược.Xem thửYêu cầu trả lờiPhím tắtXem thử1FILTERPhân loại và tìm kiếm2TRONG CÀIXem xét toàn bộ thiết kế3USETạo một bản nháp có nhãn
Bộ lọc biểu mẫu bố trí cao cấp và áp dụng màu vùng làm việc khi mẫu trở thành bản nháp.

Tìm kiếm hoặc lọc theo loại, tải thêm kết quả, xem trước trải nghiệm hoàn chỉnh, rồi chọn Dùng mẫuChiến dịch mới này vẫn còn là một bản nháp và có thể được thay đổi trong Promotion Design trước khi xuất bản.

Tăng & tăng trưởng SEO

Những người phân tích xúc động

Những tác phẩm phân tích xúc động kết nối ấn tượng và click vào sự cải đạo, bối cảnh khán giả, kết quả hành động liên kết và vận động học tập.

Màn hình sản xuất
Những người phân tích xúc độngNhững người phân tích xúc động cho thấy hiệu suất tiêu đề, khán giả và kích hoạt sụp đổ, dẫn đầu xuất khẩu và kết quả hành động kết nối.Những người phân tích xúc độngMiền làm việcIMPRESSIONS42.8kCTR6.4%CONVERSIONS814QUAN ĐIỂM CÔNG VIỆC SỐNGNướcVương quốc Anh % 2 31%Ngắt kết nốiTrang/pricing · 22%Ngắt kết nốiTắtThoát khỏi ý định thứ 2 44%Ngắt kết nốiHành động kết nốiĐồng bộ tạo · 97% Thành côngKết quả1ĐIỆNẢnh hưởng đến việc cải đạo2SLICETrang, đất nước, thiết bị3LEARNÁp dụng sự thông sáng
Những người phân tích xúc động cho thấy hiệu suất tiêu đề, khán giả và kích hoạt sụp đổ, dẫn đầu xuất khẩu và kết quả hành động kết nối.

Đọc ấn tượng, click- lock và chuyển đổi cùng nhau. Ngắt kết quả theo quốc gia, trang, kích hoạt và thiết bị; xuất khẩu bị bắt khi cần thiết. Kết quả hành động kết nối hiển thị việc tiếp tục tiến hành với nhau. Khả năng nhận thức và học tập nên được xem như là giả thuyết để xác thực, không phải tự động bằng chứng.

Tăng & tăng trưởng SEO

Thông báo

Thông báo xuất bản thông báo trong vùng ô điều khiển với mục tiêu, thời gian biểu và cuộc gọi hành động tùy chọn.

Màn hình sản xuất
Thông báoBiên tập viên thông báo bao gồm nội dung, CTA, khán giả, phân đoạn, quy tắc trang, ngày tháng hoạt động và phong cách hình ảnh.Thông báoMiền làm việcDỐI3AUDIENCEĐoạn thẳngSCHY - LƠJul22–29QUAN ĐIỂM CÔNG VIỆC SỐNGTựaBảo trì có kế hoạchChào.Nội dungGhi nhớ thư gửi xuốngChào.CTAĐọc cập nhậtTùy chọnQuy tắcĐang di chuyển trang web # 2 khách hàng đang hoạt độngMục tiêu1WRITETiêu đề và Đánh dấu2Mục tiêuKhán giả, đoạn văn, trang3SCHY - LƠCửa sổ hoạt động
Biên tập viên thông báo bao gồm nội dung, CTA, khán giả, phân đoạn, quy tắc trang, ngày tháng hoạt động và phong cách hình ảnh.

Chọn tất cả các khách tham quan, đã ký hoặc mới du khách; tùy chọn thu hẹp khán giả bằng một đoạn liên lạc và quy tắc trang. Đặt ngày tháng từ/ hoạt động đến cờ. Trình diễn kiểu dáng sẵn sàng và màu thay đổi màu sắc nhưng không thay thế nội dung rõ ràng.

Tăng & tăng trưởng SEO

Đẩy các chiến dịch

Đẩy các chiến dịch gửi thông báo của trình duyệt đến những vị khách đăng ký sau khi họ rời khỏi trang web.

Màn hình sản xuất
Đẩy các chiến dịchNgười soạn nhạc thúc đẩy hiển thị đăng ký với, nội dung, phương tiện truyền thông, hành động, quy tắc mục tiêu và trạng thái thời gian biểu.Đẩy các chiến dịchMiền làm việcSUBSCRIBERS8,214TRONG LED31.6kCLICK RATE5.8%QUAN ĐIỂM CÔNG VIỆC SỐNGTựaXe đẩy của anh đang chờ.Chào.ThânHôm nay anh sẽ trở lại để giao miễn phí.Chào.CTAMở xeChào.LịchGửi ngay bây giờ hoặc lịch trìnhNháp1PREPARE PUSHTiêu đề, cơ thể, biểu tượng2Mục tiêuKhán giả, đoạn văn, trang3SENDBây giờ, lịch hay bản nháp
Người soạn nhạc thúc đẩy hiển thị đăng ký với, nội dung, phương tiện truyền thông, hành động, quy tắc mục tiêu và trạng thái thời gian biểu.

Cấu hình phím đẩy Mạng trước tiên dưới thiết lập truyền hình. Một chiến dịch có thể bao gồm tiêu đề, cơ thể, biểu tượng, hình ảnh anh hùng, phù hiệu CTA và lên đến hai nút hành động; thông báo bền bỉ vẫn còn cho đến khi khách truy cập tương tác.

Mục tiêu của thính giả, phần liên lạc tùy chọn và quy tắc trang. Lưu một bản nháp, lịch trình hoặc gửi ngay. Dùng số đo dài hạn để đánh giá HTTPS và một công nhân dịch vụ đúng được yêu cầu vào địa điểm phần ba nhúng; xem thử Mạng đẩy trên trang mạng của phần ba.

Tăng & tăng trưởng SEO

Thông điệp chủ động

Thông điệp tích cực với ra tự động ngay khi hành vi của khách truy cập khớp với một quy tắc trước khi họ hỏi. bạn xây dựng mỗi một quy luật với ba phần: những gì nên xảy ra, khi nó nên bắn, và bao nhiêu lần tất cả mọi thứ được đưa ra thông qua các bộ phận. OpsIQ Ô điều khiển đã vào trang web của bạn.

Hoạt động
Thông điệp chủ độngMột nhà soạn nhạc chủ động ở ba phần: chọn một hành động (ra dấu, tham quan, đẩy, email), thêm điều kiện, và đặt độ nguội tần số.Thông điệp chủ độngMiền làm việc1 Hành độngTin nhắn thoạiBiểu ngữDu lịchĐẩyThư điện tử2 · Điều kiệnpage = /pricingthời gian nơi trang > 20sQuay lại3_ Tần sốMỗi phiên chạy một lầnTrạng thái1LùiTán gẫu, biểu ngữ, email, đẩy...2CONDITIONSTrang, thời gian, điểm, quay lại3FGENCYHạ nhiệt một vị khách
Mỗi quy tắc chủ động là ba lựa chọn: điều xảy ra (tiếng vỗ tay, cờ hiệu, du lịch, kéo, email, cây móc), khi (điều chỉnh) và thường xuyên ( điềm tĩnh).

3 phần của 1 quy tắc

1
Điều gì nên xảy ra (hành động)

Hiển thị bong bóng chat hoặc băng cờ trên trang, bắt đầu một tour hướng dẫn, gửi một tập tin hoặc email, được chỉ định cho một bộ phận, hoặc bắn một cây cắm web. {{visitor_name}} và {{page_title}} trở thành những giá trị thực sự.

2
Khi nào nó nên bắn (cấu)

Thu nhỏ kích hoạt nó: trang/URL Thời gian trên trang, độ sâu cuộn, điểm chì, điểm dẫn đầu, điểm trở về với các điều kiện mới, không có điều kiện, các quy tắc cháy cho mỗi khách truy cập.

3
Bao nhiêu lần (tiểu số)

Đặt sự nguội đi để cùng một người không bị quấy rầy, ví dụ một lần mỗi phiên họp hoặc một lần trong ngày. Mỗi quy tắc có trạng thái bật/tắt.

⚠️
Không gian làm việc bật/tắt quy tắc giờ cho phép các hành động cạnh máy chủ (mail, đẩy, kết nối, nethook) bắn vào một chương trình liên lạc đã biết hiện không có trên trang đó, vì vậy bạn có thể tự động "mail gửi thông điệp nóng không hoạt động". Nó cần thiết để tự động thực hiện. OpsIQ Bỏ nó đi nếu bạn chỉ muốn được đưa lên trang web.
Nó có cháy cho mọi người không?+

Chỉ khi bạn thêm điều kiện, không thêm điều tiết. Thêm ít nhất một điều kiện (trang, điểm dẫn, điểm quay về...) để nhắm đúng vị trí khách.

Những điều này liên quan thế nào đến các dòng chảy và lưu động?+

Họ làm việc cùng nhau: một quy tắc chủ động có thể bắt đầu một tour hướng dẫn, và một luồng Chatbot có thể được kích hoạt bởi một quy luật chủ động. bắt đầu với một quy định thông tin duy nhất để truyền đạt cho người khác, sau đó là lớp tiếp theo.

Tăng & tăng trưởng SEO

Chatbot

Chatbot chảy các cuộc đối thoại trong ô điều khiển chat (tham số, câu trả lời từ khóa, đường dẫn) không có mã. Dòng chảy là một tập hợp các bước kết nối (nodes): bạn hỏi một câu hỏi, khách truy cập chọn một tùy chọn, và dòng chảy gửi chúng xuống chi nhánh tương ứng. Chỉ dòng chảy hoạt động chạy trên trang web của bạn.

Nó hoạt động thế nào?
ChatbotMột bức tranh dòng chảy: một nhánh cây chào mừng thành ba nút chọn lựa, mỗi cái dẫn tới bước tiếp theo, tìm thứ tự hoặc bàn tay với con người.Chào mừngTôi giúp được gì?Theo lệnh tôi.Hỏi đặt raNói chuyện với con ngườiTìm kiếm lệnh→Đặc vụ loài người.Triggers: Chào mừng · Keywoct_· Sổ tay · After-details_ * On-chat-end
Chatbot

Chảy chống lại AI_· khi nào dùng

Dùng dòng chảy

Khi con đường có thể đoán trước được và bạn muốn nó giống nhau mỗi lần: đặt chỗ, một pháp sư trả lời, một "kế hoạch nào?", thu thập email trước khi rời bỏ.

Dùng AI

Khi câu hỏi được mở ra, "Nó có hoạt động với thiết lập của tôi không?".

Trình kích hoạt

Chào mừng

Chạy như là lời mở đầu khi khách truy cập lần đầu tiên mở đầu cuộc trò chuyện.

Từ khoá

Chạy khi kiểu khách truy cập bạn liệt kê (v. d. hoàn lại, giá trị, hủy bỏ).

Sau chi tiết / Sau khi trễ

Bắt đầu khi có thông tin liên lạc, hoặc thời gian nhất định để trò chuyện.

Trên chat / tích cực

Chạy khi chat kết thúc (v. d. đánh giá), hoặc bắt đầu bởi một quy tắc thông điệp tích cực.

Xây dựng một trong bốn bước

1
Tạo dòng

Nhấn vào luồng mới, đặt tên nó, chọn kiểu kích hoạt (và từ khoá nếu từ khoá), lưu. Nó sẽ tắt.

2
Mở vải ra.

Nhấn vào Edit Canvas. Trình tạo hình thị giác nơi bạn thêm các bước ( thông báo, câu hỏi với nút, chi nhánh) và kết nối chúng.

3
Thêm chi nhánh và một tay ra

Để chọn lựa, hãy vẽ một chi nhánh để bước tiếp theo, kết thúc các con đường bằng cách giải quyết, giao cho AI hoặc chuyển đến một người.

4
Bật nó

Nhấn vào Bật. Dòng chảy sẽ được truyền trực tiếp trong ô điều khiển của bạn ngay lập tức. Tắt bất cứ lúc nào mà không mất thiết kế.

Có dòng chảy nào thay thế AI không?+

Chúng chạy từng bên một sử dụng dòng chảy cho các đường đi có thể đoán trước và AI cho các câu hỏi mở; dòng chảy luôn có thể giao tiếp cho cả hai.

Tăng & tăng trưởng SEO

Những chuyến du lịch dẫn đường

Du lịch dẫn đường là những bước đi xuyên qua từng bước từng trang một với bong bóng tiếng nói và ánh sáng, hướng dẫn khách truy cập qua các chuyến bay hoặc một tính năng mới.

Nó hoạt động thế nào?
Những chuyến du lịch dẫn đườngMột trang bị mờ với một vòng ánh sáng xung quanh một nút bổ trợ lý tưởng và một cầu thủ đọc bong bóng lời 1 Tháng Ba 4 với một cái nút tiếp theo.+ Thêm giao thứcKhông có 1 Tháng Mười 4Tạo giao kèo đầu tiênNhấn vào đây để thêm một thỏa thuận vào đường ống dẫn của bạn.Tiếp theo→
Những chuyến du lịch dẫn đường

Làm sao mà một chuyến du lịch được xây dựng

Bước

Mỗi bước nhắm vào một yếu tố và hiển thị một bong bóng với văn bản của bạn. thêm nhiều điểm dừng như các nhu cầu đi qua và đặt hàng chúng.

Định sẵn & sắc thái

Bắt đầu từ một bộ sẵn hoặc thiết kế bong bóng riêng (các màu, dốc, chiếu sáng) với một ô xem thử trực tiếp bên phải.

Tắt

Hãy liên kết một quy tắc chủ động để chuyến du lịch khởi động tự động khi mà quy tắc đó cháy (v. d. một cuộc viếng thăm đầu tiên của khách truy cập).

Đổi cỡ hoạt động

Một chuyến tham quan chỉ đủ điều kiện để chạy khi được chọn. Bỏ qua để gỡ nó xuống mà không làm nó bị xóa.

Xây dựng một trong bốn bước

1
Chuyến đi mới

Hãy nhấp vào mục 'Chuyến đi hướng dẫn mới', đặt tên nó, và liên kết theo cách tùy chọn một quy tắc tích cực để nó tự động bắt đầu.

2
Thêm bước

Thêm mỗi điểm dừng: chọn phần tử nó chỉ vào và viết văn bản bong bóng. Sắp xếp lại cho đến khi con đường chảy.

3
Thiết kế nó

Tự chọn vị trí sẵn hoặc kiểu bong bóng. Xem thử trực tiếp cho thấy chính xác những gì khách xem.

4
Kích hoạt

Chuyến đi bây giờ có thể chạy, bằng ngòi nổ của nó hoặc bắt đầu bằng một quy tắc thông điệp tích cực.

Chuyến đi bắt đầu thế nào?+

Khi họ đã kích hoạt, hoặc thông qua một quy tắc "Chuyến đi" của tổ chức, vì vậy bạn quyết định xem khách nào và khi nào.

Tăng & tăng trưởng SEO

Chuyển đổi mục tiêu

Mục tiêu phiên dịch biến một hoạt động mà bạn quan tâm (một sự kiện webok đang tiến hành, một tin nhắn chat, một độ phân giải vé) thành một chuyển đổi được ghi lại hoàn toàn. OpsIQ ghi lại sự chuyển đổi từ liên lạc và kết nối nó trở lại với các chiến dịch, phân đoạn và nguồn tin dẫn đến đó.

Nó hoạt động thế nào?
Chuyển đổi mục tiêuMột dòng chảy mục tiêu: một sự kiện trả tiền. Sau đó lưỡi câu được thành công, giá trị chuyển đổi "purchase" đã ghi nhận $49 Được quy cho nguồn gốc và chiến dịch của nó, với những con chip tiền chế ở trên cao.Mau bắt đầuStripeMuaĐã đặtĐăng ký bằng tin tứcpayment.succeededmóc nối tới mục đíchChuyển đổi"purchase" . $49Thuộc tínhChiến dịch nguồn ·
Chuyển đổi mục tiêu

Định nghĩa mục tiêu trong ba bước

1
Chọn hoạt động kích hoạt

Nhấn vào mục tiêu chuyển đổi mới. Chọn kiểu hoạt động mà tính là chuyển đổi, hoặc sử dụng định sẵn chạy nhanh,StripeMua hàng, đặt bàn làm chứng, đăng ký tin tức hoặc gửi thư dưới quyền bắt đầu.

2
Tên và giá trị

Cho người dịch tên (purchase, demo_booked, đăng nhập) và tùy chọn một giá trị cố định và cửa sổ xác nhận.

3
Lưu

Giữ lại và bật. OpsIQ Ghi lại sự cải đạo chống lại việc tiếp xúc với những người được cho là đã chạm vào trước.

Các mục tiêu đã được nối vào các lưỡi hái đang dùng: bất kỳ mục tiêu nào có kích hoạt khớp với lửa kiểu sự kiện đang tiến tới tự động khi sự kiện hạ cánh. Hãy dùng trang Mạng mở khóa để kết nối.Stripe, Calendly hoặc bất kỳ hệ thống nào có thể PSTJSON.
Điều gì có thể là sự cải đạo?+

Bất kỳ hoạt động nào được ghi âm: một sự kiện nút chọn trang web (được trả tiền. Có thể thành công), thư điện tử chat, độ phân giải vé, bất cứ điều gì trên dòng thời gian liên lạc.

Phân tích

Bảng điều khiển tự chọn

Bảng tự chọn cho phép bạn xây dựng quan điểm riêng về các số đo quan trọng, thay vì chỉ dựa vào giám sát chuẩn. Thêm các thiết bị cần thiết.

Bảng điều khiển tự chọn
Bảng điều khiển tự chọnMột máy tạo bảng điều khiển với các miếng đệm KPI và biểu đồ ô điều khiển, một vùng thả lao động tiêu tan, và một nút Thêm- phụ tùng.Bảng riêngMiền làm việcBảng điều khiển của tôiThêm ô điều khiểnVÀI NGƯỜI TRONG LINH2,481Ô - hô - va$8.2kTRÌNH TRỞKéo ô điều khiển vào đâyTRANG/pricing/docs/signup1ADD WIDGETSChọn & biểu đồ mét2ARRANGEKéo & phóng to3SweREVới đội của anh
Xây dựng bảng riêng: thêm KPI, biểu đồ và danh sách ô điều khiển, kéo và thay đổi kích cỡ chúng thành bố trí bạn muốn, rồi chia sẻ nó với nhóm.

Xây dựng một trong ba bước

1
Thêm ô điều khiển

Nhấn vào Thêm Ô điều khiển và chọn biểu đồ hay biểu đồ bạn muốn theo dõi. Nhắc lại mọi thứ bạn muốn trên bảng.

2
Sắp xếp bố trí

Kéo thiết bị để thay đổi kích thước và kéo cạnh của chúng để thay cỡ. KPIs ở trên cùng, biểu đồ bên dưới.

3
Lưu & chia sẻ

Lưu bảng điều khiển và chia sẻ nó với đội của bạn để mọi người đều xem cùng một số.

Giữ các bảng riêng biệt cho công việc riêng biệt (một bảng "nhìn trực tiếp" với số lượng thực, và bảng đánh giá hàng tháng với biểu đồ xu hướng) vì vậy mỗi người giữ tập trung.
Tăng & tăng trưởng SEO

Những chiến dịch vượt quá quyền hạn

Là ngoại biênOpsIQCủa1:1và động cơ lớn email: soạn thảo một thông điệp cá nhân hoặc thực hiện một chiến dịch cho a CRM Nó được đồng ý và có khả năng điều khiển thời gian, mở/click theo dõi, theo dõi điểm ảnh và xác định một nút.

Mở rộng
Những chiến dịch vượt quá quyền hạnMàn hình Outreach với các trình soạn thảo/Campaigns/Tembetes/Replies tab và một bảng chiến dịch hiển thị, mở rộng và đánh giá lại.Mở rộngMiền làm việcChiến dịchTrình soạn thảoMẫuCác đối sốCHÍNH THỨCTRONG LEDMởCÀI LẠITin tức tháng Sáu1,20048%7%Tiếp tục thử ra34062%14%Lấy lại82039%5%Phát hiện tự động ngừng theo sau / 1 nhấn chuột vào mỗi gửi11:1 & BULKTạo tác hay vận động tranh cử2TRACKEDMở, nhấn, trả lời3COMPLIANTHung thủ được gắn vào
Động cơ ngoài rồi: gửi1:1hoặc vận động chiến dịch đến một phần, theo dõi mở và trả lời, và giữ liên lạc với các giả định tích lũy và phát hiện trả lời.

4 trang

Trình soạn thảo

Viết một bản thân1:1Email với {tokens} Từ liên lạc và CRM.

Chiến dịch

Gửi tới một CRM phần, lịch hay bây giờ, với nắp và điều khiển thời gian.

Mẫu

Các mẫu thông điệp phục hồi được cho việc tiếp cận nhiều lần.

Các đối số

Trả lời các câu hỏi của người phát hiện và dừng xe lại bất cứ ai trả lời.

Chiến dịch vận hành thế nào

1
Chọn một khán giả

Chọn một phân đoạn CRM (hoặc tải lên danh sách). Tự động áp dụng ức chế và đồng ý.

2
Trình soạn thảo

Viết thông điệp với những biểu tượng cá nhân; xem trước khi gặp người thật.

3
& Gửi lịch

Gửi ngay bây giờ hoặc vào thời điểm tốt nhất. Một hồ sơ theo dõi mở; click và trả lời được gán cho các tính năng.

Ra ngoài được chấp thuận và bị đàn áp, bao gồm một hung thủ 1 click vào mỗi gửi, và theo CEPM / CASL. replies tự động dừng tiếp tục theo sau.
Phân tích

Đã lên lịch báo cáo

Báo cáo thời gian biểu email một bộ đo lường đã chọn để chọn người nhận theo lịch (một ngày, hàng tuần hoặc tháng) như là một nhãn trắng in được PDF Hãy đặt nó một lần và báo cáo hạ cánh trong hộp tự động thông qua OpsIQ Cron.

Đã lên lịch báo cáo
Đã lên lịch báo cáoMàn hình thời gian biểu: bảng báo cáo với lịch trình của họ, người nhận và thời gian cuối cùng, cộng với một nút "bảo tồn-tin".Các báo cáo đã lập lịchMiền làm việcĐã lên lịch báo cáo+ Lưu báo cáoBáo cáoSCHY - LƠCÂU HỎILENTGiao thông hàng tuầnMon9:00[email protected]2d trước đâySEO báo cáo kháchHàng tháng[email protected]Jun1Tổng kết bán hàngNgày[email protected]todayĐược chuyển đi như một nhãn hiệu trắng PDF thông qua OpsIQ cron1AUTOMATEDNgày· tuần / tháng2CÒI BÁNPDF khách3CÂU HỎIĐã thư theo lịch trình
Đặt báo cáo một lần (bộ đo đạc, phạm vi, lịch trình, người nhận) và OpsIQ email một nhãn trắng PDF Tự động trên thanh quản của bạn.

Cấu hình báo cáo

1
Chọn những gì cần gửi

Chọn tập hợp chỉ số (thông tin truy cập, SEO, bán hàng, hỗ trợ...) và khoảng thời gian.

2
Đặt & người nhận thời gian biểu

Hàng ngày, hàng tuần hay tháng, vào một thời điểm bạn chọn, cho một hoặc nhiều người nhận email.

3
Lưu

Lưu và bật tùy chọn này. Báo cáo tạo ra và gửi thư đến trình theo thời gian biểu, không có bước thủ công.

💡
Các báo cáo đã được lên lịch chạy qua các OpsIQ cron, nếu báo cáo không đến, hãy xác nhận rằng cái cron đang chạy (xem Cron và tự động hóa).
Riêng tư

Tự & tuân theo

Trang riêng tư và tương thích là một nơi để hiển thị một thính giả bạn xử lý dữ liệu cá nhân có trách nhiệm: sổ cái đồng ý, bản ghi truy cập quảng cáo, chính sách định cư và lưu trữ dữ liệu, và sẵn sàng in DPA, trong ô xem thẻ tab. Chỉ quản trị đầy đủ mới mở được nó.

Tự & tuân theo
Tự & tuân theoMàn hình & tương thích: thẻ cho sổ cái hợp đồng, danh sách truy cập, độ bảo thủ và DPA Với một bảng tài trợ bằng sổ cái và thu hồi bởi kênh.Tính & riêng tưMiền làm việcThư mục hợp lệBản ghi truy cậpĐộ chịu đựngDPACÔNG VIỆCCHANELLùiĐÃ[email protected]Thư điện tửChấp nhậnJun12[email protected]pushHoàn nguyênJun10[email protected]marketingChấp nhậnJun9Có thể tìm bằng chứng của mọi khoản trợ cấp chấp thuận và thu hồi, theo kênh1TIẾNG ĐÃ TRỞBằng chứng của mọi khoản trợ cấp2ACCESS LOGAi chạm vào dữ liệu3DPAMẫu in được
Một màn hình nghe sẵn sàng: một sổ cái tìm kiếm có thể tìm (các tài liệu vi phạm/ các phím tắt qua kênh), một bản ghi truy cập của những người đã chạm dữ liệu, thiết lập cư trú/ lưu, và một khả năng in được DPA.

4 trang

Thư mục hợp lệ

Một hồ sơ tìm kiếm của mọi khoản trợ cấp chấp thuận và hủy bỏ, bằng liên lạc, kênh (mail, Push, kết nối, tin nhắn, hành động, nguồn và ngày tháng. Bằng chứng liên lạc của bạn đồng ý (hoặc rút lui).

Bản ghi truy cập

Người trong đội của bạn xem, chỉnh sửa, xuất khẩu, xóa hoặc gửi dữ liệu liên lạc với quảng cáo, liên lạc, hành động, nói lý do và IP Chính xác những gì một người điều hành yêu cầu.

& Bảo tồn lại hiệu ứng

Khai báo nơi dữ liệu không gian làm việc này sống, thiết lập bao nhiêu ngày hoạt động hàng được lưu giữ (0 = vĩnh viễn), và ghi lại bộ điều khiển dữ liệu của bạn và DPO.

DPA mẫu

Một tiến trình xử lý dữ liệu có thể in được Thêm vào phần mở rộng chứa trong bộ điều khiển, địa chỉ, DPO, cư trú và lưu lại của bạn. In hay lưu như PDF.

Hai cặp tương thích & riêng tư với studio chấp thuận cookie (mà thu thập sự đồng ý) và trang Xuất (mà tạo ra bản sao dữ liệu cho a DSAR Cũng xem Cron và tự động hóa để dọn dẹp vào ban đêm.
Trình kết nối

Kết nối nền tảng của bạn

Liên kết OpsIQ đến các nền tảng bên ngoài: cửa hàng điện tử, hệ thống hóa đơn, bộ xử lý thanh toán, nhà cung cấp thư điện tử và tùy chỉnh APIs Một khi đã kết nối, AI có thể tìm kiếm các đơn đặt hàng, dữ liệu khách hàng, đăng ký dài hạn, và nhiều hơn nữa, và hành động với sự chấp thuận của bạn.

Nó hoạt động thế nào?
Trung tâm kết nốiOpsIQlõi kết nối đếnWHMCS, Shopify, Stripe, WooCommerceTheo hồ sơ Google Business, thì có liên quan đến nhau.WHMCSShopifyStripeWooCommerceSendGridBản mẫu:Google BPOpsIQCORE1PLUG IN25+ bộ nối đã xây dựng sẵn2AI CONTEXTDữ liệu nền tảng thật3ACTIONSXong việc với sự chấp thuận của anh rồi.
Trình kết nối

Những chiếc tàu cóOpsIQ

Những thứ này hiện diện ngay khi bạn cài đặt và chỉ cần có giấy ủy quyền của chúng.

WHMCS

Thanh toán

Kế hoạch tổ chức mạng: khách hàng, dịch vụ, vé, hóa đơn, miền, máy chủ.

Shopify

Thương mại điện tử

E-commerce: mệnh lệnh, khách hàng, sản phẩm, hàng tồn kho, thanh toán, móc kéo.

WooCommerce

Thương mại điện tử

WordPress Lệnh, khách hàng, sản phẩm, phiếu giảm giá, vận chuyển.

WordPress

Bộ phát âm

Nội dung và người dùng trên aWordPresstrang web.

Hình vuông

Trả tiền

Tiền và điểm bán: mệnh lệnh, khách hàng, danh mục.

osCommerce

Thương mại điện tử

Di sản di truyền: mệnh lệnh, khách hàng, sản phẩm.

Khách sạn Botble

Cầu nối

Một khu vực khách sạn Boble CMS thông qua các chữ kýOpsIQĐài chỉ huy, tham khảo thực hiện cho một nền tảng khôngAPI.

Zendesk

Hỗ trợ

Trợ giúp: vé, người dùng, tổ chức, bình luận.

Hồ sơ kinh doanh Google

Khu chợ

Kinh doanh địa phương: đánh giá, bài viết, Q&A, sự thấu hiểu. OAuth.

Comment

Độ sắc:

Lịch và sự kiện. DùngOAuth.

GmailvàIMAP

Thư điện tử

Hộp thư: hộp thư đang đến và bị hạn chế, đồng bộ địa chỉ.

SendGrid

Thư điện tử

Gửi thư điện tử: gửi email và quản lý mẫu.

Mailgun

Thư điện tử

Gửi thư điện tử: gửi email qua Mailgun.

SlackĐiện tín, đường dây, X DM

Đang gửi tin nhắn...

Các kênh tin nhắn để cập nhật và ra ngoài.

Siêu kênh

Đang gửi tin nhắn...

Tin nhắn Facebook, tin nhắn vô giá trị và mục gì đó.

Tình báo vị trí (GA4 Bàn điều khiển tìm kiếm

Phân tích

Phân tích và tìm kiếm dữ liệu cho SEO phòng ngủ.

Làm giàu web và CRM nhập

CRM

Công ty làm giàu và khách hàng nhập khẩu rất nhiều.

Có sẵn ở chợ

Những gói này được xuất bản, không phải một phần của cài đặt. Cài đặt một từ Converors, Marketplace và nó được sao chép vào thư mục kết nối trực tiếp, sau đó nó hành xử chính xác như những thứ ở trên.

Stripe

Khu chợ

Tiền lương: phí tổn, khách hàng, hóa đơn, dài hạn, tiền thù lao, tranh cãi.

BigCommerce

Khu chợ

E-commerce: mệnh lệnh, khách hàng, sản phẩm, phân loại, thương hiệu.

Magento2

Khu chợ

Lệnh, khách hàng, sản phẩm, phân loại, kiểm kê.

PrestaShop

Khu chợ

Lệnh E-commerce, khách hàng, sản phẩm, quy định xe đẩy, hàng hóa.

OpenCart

Khu chợ

Lệnh, khách hàng, sản phẩm, phân loại.

Amazon SES, Postmark, resend

Khu chợ

Giao thư điện tử.

Jira, tuyến

Khu chợ

Vấn đề là theo dõi dự án.

Zoom, Microsoft Lịch, Comment

Khu chợ

Họp, lịch và thư.

DocuSign, Apollo, SerpApi,Google Analytics

Khu chợ

Dấu, tìm kiếm, tìm và phân tích dữ liệu.

Webflowkhông gian hình vuông

Khu chợ

Các nền tảng website.

💡
Danh sách kết nối được xuất bản khi gói tin có thẩm quyền cho cài đặt « THE _Socket errors »: những gì được liệt kê ở đó là những gì đã chạy giờ, và thẻ Market place (tạp chí) hiển thị những gì bạn có thể thêm.

Đang cài đặt một kết nối

1
Tới các máy kết nối

Chuyển sang Convertor trong thanh bên của Adam.

2
Tìm bộ kết nối

Duyệt danh sách hoặc tìm kiếm. Kết nối được nhóm theo loại.

3
Bật nó

Nhấn vào bộ kết nối và bật lên.

4
Nhập thông tin

Điền vào những cánh đồng cần thiết: API Chìa khóa. URL các vật thể, v.v... mỗi kết nối có những yêu cầu cụ thể được ghi lại trong bảng cài đặt.

5
Thử kết nối

Nhấn "Test Connection." Kết quả xanh có nghĩa là kết nối có thể đạt được nền tảng bên ngoài.

6
Cấu hình các tính năng

Chọn tính năng nào cần bật: đồng bộ kiến thức, đồng bộ webhook, hành động AI. Không phải tất cả các kết nối hỗ trợ mọi tính năng.

Những gì kết nối cung cấp cho bạn

Văn cảnh AI

AI có thể tìm kiếm dữ liệu, đơn đặt hàng, đăng ký và nhiều hơn nữa thông qua kết nối. Khi một cuộc trò chuyện khách hàng, AI có dữ liệu thực sự để tham khảo.

Văn cảnh AlI (các tác giả kết nối)

Trình dự đoán kết nối của bộ cung cấp dữ liệu cho mục danh sách-AI một bản tóm tắt tài khoản chỉ đọc của người sở hữu vé. customer_id khi được biết; nếu không, trên vé-replies, nơi cờ ctx customer_trust_email đúng, hãy tra tài khoản bằng cách customer_email (người gửi vé đã xác nhận) /context/customer-by-email Đây là thứ làm cho AI trích dẫn một bản cân bằng/invos thực sự thay vì nói: "Xin đăng nhập vào.customer_sections, customer_allow_credit) và chỉ đọc sách nghiêm túc, không bao giờ phát ra bí mật.

Thư mục tự chọn (các tác giả kết nối)

Nhận dạng cá nhân của người cung cấp cho 3 trang web tìm kiếm trên toàn cầu: lookupCustomerById() (Tiếng chuông báo) lookupCustomerServices() ( mãn kinh/ dịch vụ bảng) listCustomers($query,$limit): trình chọn "Tìm kiếm khách hàng hay gõ email" trên dạng thức stabry-New-Socket. {id, external_id, name, email, company, phone, platform, platform_label}. Quy tắc ở xa: Nếu khách hàng của bạn sống trong cơ sở dữ liệu hoặc dịch vụ khác, đưa họ trên nền tảng của bạn API bên trong những phương pháp này, không bao giờ đọc trực tiếp các bảng khác (trong OpsIQ Họ là những người giữ chỗ trống, đó là lý do tại sao một người đọc địa phương trả về một bộ chọn rỗng. Cổng từ xa đường dẫn đến cấu hình của bạn API URL; giữ một địa phương đọc chỉ như là một-DB backback.

Vé có ống thư điện tử, phát hiện và định tuyến (các tác giả kết nối)

Khi email tới nơi trở thành một vé bản địa, OpsIQ Phát hiện người gửi qua điện thoại lookupCustomerById(0, ['email'=>$sender]) băng qua mỗi kết nối; que diêm đầu tiên "chủ" khách hàng và của nó platform Cái ốc sên đó được dán trên ticket.created sự kiện _pipe_owner_platform (không có = khách)WHMCS- Thư điện tử thường xuyên mở một vé vào WHMCS (WHMCS Số lượng, được phản ánh như một), trong khi một người gửi lạ mặt vẫn là khách của người bản xứ. Nếu các bạn có thể đặt vé máy tính lên nền tảng của nóAnh... ticket.created Người quản lý phải mở cổng vào: if (array_key_exists('_pipe_owner_platform',$payload) && $payload['_pipe_owner_platform'] !== '<your-slug>') return;. Phím khóa không có trên vé không có kèn (không phải máy / máy tính/ ngôn ngữ / AI), vì vậy những gương như trước đây.→Mở vé qua email (chỉ / khách hàng/ Off).

Hành động

AI có thể thực hiện hành động thông qua kết nối: tạo vé, yêu cầu cập nhật, hủy đăng ký, tất cả với sự chấp thuận của bạn thông qua Lớp Tin cậy.

Hiểu biết

Những người kết nối đã đóng góp những bài báo kiến thức đặc biệt cho AI. Shopify Kết nối thêm vấn đề liên hệ điện tử; WHMCS Kết nối bổ sung kiến thức chủ trì.

Nhập cơ sở dữ liệu (các tác giả kết nối)

Nếu các chủ thể của bạn là một cơ sở kiến thức, hãy tuyên bố một kb_capabilities khối settings.json (kiểu kb_source) và kết nối của bạn xuất hiện trong bộ biên tập Trung tâm Trợ giúp Nhập KB→Name & Bỏ xuống khi nó được bật và cấu hình trong vùng làm việc. Nó có tính chất cắt giảm, không có phương pháp để thực hiện: tên một phần đã xây dựng adapter (zendesk Trung tâm Trợ giúp cây chính xác API, hoặc crawl cho bất kỳ nơi Mạng KB) và a base_template như https://{subdomain}.zendesk.com, mà OpsIQ Điền đầy từ thiết lập lưu trữ kết nối của bộ trình duyệt. Không bao giờ rời khỏi máy phục vụ; trình duyệt chỉ gửi các viên đạn kết nối. Để hỗ trợ một nền tảng mới, thêm opsiq_kb_<platform>_manifest() Người thích nghi và tham khảo tên nó. connectors/PLATFORM_CONNECTORS.md §5.

Webhooks

Một số kết nối đăng nhập vào các móc nối với nền tảng bên ngoài cho thông báo sự kiện thời gian thực (các lệnh mới, bản cập nhật vé, v. v...).

Theo dõi bán hàng

Các kết nối điện tử cung cấp dữ liệu thu nhập vào bảng điều khiển cho việc tuyên bố và phân tích.

💡
Các bộ kết nối có kính hiển vi không gian làm việc. Mỗi không gian lao động có thể có các kết nối khác nhau được bật với các cấp ủy nhiệm khác nhau. A WHMCS Không gian làm việc sử dụng WHMCS kết nối; a Shopify Không gian làm việc sử dụng Shopify Kết nối.
Tôi có thể dùng nhiều thiết bị kết nối cùng lúc không?+

Có, anh có thể.Shopifycho mệnh lệnh vàStripedữ liệu của AI kết hợp từ tất cả các thiết bị kết nối có khả năng.

Nếu nền tảng của tôi không được liệt kê thì sao?+

Dùng bộ xây dựng kết nối để tạo một kết nối tùy chọn cho bất kỳ nền tảng nào có hệ thống RTTT API Hoặc kiểm tra khu chợ xem có liên kết cộng đồng nào không.

Làm kết nối hoạt động với tự chủ OpsIQ?+

Vâng, máy kết nối hoạt động giống hệt nhau trong cả các bản sao và tự tạo ra.

Trình kết nối

Hợp đồng bán hàng và hóa đơn kết nối

Mỗi thương mại kết nối sử dụng cùng một hợp đồng sự kiện cơ bản. WHMCS là việc thực hiện tham khảo, nhưng cây cầu SaaS, cửa hàng, nhà cung cấp thanh toán, những người kết nối thị trường và những gói xây dựng phải tuân theo cùng một quy tắc.

Những gì mỗi kết nối thương mại phải công bố

Một sổ cái có thẩm quyền

Publish realised economic events to opsiq_sales_events through CommerceEventRegistry::normalize(). Do not build a connector-specific Sales table or make core analytics query a remote platform directly.

Nhận diện nguồn ổn định

Nền tảng là viên đạn liên kết, như whmcs, shopify hoặc opsiq_saas. mã nguồn giao thông chứa xác nhận giành được khi cung cấp; nếu không, hãy dùng cùng một viên đạn như mặt sau. Lưu bộ nhận diện, không hiển thị nhãn. OpsIQ Giải quyết tên kết nối thân thiện trên UI.

Bất lực

event_id Bản đồ ít nhất một không thay đổi order_ref, invoice_ref hay subscription_ref Vì vậy, webok retries và hậu phương sẽ cập nhật cùng một sự kiện thay vì tạo ra doanh thu sao chép. service_ref Xác định tiến trình hoặc dịch vụ bị ảnh hưởng khi có.

Nhãn thời gian nguồn

phát hiện _at là thời gian thanh toán hoặc giờ đồng bộ kinh tế được báo cáo bởi nền tảng nguồn. Không bao giờ thay thế lịch sử thanh toán bằng thời gian nhập khẩu.

Tiền bạc và FX

Gửi số lượng nguồn và tiền tệ ISO ba chữ cái hợp lệ. Nếu thiết lập kết nối cho máy OpsIQ Việc chuyển đổi FX, báo cáo chuyển đổi sang vùng làm việc báo cáo tiền tệ; nếu không thì báo cáo bảo tồn cửa hàng hay cơ sở hóa đơn tiền tệ. Mật mã kết nối không nhất thiết phải khó mã hoá tiền tệ hoặc tỷ lệ trao đổi.

Xe đạp sống dựa trên bằng chứng

Sử dụng mới, thay đổi, nâng cấp, hoàn trả tín dụng hoặc không rõ. Phân loại từ lý do hóa đơn, đăng ký hay dịch vụ, kiểu hàng- item, hoặc một trường nguồn có thẩm quyền khác. Một việc mua lặp lại của cùng một khách hàng không tự động thay đổi.

Giới hạn bán

Chỉ có những hóa đơn thương mại mới được trả lại, thay đổi mới, nâng cấp, hoặc không biết chính xác thuộc về các cửa hàng bán và cải tạo. Các kho lưu trữ được báo cáo bằng cách hoàn trả lại và chuyển đổi mạng, phân tích âm lượng, tài khoản, tiền trong ví, đầu lên cao, quỹ phụ thêm vẫn còn được tính là các sự kiện in-dearable (trung) và không bao giờ tính như doanh thu, chuyển đổi, số lượng hay doanh thu.

CRM ở riêng

CRMĐây không phải là doanh thu bán hàng, trừ khi có một hệ thống hóa đơn hoặc cửa hàng kết nối phát ra trật tự trả tiền hay hóa đơn thông qua hợp đồng này.

Mỗi tín hiệu thanh toán mở ra hàng

Không phụ thuộc vào một tên sự kiện. Khi bục này gửi một số xác nhận của một khoản thanh toán (tiền đặt hàng, đặt hàng và giao dịch thêm, trả xong) bất cứ người nào trong số họ có thể mở sổ cái khi nền tảng xác nhận việc bán được trả; dấu tay bán sẽ sụp đổ thành một hàng.

Sắp xếp sự hòa giải (sự phối hợp 2.3)

A connector whose platform can list completed sales declares sales_reconciliation and implements SalesReconciliationInterface::reconcileSales(). Core re-reads the platform list on a schedule (once per workspace interval, bounded, cursored) through the same idempotent writer, so a dropped webhook cannot lose revenue. Conformance fails a package that can list history but does not reconcile. The Connector Builder derives the capability from the sales backfill action.

Các chiếu ảnh bị biến dạng

opsiq_conversions và board tóm tắt là các dự án tương thích được xây dựng lại từ sổ cái. Các tổ hợp không nên coi việc chiếu ảnh như là nguồn của sự thật. Các bản sửa đổi có thể đánh giá lại hàng đã lấy mà không xóa lịch sử ẩn.

Giới hạn nền ở xa

Một kết nối từ xa đọc nền tảng của nó thông qua cấu hình xác thực API. Nó không bao giờ phụ thuộc vào các bảng cơ sở dữ liệu cùng máy. Nơi Mạng miền xác thực chính xác được cung cấp bởi « Kết nối Regisry » và cần phải áp dụng cho mỗi thư mục ghi hoặc khung lề. Không gian làm việc hay phạm vi nhóm là chỉ đọc- giờ; nó không cần phải mở rộng quyền sở hữu sự kiện đã lưu.

Ví dụ về sự kiện chính điển

Sự kiện thương mại bình thường hóa
{
  "event_id": "acme_store:invoice:INV-1042",
  "event_name": "invoice.paid",
  "platform": "acme_store",
  "order_ref": "ORDER-884",
  "invoice_ref": "INV-1042",
  "subscription_ref": "SUB-28",
  "service_ref": "SERVICE-91",
  "status": "paid",
  "lifecycle_type": "renewal",
  "amount": 129.00,
  "currency": "USD",
  "traffic_source": "acme_store",
  "occurred_at": "2026-07-23 08:30:27"
}

Bản đồ bộ xây dựng kết nối

Khi bán hàng và hóa đơn được hiệu lực trong « Xây dựng Kết nối », số lượng bản đồ, tiền tệ, tình trạng nguồn và ngày nguồn, cộng thêm ít nhất một thứ tự, hoá đơn hay tham chiếu đăng ký dài hạn. API Hiển thị bằng chứng xác nhận sự sống của xe đạp bán hàng được tạo ra đi qua mọi hàng thông qua cùng một bộ bình thường về thương mại sử dụng bởi những người xây dựng và kết nối thị trường.

⚠️
Tín dụng và Quỹ Thêm được cố tình giữ lại cho các hóa đơn lịch sử, khung cảnh cân bằng khách hàng và phân tích sổ cái. loại bỏ chúng khỏi doanh số không xóa chúng; nó chỉ ngăn cản họ làm việc kinh doanh.

Kiểu xe sống quyết định cái gì sẽ trở thành một CRM Thỏa thuận

lifecycle_type Không phải là nhãn hiệu phân tích.OpsIQđọc nó để quyết định việc bán hàng có đi vào CRM Đường ống dẫn, vậy là mỗi hệ thống bán hàng đều đang quyết định xem nó có muốn hay không.

mới

Mở một thỏa thuận đóng cửa (công việc mới).

Mới, nâng cấp

Không có giao dịch kinh doanh mới nào thay đổi trên đường cong xác suất khác và trộn chúng với nhau làm hỏng cả hai dự báo.

Trả lại, tín dụng

Không bao giờ mở một thỏa thuận, trong bất kỳ cách nào, trả lại tiền cho khách hàng không phải là một chiến thắng.

Bỏ qua / không rõ

Chỉ bán lại, bán được ghi âm nhưng không bao giờ đến được đường ống.

Một lần bán, một hàng sổ cái: danh tính là SALE, không phải sự kiện

Không khớp event_id và tự đưa mình vào. event_id is platform:eventName:externalIdCâu trả lời là “chúng tôi đã xử lý xong vụ giao hàng này và không thể trả lời“ đã thu được vụ bán hàng này rồi, một nền tảng thông báo một khoản thanh toán hai lần — như invoice.paid và một lần nữa như payment.completed — bạc hà hai lần là đất và hai lần cùng một tiền, không có gì để va chạm và không có điều gì cảnh báo.

💡
Tìm thấy trong tham chiếu cài đặt: sáu hóa đơn với ba hàng sổ cái mỗi người, từ ba con đường mật mã bằng ba kế hoạch khác nhau. Tất cả đều được mang theo0.00Vì vậy, không có tổng diện mạo sai, và bất kỳ quá trình phục hồi số lượng thực tế sau này sẽ đếm một khoản thanh toán ba lần.

Gọi những người cùng viết, tính toán danh tính thương mại của họ (sale_fingerprint), trùng với hàng đã có trên nó, bảo tồn bản gốc event_id cập nhật và lọc các cột thật:

Cách duy nhất để viết sổ cái bán hàng
\OpsIQ\Commerce\CommerceEventContract::upsertSaleRow('opsiq_sales_events', $row);
Cùng một cửa hàng, nhiều sự kiện

hóa đơn. Trả, trả tiền. Hoàn tất và bán. hoàn thành cho một hóa đơn chia sẻ một dấu vân tay và cập nhật một hàng.

Các tủ lạnh ở riêng

Tiền đi ra là một sự thật khác từ tiền vào. nên nó không bao giờ có thể ghi đè lên hóa đơn mà nó đảo ngược.

Không tham chiếu, không có dấu vân tay

Một hàng không mang theo thứ tự, hóa đơn, đăng ký hay dịch vụ không có dấu vân tay, nên hai hàng không liên quan không bao giờ va chạm chỉ vì cả hai đều thiếu một chứng minh.

Ưu tiên tham khảo

hóa đơn_ref, rồi đặt hàng_rev, rồi đăng ký_refid_reff, rồi dịch vụ_reef — mạnh nhất, vì vậy một người bán giữ được danh tính ổn định.

Sổ cái là chỉ phụ thêm: không bao giờ viết lại một cửa hàng

Một hoàn trả, một hủy bỏ hoặc sửa chữa là một Mới vàoKhông bao giờ đột biến hàng, nó sửa chữa.

Nó phá hủy doanh thu kinh tế

Giá bán quá cao và mức trả lại không thể tách rời — và tỷ lệ hoàn trả lại là số lượng đảo ngược cần được thông báo.

Nó đặt lịch đảo ngược sai thời điểm

Một tháng Ba hoàn lại một đợt bán hàng tháng Giêng phải giảm bớt tháng Ba, viết lại bài hát vào tháng Giêi sẽ làm cho một thời gian đóng cửa trở lại.

Nó phá vỡ các cuộc kiểm toán

Một ghi chép tiểu sử về những gì đã xảy ra tại thời điểm này. đó là cách mà các nhà quản lý sách hai tầng đã làm việc trong năm thế kỷ.

Vì vậy, một kết nối báo cáo các đảo ngược thay vì áp dụng nó: trở lại refunded_atrefund_amount Bên cạnh xe đạp bán sinh mạng của chính mình, và hãy để người gọi viết số tiền hoàn lại như hàng ngày có đề thời điểm món tiền hoàn trả được.

💡
Nguyên tắc tương tự cũng áp dụng cho số lượng. Đừng « Sửa đổi » một số tiền đã lưu vào giá trị hiện tại của nền tảng: một hóa đơn được giải quyết từ tín dụng tài khoản hợp lệ được ghi lại0vào giờ thanh toán, và tiền đã được ghi lại khi khách hàng đứng đầu.

Hợp đồng phân loại

OpsIQ Quyết định xe đạp cứu sinh Một lần, in \OpsIQ\Commerce\SaleLifecycleClassifier.. Một kết nối chỉ tuyên bố mà của chính nền tảng của nó Từ có nghĩa là gì, bằng cách thực hiện \OpsIQ\Connectors\SalesLifecycleConnectorInterface::salesLifecycleVocabulary()Sau đó gọi các classifier chung.

Phát hành từ vựng, ủy quyền quyết định
public static function salesLifecycleVocabulary(): array
{
    return [
        'credit'             => ['addfunds'],                  // adds balance, sells nothing
        'upgrade'            => ['upgrade'],                   // resizes an existing commitment
        'recurring'          => ['hosting', 'domainrenew'],    // continues something owned
        'acquisition'        => ['domainregister'],            // obtains something new
        'recurring_prefixes' => ['domainaddon'],               // families that grow over releases
    ];
}

$lifecycle = \OpsIQ\Commerce\SaleLifecycleClassifier::classify([
    'explicit'    => $platformSaidSo,     // wins outright when present
    'line_types'  => $types,              // your platform's own line/item types
    'vocabulary'  => self::salesLifecycleVocabulary(),
    'is_order'    => $cameFromANewOrder,
    'is_refunded' => $moneyWentBack,
]);
💡
Tiền đề được cố định và chia sẻ: rõ ràng, sau đó được hoàn trả lại và có thể bị loại bỏ, rồi tín dụng, rồi nâng cấp sau đó is_order, sau đó lặp lại, sau đó đạt được, sau khi không rõ. Nâng cấp ngồi trên bảng kiểm tra theo thứ tự bởi vì nền tảng nâng cấp cũng tăng cấp; tái diễn nằm dưới nó vì hóa đơn đầu tiên của một tờ giấy mời mới mang lại một loại dòng tái diễn. Trên một cửa hàng không có thứ tự bán phân biệt chủng tộc nghiêng để thu nhập và ra khỏi đường ống.

Phát âm toàn bộ từ vựng của nền tảng

Đây là sự thất bại có giá trị nhất và ít nhất cũng sai.WHMCS kết nối ['hosting','addon','domain'] — một danh sách đọc đầy đủ.WHMCS không phát ra một lỗ hổng Domain Gõ cho các đường miền thật; nó phát ra DomainRegister, DomainRenew, DomainTransfer, PromoHosting, PromoDomain, DomainAddon*UpgradeTất cả bọn họ đều đã vượt qua danh sách unknown: 1,288 hóa đơn, 3 năm, không lỗi và không có dòng ghi chép.

Mỗi khách hàng mới nhập lịch sử của họ thông qua một kết nối lại chất rácVì vậy, lỗi phân loại không ảnh hưởng đến không gian làm việc — nó ảnh hưởng tới mọi công việc trên máy bay, ngay lúc đầu họ nhìn vào đường ống dẫn của họ. Tiền tố Vậy là một người anh em chưa từng thấy ai phân loại họ hàng thay vì biến mất.

💡
Một kiểm tra thực tiễn: Số lượng hàng không rõ bao nhiêu, một hệ thống bán hàng tốt gần như phân loại mọi thứ.

Đang sửa đổi lịch sử đã nhập

Mỗi chiếc được vận chuyển.OpsIQKết nối bán hàng thực hiện điều này — WHMCS, Shopify, WooCommerce, osCommerce, SaaS Bridge, Stripe, BigCommerce and Magento 2. Treat it as expected, not optional: a customer imports their old records on day one, so a classification fix that cannot reach that history only helps people who signed up afterwards. Implement \OpsIQ\Connectors\SalesLifecycleRepairInterface::reclassifySale() sử dụng bất cứ thứ gì trên bảng lấy kết nối của bạn đã có. tools/crm_backfill_sales_lifecycle.php thì sửa lại lịch sử nhập khẩu của bạn mà không có mã kết nối nào: khô theo mặc định, tự nó sẽ đếm lại và xác minh được số lần đếm hàng trước khi viết, đảo ngược qua một cuốn sổ tay chưa ghi ra, và nó không bao giờ viết sai như là một câu trả lời.

💡
Nếu bộ kết nối của bạn không thể đọc lại các đĩa ghi chép cũ — một kết nối chỉ móc nối chỉ không thể — đừng xếp lại phương pháp. Không biết sự trở về còn tệ hơn là không thực hiện: một tập tin gạch chân sẽ viết lại hàng tốt thành công và báo cáo thành công. Chỉ làm cho giao diện từ vựng bị lỗi.
💡
Các tham khảo gói đã chi tiết vẫn còn sẵn sàng trong các kết nối/CONNECTOR_VENTS. md và kết nối /PLATORM_CONCTS. M được cài đặt trong bản phân phối mã nguồn tự động.
Trình kết nối

Hợp đồng tham quan sự kiện

Tình báo Hành trình chấp nhận một phong bì sự kiện nền tảng từ các ô điều khiển duyệt, các nhà quản lý kết nối, SaaS Bridge, gói hàng chợ và kết nối Xây dựng. Tên cụ thể được dịch ra ở rìa.

Dập tắt và gửi tin nhắn

Phím & tương đồng

Mỗi sự kiện bị ràng buộc với trang mạng miền xác thực_BAR_key. Một kết nối phải lấy chìa khóa từ « Kết nốiRgistry » hay điểm kết thúc xác thực của nó, không bao giờ từ một cơ quan yêu cầu không đáng tin cậy. Miền giữ các hồ sơ riêng biệt; một nhóm miền là chỉ đọc- thời gian.

Nhận diện bất lực

sự kiện_d cần thiết cho các kết nối và phải được xác định cho cùng một sự kiện bản địa. Phục hồi, kết nối, và cập nhật lại một sự việc thay vì lặp lại một cuộc hành trình hoặc bán hàng.

Tên bản địa cộng với chính điển

Bảo tồn nguồn_tên_người dùng để chứng minh và tìm kiếm vấn đề , sau đó lập bản đồ cho sự kiện_can _chính thống trị.

Bằng chứng máy phục vụ thắng

Trình duyệt có thể bắt đầu hoặc suy luận về một hành trình. Sự kiện kết nối xác nhận đăng nhập, trả tiền, mua lại, hoàn trả và kết quả thiết bị cuối khác. Một hiệu ứng tương quan hợp lệ là tham gia mạnh nhất; một dấu hiệu không hợp lệ bị từ chối và không đáng tin cậy.

Riêng tư

Chỉ gửi các bộ nhận diện và trường cần thiết cho cuộc hành trình đã tuyên bố. Đồng ý tôn trọng, che đậy và lưu lại thiết lập. Không bao giờ để lại thông tin, dữ liệu thẻ, bí mật xác thực hay thông điệp riêng trong tính chất riêng.

Phong bì chính điển

Phong bì sự kiện hành trình
{
  "contract_version": 1,
  "event_id": "myshop:order:884:paid",
  "source": "myshop",
  "source_event_name": "order.paid",
  "event_name_canonical": "commerce.purchase.completed",
  "site_key": "exact_domain_site_key",
  "occurred_at": "2026-07-23T08:30:27Z",
  "visitor_id": "optional-browser-visitor",
  "session_id": "optional-browser-session",
  "journey_id": "optional-journey",
  "attempt_id": "optional-attempt",
  "correlation_token": "optional-signed-token",
  "customer_ref": "C-42",
  "user_email": "[email protected]",
  "object_type": "order",
  "object_ref": "884",
  "order_ref": "884",
  "outcome": "succeeded",
  "evidence_level": "server_confirmed",
  "confidence": 1,
  "properties": {"amount": 129, "currency": "USD"}
}

Công cụ phân loại chính thống

Dùng tên chân thật nhất. Hỗ trợ các gia đình bao gồm các sự kiện đính hôn trang/ CTA; đăng nhập tài khoản, đăng nhập, MFA và mật khẩu; giai đoạn đầu và hình dạng; giai điệu; sản phẩm, xe đẩy, thanh toán, thanh công cụ, thanh tra, đặt lại, đặt tên, đặt hàng, đặt thêm, hoàn trả lại và hoàn lại; ấn tượng được thăng tiến và chuyển đổi; phụ đề, chat và vé; sự kiện bảo mật; và các sự việc thiết lập tự chọn. account.signup.succeeded, account.login.succeeded, lead.form.succeeded, commerce.payment.succeeded, commerce.purchase.completed, commerce.subscription.renewedcommerce.refund.completed.

Thuyết phục, xác nhận và bỏ qua trình duyệt

Các thiết bị có thể hoạt động mà không cần kết nối bằng cách quan sát cấu trúc trang, tạo hành động, kết quả kháng cáo và bản ghi lưu khách truy cập. Bằng chứng vẫn được phân loại rõ ràng như đã quan sát hay suy luận. Một kết nối thêm xác nhận máy phục vụ có thẩm quyền và có thể tương quan nó với cùng một cố gắng duyệt. Việc bỏ rơi được cất giữ trước tiên như một ứng cử viên; nó sẽ bị bỏ hoang chỉ sau khi cửa sổ không hoạt động được đặt trong UI và chỉ khi không có phục hồi hoặc thành công.

Phân phối và thu nhập

Sự phân phối thích một vật tượng trưng hợp lệ được ký kết, rồi một hành trình chính xác, cố gắng, phiên họp hoặc tham khảo thương mại, sau đó là biểu đồ nhân dạng đã đồng ý, và cuối cùng là một sự trùng khớp hành vi. Việc bán hàng không so sánh được vẫn chưa được phân chia. Trọng lượng thư mục đa chạm phải tổng hợp. 1. Site Inteld cho rằng lợi nhuận đọc sổ cái này; tín dụng, ví trên cùng, đầu-up và Quỹ Thêm không bao giờ mua sự chuyển đổi. Ứng xử kết nối FX vẫn được điều khiển bởi thiết lập kết nối đó.

⚠️
Mô hình phân phối, nhìn vào cửa sổ sau, trực tiếp kiểm soát, sự tự tin tối thiểu, bỏ thời gian ra và đường ống định nghĩa là chính sách UI. Kết nối không được mã hóa chúng.

Tập hợp và Nhà xây dựng kết nối

khai báo hành trình kết nối
{
  "capabilities": ["sales", "journey_events"],
  "journey_capabilities": {
    "journey_events": true,
    "payments": true,
    "subscriptions": false,
    "correlation_token": false,
    "backfill": true
  },
  "journey_event_mappings": [{
    "source_event_name": "order.paid",
    "event_name_canonical": "commerce.purchase.completed",
    "field_map": {
      "order_ref": "order.id",
      "customer_ref": "order.customer_id",
      "amount": "order.total",
      "currency": "order.currency",
      "occurred_at": "order.paid_at"
    }
  }]
}

Khai báo chỉ những khả năng gói thực sự cung cấp. Kết nối Xây dựng xác nhận bản đồ và tạo ra cùng một trình điều chỉnh nền tảng được dùng bởi các gói đầu tiên. 100 thông qua các tạo ra xác thực kết thúc tích hợp.

💡
Cuốn sổ cái thương mại vẫn là nguồn tài chính của sự thật. và hợp nhất kết quả máy chủ và hòa giải sau khi cuốn sổ cái có sẵn lên, nên một khoản tiền không bao giờ trở thành hai doanh số.
Trình kết nối

Hành động của Al

Mỗi kết nối tuyên bố một tập hợp các hành động mà AI có thể làm thông qua nền tảng bên ngoài. hành động là cầu nối giữa "Người A nói" và "Người Al làm."

Hành động Al
Hành động của AlMột yêu cầu khách hàng lập bản đồ thẻ hành động xoá, rồi danh sách kiểm tra: quyền hạn đã được kiểm tra, bạn xác nhận, API đã gọi.Hành động của AlMiền làm việc"Hãy nhận đặt mua dài hạn của tôi"kháchAlcancel_subscriptiondeletexác nhậntham số: check_id (từ ngữ cảnh)NHỮNG NGƯỜI TRONG SỰ HIỆNreadGhideleteĐã kiểm tra vai trò & quyền hạnAnh hãy xác nhận hành độngAPI được gọi là· Kết quả báo cáo1DECLAREDMỗi danh sách các hành động kết nối2GATEDQuyền hạn + xác nhận3THEN RUNAPI cuộc gọi, kết quả đã trở lại
Yêu cầu trở thành một hành động đã tuyên bố (đã gõ hoặc viết/ giải thích) mà được kiểm tra, xác nhận, rồi thực hiện và báo cáo.

Vòng đời của những hành động

1
Khách hàng yêu cầu một cái gì đó

"Cancel đăng ký của tôi." AI xác định điều này đòi hỏi hành động "cancel_subscription".

2
Al kiểm tra quyền hạn

Hành động này được chấp nhận không? Nó có được bật không? Người dùng hiện thời có vai trò đúng không?

3
AI thu thập các tham số

Hành động cần có chứng minh thư dài hạn.

4
Xác nhận

Vì những hành động phá hoại hay gây chú ý cao độ, AI yêu cầu xác nhận trước khi thi hành án.

5
Thực hiện

Hành động gọi nền tảng bên ngoài API.

6
Kết quả

Tổ chức AI báo cáo kết quả cho khách hàng.

Kiểu hành động

Đọc hành động

Tìm dữ liệu mà không thay đổi bất cứ điều gì ví dụ: danh sách_hàng , xác định, không cần xác nhận

Ghi hành động

Tạo hay sửa đổi dữ liệu. Thí dụ: tạo sổ ghi lưu_ vào lưu tạm, thứ tự cập nhật . tháng năm cần thiết xác nhận.

Xoá hành động

Xoá dữ liệu. Ví dụ: cancel_ subscription. Luôn yêu cầu xác nhận.

Hành động HTTP

Được tuyên bố bằng hành động.json Chung chung API Các cuộc gọi được xác định là phi định.

Thẻ hiệu lực

Thực hiện các hành động theo lựa chọn "không thể" theo hành động.json, thẻ lớp học kết nối or trung tâm (v. d. "tocket" cho một vé đọc/nhìn, "tiet_create" để mở một vé).OpsIQ Các cổng toàn bộ lớp đồng nhất trên tất cả các kết nối: vé đọc thả ra khỏi AI khi người điều hành tắt khả năng nhận thức AI, và việc tạo vé được dành riêng cho OpsIQ Trình soạn thảo của chính mình (vì vậy một công cụ kết nối không thể sao chép nó). Hãy khai báo nó và các tùy chọn kết nối.OpsIQ Không bao giờ cần biết tên hành động của mình.

Hành động mã hóa

Đã được đăng ký ở PHP trong lớp kết nối, kiểm soát toàn bộ logic.

Định nghĩa hành động Ví dụ
{
  "lookup_order": {
    "label": "Look up an order",
    "description": "Find an order by ID or email",
    "method": "GET",
    "endpoint": "/admin/api/2024-01/orders.json",
    "params": {
      "order_id": { "type": "string", "label": "Order ID" },
      "email":    { "type": "email",  "label": "Customer email" }
    }
  }
}
Trình kết nối

Tạo một kết nối

Trình xây dựng kết nối cho phép bạn tạo một kết nối hoàn chỉnh cho bất kỳ nền tảng nào với một RTET API Không cần mã hóa để kết nối.

Tạo một kết nối
Trình tạo Kết nốiMột hình thức kết nối không mã: tên, kiểu thô, cơ sở URL Bản đồ hành động, kiểm tra qua và nút xuất bản.Trình tạo Kết nốiMiền làm việcTrình tạo Kết nốiTênNền tảngThẩm quyềnOAuth 2.0(PKCE)Cơ bản URLhttps://api.example.com/v2Hành độngGET/customers → list_customersThử ra đã quaKết nối gói1NO-CODETên, Aith, cơ sở URL2ANY APIChìa khóa, Bearer, Cơ bản, HMAC, OAuth3PUBLISHInto /connectors/<slug>/
Hãy chỉ điểm cho người xây dựng tại bất cứ nơi nào API Đặt điềm, căn cứ URL và hành động, kiểm tra nó, và công bố một bộ kết nối hoạt động.

Nhà cung cấp đầy đủ API tin tức

Mỗi tạo API Kết nối có thể phơi bày bản địa khác nhau API Đọc và Sở hữu API Hành động ghi. Hành động sửa đổi vẫn được ưu tiên; hành động bản địa bao gồm các điểm kết thúc nhà cung cấp thêm sau đó. Thời gian chạy hỗ trợ RST, nguyện vọng, JSON hình dạng. XML Những cơ thể sống và đa phần, bị trói buộc,API- những đầu trang và sự thuần khiết trong khi giữ thông tin bên trong các thiết lập kết nối không gian làm việc.

⚠️
Các gói thay thế thị trường được xuất phát từ /marketplace_connectors cũng như gói gém /connectors. Tăng phiên bản gói lên, tái tạo lại hợp đồng và tài liệu, kiểm tra tính phù hợp, rồi đăng ký lại và xuất bản phiên bản mới của Marketplace.

Trợ lý xây dựng kết nối

Phù thủy có sáu bước, như một trang web trên đỉnh. Lưu bản nháp ở chân giày giữ công việc của bạn tại bất cứ điểm nào.

1
Nhận diện và hồ sơ

Tên, sên, mô tả và biểu tượng, rồi chọn hồ sơ hợp đồng: ChuẩnAPI, Tra thương mại, Trợ giúp, Hộp thư, Tình báo Side, Cầu Saas, Cầu PHP cục bộ, hay Nền tảng không cóAPI Khi nền tảng không phục vụ gì cả vàOpsIQphải cài đặt một cây cầu. Hồ sơ này chọn một điểm bắt đầu hoàn chỉnh; bạn vẫn có thể điều chỉnh khả năng cá nhân.

2
Thẩm quyền

Chọn mẫu xác thực mà nền tảng dùng và điền vào trường. Cũng nhập vào đây giấy ủy nhiệm thử nghiệm thật: dùng cho việc thử kết nối trong bước tới, và chúng không được cất giữ sau khi bạn xuất bản.

3
Thử

Nhập API Cơ sở URL và một điểm kết thúc xác minh, sau đó chạy một kiểm tra kết nối trực tiếp sử dụng các giấy ủy nhiệm từ bước 2.. làm điều này trước khi bạn xác định bất kỳ hành động, nếu auth hoặc cơ sở URL là sai, mọi hành động bạn viết sau đó sẽ thất bại vì cùng một lý do và bạn sẽ sửa chữa lỗi lầm.

4
Hành động

Xác định mỗi thao tác: tên, phương pháp HTTP, đường dẫn cuối, tham số, bản đồ trường đáp ứng và các thiết lập đáng tin cậy được mô tả bên dưới. Bạn có thể chạy riêng mỗi hành động với mạng. API từ bước này.

5
Trình kích hoạt

Ánh xạ các sự kiện bàn làm việc của bạn OpsIQ Sự kiện, để những điều xảy ra trên nền tảng của bạn có thể bắt đầu làm việc OpsIQ.

6
Xem lại, hợp đồng kinh doanh và xuất bản

Review every action, trigger and capability. Enterprise profiles expose the generated queue, worker, hook, migration, ticket-mirror, attachment and conflict contract before publishing. Publishing writes the package into /connectors/<slug>/.

⚠️
Việc công bố không chạy bộ khớp. Công bố chỉ xác nhận dạng pháp sư và phát ra cảnh báo không chặn. Bộ đệm đầy đủ — Hiển thị, tập tin khả năng, hợp đồng nhận diện, và kiểm tra nhãn cầu — chạy khi bạn bấm khô chạy, và chạy vào lúc cài đặt. Nhấn chạy sấy khô trước khi bạn lên tàu, mọi lần.

Việc xuất bản cái gì mà không cho bạn thấy

5 hành vi gây ngạc nhiên cho người máy không phải là lỗi, tất cả chúng sẽ làm bạn mất một buổi chiều nếu bạn tình cờ gặp chúng.

Một câu hỏi quyết định thông qua: Liệu nền tảng có phục vụ mộtAPI?

Hãy trả lời từng bước một.1Bằng cách chọn chế độ truy cập dữ liệu (hoặc "Platform with noAPI"Biểu tượng".APIChế độ tuyên bố native_api and emits the <slug>_api_call passthrough. Bridge mode declares platform_bridge Thay vào đó và SRIPS native_api Ngay cả khi một người già hơn đã làm được, thì bản kê khai, lớp học và các bác sĩ chuyên môn cũng không thể bất đồng ý kiến. ai_brain_aware được thêm vào cách nào.

SILCE nghĩa là "Nó có mộtAPI"

Người xây dựng theo câu trả lời của bạn, nó không làm việc sự thật cho chính nó, và mặc định khi không có gì được nói làAPI- Chế độ.APIPhải có nền tảng để nói như vậy - hãy chọn "Platform mà khôngAPI" Hồ sơ, đặt truy cập dữ liệu để cầu, hoặc tick platform_bridge; any one of the three is enough and they cannot contradict each other. Skip the question on a platform with no API and you are back to the old failure: a dead <slug>_api_call the model keeps reaching for. This used to be stamped unconditionally, so the trap is now escapable rather than gone.

Mặc định của thử ra kết nối/ping

Nếu bạn để trống đường dẫn kiểm tra, người xây dựng viết /ping vào hệ thống kết nối được tạo ra và vào hồ sơ.jsonKhu vực thử nghiệm. gần như không có nền tảng thật phục vụ đường đó, vì vậy thử nghiệm kết nối thất bại với HTTP404Hãy đặt một đường dẫn kiểm tra xem nền tảng của bạn thật sự đáp ứng như thế nào. Để kết nối cầu, hãy chỉ vào điểm chuẩn đoán của bạn — nó chứng minh toàn bộ chuỗi trong cùng một cuộc gọi: cây cầu được sử dụng, chìa khóa khớp, và cây cầu có thể chạm đến cơ sở dữ liệu.

Xuất bản lại vẫn còn ghi đè lên bàn tay của bạn

Khả năng theo câu trả lời của dữ liệu, vì vậy những điều này không còn trôi dạt. Mọi thứ khác sinh ra vẫn còn làm: chỉnh sửa ContextProvider. p hay bất kỳ tập tin phát hành nào khác và công bố tiếp theo sẽ thay thế nó. Một ngoại lệ được bảo vệ là tập tin Bridge — trợ lý chỉ ghi đè lên một cây cầu mang dấu riêng của nó, do đó, một cái được viết bằng tay bị bỏ lại một mình.

Đang công bố tập tin

Bỏ chọn một khả năng và việc xuất bản tiếp theo gỡ bỏ tập tin nhà cung cấp của nó. Phụ thuộc vào bất kỳ tập tin nào tạo — ContextProvider.p trên hết — được ghi đè lên mà không báo trước. Việc sao chép ra trước, hoặc lấy quyền sở hữu gói bằng cách xoá.opsiq- Người xây dựng.json(sau đó thì phù thủy sẽ không quản lý được nó nữa).

thả_tatus luôn luôn là xem thử

Trợ lý không thể điều khiển nó. Một gói được thiết lập để vận chuyển vì việc sản xuất phải đã thay đổi _Status bằng tay trong thiết lập.json- và việc chỉnh sửa đó phá vỡ chữ ký, vì vậy hãy ký lại sau đó.

Chữ ký chứng tỏ sự trung kiên, không phải nguồn gốc

Gói Xây dựng được ký với phím đối xứng của chính cài đặt này. Điều đó phát hiện việc thay đổi. Nó không chứng minh ai đã viết gói đó, và bất kỳ cài đặt nào giữ phím giống nhau cũng có thể tạo chữ ký tương tự. Hãy xem một gói đã ký cục bộ là tự ký tên.

Vụ va chạm nhỏ chỉ được kiểm tra trong một cây

Xuất bản từ chối một con ốc sên đã tồn tại bên dưới/connectors/.Nó không nhìn vào/marketplace_connectors/,Vậy một gói hàng đầu tiên được cấp quyền với cùng một viên đạn có thể bị che khuất.

💡
Trợ lý không có bước tạo kiến thức. Một tập tin kiến thức mô tả nền tảng của bạn được tạo ra từ tên, mô tả, kiểu auth và hành động bạn định nghĩa, và nó được nạp vào AI khi kết nối được bật.

Định hướng hành động ( từng bước) 4)

Mỗi hành động có những điều sau: Chỉ cần bốn điều đầu; còn lại thì kiểm soát được ai có thể làm và cẩn thận đến mức nào.

Phím hành động và nhãn

Chìa khóa là những gì AI gọi; nhãn là những thứ con người đọc. Phím được cách dùng tên với viên đạn liên kết tự động, vì vậy hai kết nối có thể có một "danh sách_ thứ tự" mà không cần co thắt.

Phương pháp HTTP

GỬ, CÒ, BÁP, CÂU CHUYỆN hoặc DY.

URL đường dẫn

Phụ vào cơ sở URL Sử dụng {name} Ví dụ cho bộ giữ chỗ /opportunities/{id}/stage

Tham số

Mỗi tham số bạn cũng chọn nó đi đâu: thân, đường, truy vấn hay đầu trangMột tham số đường dẫn đầy một {placeholder}; tham số truy vấn được phụ thuộc vào URL.

Sơ đồ phản hồi

Nói lĩnh vực nào trong JSON Đáp ứng có nghĩa là gì, đó là tên khách hàng, đó chính là tất cả các thư từ, đây là những gì cho phép AI đọc dữ liệu của bạn nền tảng thay vì đoán tại nó.

Ai có thể sử dụng nó?

Nhóm của bạn (admin Al), khách hàng đã ký tên (Dearer chat), cả hai hoặc thư mục ghi. Hành động tùy chỉnh chỉ chạy cho khách hàng đăng ký, và trường nhận diện bị khóa tự động để một khách hàng không thể hỏi về người khác.

Cần thiết xác nhận

Con người phải chấp nhận trước khi hành động.

Hủy diệt

Đánh dấu hành động là việc xoá hay thay đổi trạng thái. Dùng để cảnh báo trước khi nó chạy.

Cần thiết quyền hạn

Quản trị phải giữ quyền này cho AI để chạy hành động thay mặt họ; quản trị đầy đủ luôn luôn thông qua. Chọn từ manage_integrations, manage_general, manage_billing, manage_sales_bridge, manage_knowledge, manage_appearance, manage_behavior, manage_permissions, manage_dangerzone, reply_to_chats, escalate_to_ticket, send_agent_emailHoặc không có nghĩa là bất kỳ quản trị xác thực nào.

Mô tả / Gọi AI

Nó nói với AI khi đạt hành động này, ví dụ "Hãy dùng điều này khi viên quản trị yêu cầu thay đổi một giai đoạn". Gợi ý hay là sự khác biệt giữa hành động mà AI sử dụng đúng và một trong những nó bỏ qua.

Khả năng

Thẻ lớp tùy chọn, vé (một vé đọc hoặc xem lại) hoặc vé_ tạo (mở vé). Cong cho phép OpsIQ Chẳng hạn, hãy đóng cửa cả lớp ngay lập tức, khi một người điều khiển tắt nhận thức AI.

Đường dẫn danh sách

Để có thể trả lại danh sách, đường dẫn chấm đến các mảng, ví dụ dữ liệu hoặc dữ liệu.

Đường dẫn lỗi

Tùy chọn. Một trường cơ thể có nghĩa là sự hiện diện bị lỗi, ví dụ như lỗi thông báo lỗi, hữu ích cho APIs HTTP trả về 200 về thất bại.

Chạy đi.

Mỗi hành động đều có thể là bất khả chiến bại. API từ bước này, để bạn có thể sửa chữa một con đường sai hoặc tên trường trước khi bất cứ ai khác sử dụng nó.

⚠️
Hành động ghi được bảo vệ theo mặc định. Bất kỳ hành động nào bằng PST, PUT, tùy chọn thay đổi hay DEME bắt đầu ra bắt đầu cần thiết quản lý_sự cho phép hợp nhất (đã quản lý) Xác nhận con người trước khi chạy. Đây là hành động viết mới bị đóng, còn không để AI thay đổi dữ liệu của bạn mà không giám sát. Bạn có thể thay đổi cả hai trên hành động, nhưng hãy cố ý thay đổi chúng.
💡
Để được gọi từ trò chuyện khách hàng, một hành động phải được đọc-chỉ: để lại cả hai yêu cầu xác nhận và không Xây dựng. Một hành động một khách hàng có thể kích hoạt mà cũng thay đổi trạng thái không phải là điều gì đó phù thủy sẽ cho bạn tự nhiên di chuyển.

Nhận các móc cắm mạng (ra dấu 5)

Bước kích thích cho bạn một cây móc URL để đăng ký với nền tảng của bạn, và xác nhận tất cả các yêu cầu trên đó.

Đầu đề chữ ký

Đầu đề nền tảng của bạn với, ví dụ X-Hub-Signture 256.

Thuật toán chữ ký

HMAC-SHA1, HMA C-SAM256 hoặc HMAOC-SSA512.

Bộ màu

Đơn giản, một loại bùa thường hoặc thuốc trừ sâu 64.Stripe- Kiểu, t =...,v1 =... định dạng được dùng bởiStripeVà nhiều nền tảng đã sao chép nó.

Tiền tố chữ ký

Theo lựa chọn. Một số nền tảng tiền tố cho tiêu hóa, chẳng hạn sha26 =. Còn trống nếu bạn không làm.

Bản đồ sự kiện

Bản đồ mỗi sự kiện mà nền tảng của bạn gửi lên OpsIQ sự kiện nó nên gây ra.

Tự động cuộn vào móc/ kéo

Nếu nền tảng của bạn có một API để tự quản lý các cây móc câu, bạn không cần phải đăng ký URL Bằng tay. Tự động nạp vào nút này khi bật và chỉ nó tại hai của các hành động bạn xác định trong bước 4:

Tạo trò chơi móc câu

Đã gọi khi admin cho phép kết nối. Bạn cho tham số tên mang URL tùy chọn là cái có danh sách sự kiện, và con đường trong câu trả lời giữ mã nhận diện webk mới.

Xoá hành động

Gọi khi bộ kết nối bị tắt, sử dụng máy nhận dạng được giữ ở trên, nên vô hiệu hóa kết nối cũng dừng lại để gửi tới một điểm cuối cùng.

Bạn có thể bật các khả năng

Xác định hồ sơ và khả năng được xác định bởi hợp đồng kết nối 2.2. tạo ra và giải quyết các khả năng được phát sinh trực tiếp; khả năng kinh doanh tạo ra một EnterpriseExtension.php giàn giáo có dây điện cứu sinh thời gian.

Hành động

Chiến dịch AI có thể chạy trên nền tảng của bạn: liệt kê các mệnh lệnh, tìm một khách hàng, hoàn tiền.

Trình kích hoạt

Nhận móc kéo từ nền tảng của bạn và biến chúng thành OpsIQ sự kiện.

Vé AI

AI Triage và người điều khiển máy tính trả lời trên vé ở lại trên sân ga của bạn. chọn điểm cuối cùng mà trả lại một vé với câu trả lời và bản đồ cánh đồng; OpsIQ đọc đoạn chỉ qua nó.

Hộp thư và liên lạc

Hiển thị thư của khách hàng trên dòng thời gian của họ, gửi từ một thỏa thuận, và đồng bộ hoá sổ địa chỉ của bạn vào OpsIQ CRM.

Nhập khẩu tự chọn

Trang qua danh sách khách hàng và nhập mỗi một OpsIQ Đây là những gì nút Import chạy.

Văn cảnh

Chuyển dữ liệu trực tiếp từ nền tảng của bạn vào mọi cuộc trò chuyện trên AI.

Nhận diện

Tìm khách hàng của anh là ai, và cho họ xem hồ sơ và mua vé.

Bán và tính tiền

Nạp các sự kiện doanh thu và MRI con số vào các OpsIQ Bảng điều khiển.

Vé phạt

Chuyển các vé và email nền tảng của bạn bằng webhook vào OpsIQ hỗ trợ sợi chỉ.

Những câu trả lời không thể dò ra

Bưu điện OpsIQ Nhân viên trả lời lại cho cương lĩnh của sợi chỉ.

Đồng bộ hoá người dùng

Nhập các tài khoản nhân viên của bạn vào OpsIQ Người dùng quản trị.

Bộ phận đồng bộ

Nhập bộ phận hỗ trợ của bạn vào OpsIQ.

Mục tiêu và nguồn cung cấp hàng

Hãy để phòng thu Promotion nhắm vào những sự kiện bạn biết về một người, và thực hiện sản phẩm của bạn trong việc thăng chức.

Nhà cung cấp Phòng thu Khảo sát

Đưa ra các dữ liệu khảo sát được xác thực của máy phục vụ, thoát khỏi biến và bị giới hạn trong các trang nhận CRM qua một thư mục khảo sát Provider. p tận tụy. Việc này không dùng lại thời gian chạy Promotion.

Sở hữu IP Chặn

Khi nào OpsIQ blocks an IP, gọi khối của nền tảng riêng của bạn API Vì vậy, sự chặn đứng cũng được thực hiện ở đó.

Sự kiện bảo mật

Đã nhận bị chặn.IP Tín hiệu đe dọa từ OpsIQ.

Kiến thức nền tảng cho AI

Mỗi kết nối bạn xây dựng tàu một tài liệu tham khảo ngắn miêu tả nền tảng của bạn và hành động của nó. OpsIQ Adam AI đọc nó khi nào thiết bị kết nối của bạn được bật, vì vậy nó hiểu nền tảng của bạn thay vì chỉ nhìn thấy danh sách các tên hành động. Nó được tạo ra cho bạn.

API Bỏ qua

Kết nối của bạn luôn nhận được một cuộc gọi chung để AI có thể đạt được điểm kết thúc bạn đã không xác định một hành động gõ cho. Hãy sử dụng hành động đã gõ theo cách có thể; đây là cửa thoát hiểm.

Hợp đồng kết nối chính sách 2.2 tham chiếu

Phiên bản hợp tác: 2.4 · 57 capabilities · 8 profiles.

Hồ sơ kết nối

standard_api · Standard REST or GraphQL API

Actions, triggers, OAuth/API-key authentication and optional context/identity mappings. Capabilities: actions, triggers, native_api, ai_brain_aware.

commerce · Commerce and billing platform

Customers, orders, sales, subscriptions, billing, promotions and journey events. Capabilities: actions, triggers, journey_events, sales, sales_reconciliation, billing, sync_orders, customer_import, survey, promo_audience, promo_feed, context, identity.

helpdesk · Helpdesk and ticket platform

Inbound tickets, outbound replies/notes, customer roster, AI triage and bidirectional ticket mirroring. Capabilities: actions, triggers, inbound_ticket, outbound_reply, outbound_note, ai_tickets, customer_import, survey, context, identity, ticket_mirror, ticket_merge, attachment_bridge, conflict_resolution.

mailbox · Mailbox and email provider

Inbound/outbound mail, address-book sync, multi-account OAuth and CRM timeline integration. Capabilities: inbound_email, outbound_email, mailbox, email_mailbox, oauth, actions, customer_import, ai_reply.

site_intelligence · Site Intelligence data provider

SEO, analytics, search-console, local-search or monitoring provider with scheduled sync. Capabilities: actions, triggers, site_intelligence, seo, scheduled_workers, durable_queue.

saas_bridge · SaaS bridge

Deep two-way SaaS integration with customers, billing, identity, tickets, webhooks, queues, attachments and workers. Capabilities: actions, triggers, webhook, context, identity, customer_import, survey, journey_events, sales, sales_reconciliation, billing, inbound_ticket, outbound_reply, ticket_mirror, ticket_merge, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

no_api_bridge · Platform with no API (OpsIQ installs a bridge)

For a self-hosted PHP application that serves no callable API. The wizard generates a signed bridge file the operator drops into their own site, plus the typed actions that read and write through it. Capabilities: actions, platform_bridge, ai_brain_aware.

local_php_platform · Local PHP platform bridge

WHMCS-style local hooks, database access, two-way tickets, billing/customer sync, queues and migrations. Capabilities: actions, native_data, context, identity, customer_import, survey, journey_events, sales, sales_reconciliation, billing, inbound_ticket, outbound_reply, ticket_mirror, ticket_merge, attachment_bridge, durable_queue, scheduled_workers, database_migrations, conflict_resolution, enterprise_hooks, admin_assets.

Khả năng chính điển

hành động

Universal actions. Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: actions.json.

Kích hoạt

Inbound event triggers. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Package files: actions.json.

móc câu

Inbound webhook endpoint. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook.

journey_events

Universal Journey Event Contract mapping. Capability version: 1.1. Mode: generated. Interfaces: OpsIQ\Connectors\JourneyEventConnectorInterface. Package files: settings.json.

Văn cảnh

AI context providers. Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: ContextProvider.php.

guest_lookup

Guest record lookup without login (reference + proof match). Capability version: 1.0. Mode: generated. Runtime methods: contextProviders. Interfaces: OpsIQ\Connectors\ContextConnectorInterface. Package files: GuestLookupProvider.php.

ID

Admin/customer identity providers. Capability version: 1.0. Mode: generated. Runtime methods: identityProviders, detectAdmin, detectCustomer. Interfaces: OpsIQ\Connectors\IdentityConnectorInterface. Package files: IdentityProvider.php.

sales

Sales and revenue ingestion. Capability version: 1.2. Mode: generated. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface. Package files: SalesIngest.php.

sales_reconciliation

Scheduled sales-ledger reconciliation against the platform. Capability version: 1.0. Mode: generated. Runtime methods: reconcileSales. Interfaces: OpsIQ\Connectors\SalesReconciliationInterface.

thanh

Cross-platform billing snapshot. Capability version: 1.0. Mode: generated. Runtime methods: billingProviders. Interfaces: OpsIQ\Connectors\BillingConnectorInterface. Package files: BillingProvider.php.

payments

Payment-provider capability bus. Capability version: 1.0. Mode: generated. Runtime methods: paymentsCapabilities.

Thương mại

Sell through chat: canonical commerce role map. Capability version: 1.0. Mode: declarative. Package files: commerce_roles.json.

inbound_ticket

External ticket/email to OpsIQ ticket ingestion. Capability version: 1.0. Mode: generated. Runtime methods: handleWebhook. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

outbound_reply

Reply mirroring to the external platform. Capability version: 1.0. Mode: generated. Runtime methods: pushReply. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface.

ticket_merge

Ticket merges applied on the platform (native merge or private transcript note). Capability version: 1.0. Mode: generated. Runtime methods: mergeTickets. Interfaces: OpsIQ\Connectors\TicketMergeConnectorInterface.

sync_users

Staff/customer synchronisation. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface. Package files: SyncImport.php.

sync_departments

Department/team synchronisation. Capability version: 1.0. Mode: generated. Package files: SyncImport.php.

sync_orders

Order roster and order-event synchronisation. Capability version: 1.0. Mode: declarative. Interfaces: OpsIQ\Connectors\CommerceConnectorInterface.

sync_products

Product, catalog and inventory synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

sync_projects

Project, issue and workspace synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

customer_import

CRM customer roster import. Capability version: 2.0. Mode: generated. Runtime methods: listCustomers, backfillChunk. Interfaces: OpsIQ\Connectors\CustomerImportConnectorInterface.

security_events

Receive and emit security events. Capability version: 1.1. Mode: generated. Runtime methods: securityCapabilities, syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

security_native_block

Native remote IP/CIDR blocking. Capability version: 1.0. Mode: generated. Runtime methods: syncBlockedIp, removeBlockedIp. Interfaces: OpsIQ\Connectors\SecuritySyncConnectorInterface.

survey

Survey identity, audiences, recipients and variables. Capability version: 1.0. Mode: generated. Runtime methods: surveyAudienceCatalog, surveyAudienceFacts, surveyVariableCatalog, surveyVariables, surveyRecipientPage. Interfaces: OpsIQ\Connectors\SurveyConnectorInterface. Package files: SurveyProvider.php.

reply_feedback

Ticket reply feedback mirror (platform reply ratings land via the portal write method). Capability version: 1.0. Mode: generated. Runtime methods: replyFeedbackCatalog, pullReplyFeedback. Interfaces: OpsIQ\Connectors\ReplyFeedbackConnectorInterface.

promo_audience

Promotion targeting facts. Capability version: 1.0. Mode: generated. Runtime methods: subscribers. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

promo_feed

Promotion product/content feed. Capability version: 1.0. Mode: generated. Interfaces: OpsIQ\Connectors\PromotionConnectorInterface.

email_mailbox

Mailbox bus, outbound mail and address-book sync. Capability version: 1.0. Mode: generated. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

inbound_email

Receive inbound email. Capability version: 1.0. Mode: declarative. Runtime methods: poll, handleWebhook. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

outbound_email

Send outbound email. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

mailbox

Mailbox connector. Capability version: 1.0. Mode: declarative. Runtime methods: emailAccounts. Interfaces: OpsIQ\Connectors\MailboxConnectorInterface.

ai_tickets

AI triage and Inbox Copilot for remote tickets. Capability version: 1.0. Mode: generated. Runtime methods: loadTriageContext. Package files: AiOperations.php.

ai_reply

AI-assisted reply drafting. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

ai_brain_aware

Connector expertise supplied to Admin AI. Capability version: 1.0. Mode: generated. Package files: ai_expertise_admin.md, ai_api_reference.md.

native_api

Native API passthrough. Capability version: 1.0. Mode: generated. Runtime methods: registerActions.

platform_bridge

Signed platform bridge (for platforms with no API). Capability version: 1.0. Mode: generated. Runtime methods: registerActions. Package files: bridge/.

native_data

Local database/platform data adapter. Capability version: 1.0. Mode: declarative. Runtime methods: nativeDataProviders. Interfaces: OpsIQ\Connectors\NativeDataConnectorInterface.

crm

CRM capability provider (calendar, enrichment, telephony or customer data). Capability version: 1.0. Mode: declarative. Runtime methods: crmCapabilities. Interfaces: OpsIQ\Connectors\CrmCapabilityConnectorInterface.

block_registry

Remote sender block-registry synchronisation. Capability version: 1.0. Mode: declarative. Runtime methods: blockSender, unblockSender, isSenderBlocked. Interfaces: OpsIQ\Platform\BlockRegistryInterface.

inbound_comment

Inbound comment ingestion. Capability version: 1.0. Mode: declarative. Runtime methods: handleWebhook.

outbound_note

Outbound private note. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

outbound_notification

Outbound notification delivery. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

oauth

OAuth 2.0 authorisation. Capability version: 1.0. Mode: generated.

reviews

Review ingestion and response. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

cục bộ

Local search/location data. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

đây

SEO data and actions. Capability version: 1.0. Mode: declarative. Runtime methods: registerActions.

site_intelligence

Site Intelligence provider. Capability version: 1.0. Mode: declarative. Runtime methods: siteIntelligenceProviders. Interfaces: OpsIQ\Connectors\SiteIntelligenceConnectorInterface.

phân tích

Analytics data provider. Capability version: 1.0. Mode: declarative. Runtime methods: analyticsCapabilities.

comms

Communications/video-meeting provider. Capability version: 1.0. Mode: declarative. Runtime methods: commsCapabilities.

admin_assets

Connector-provided admin/account/public browser assets. Capability version: 1.0. Mode: generated. Runtime methods: adminAssets. Interfaces: OpsIQ\Connectors\AdminAssetConnectorInterface.

enterprise_hooks

Platform-native hooks and lifecycle callbacks. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

durable_queue

Durable outbox/inbox queue and retry policy. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

ticket_mirror

Bidirectional ticket mirror with conflict handling. Capability version: 2.0. Mode: extension. Interfaces: OpsIQ\Connectors\TicketMirrorConnectorInterface. Package files: EnterpriseExtension.php.

attachment_bridge

Attachment upload/download transfer. Capability version: 2.0. Mode: extension. Package files: EnterpriseExtension.php.

database_migrations

Connector-owned schema migrations. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

scheduled_workers

Connector-owned scheduled/background workers. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

conflict_resolution

Two-way sync conflict strategy. Capability version: 1.0. Mode: extension. Package files: EnterpriseExtension.php.

⚠️
Đặc điểm của công ty là nguồn có thẩm quyền. Đặt các quy tắc kinh doanh riêng biệt trên các điểm mở rộng được tạo ra; các gói xe đạp, hàng đợi, công nhân, di cư và hợp lệ vẫn còn hạn chế xây dựng.

Thiết lập tính đáng tin cậy trên mỗi hành động

Các đệ quy

Bao nhiêu lần để thử lại một cuộc gọi không thành công, với một cú lùi hai lần mỗi lần cố gắng. 429s Và 5xx lỗi được tái kết nối; 4xx là lỗi của yêu cầu của bạn và lặp lại nó sẽ chỉ đốt cháy giới hạn tốc độ của bạn.

Giới hạn

Trần nhà mỗi phút cho hành động này, vì vậy một kích hoạt bận rộn không thể nhấn nền tảng của bạn. 0 không giới hạn.

Hết giờ

Chờ đến khi anh từ bỏ.

Xác nhận

Yêu cầu một người phải chấp nhận trước khi hành động, sử dụng nó để phá hủy bất cứ điều gì.

Kiểu xác thực

Step 2 Cung cấp bảy mẫu, chọn mẫu khớp với nền tảng của bạn API Tài liệu hướng dẫn, máy phát điện phát ra đúng vị trí ứng dụng khách HTTP cho nó.

API khoá trong đầu trang

Một phím tĩnh được gửi như một đầu trang cố định, ví dụ X-API Bạn đặt tên đầu trang và nhãn quảng cáo nên hiển thị. Việc này gửi chìa khóa là chỉ đầu trang, nếu bạn API mong đợi phím là tham số truy vấn, thay vào đó hãy sử dụng tiêu đề Tự chọn hay kết nối đầy đủ.

Dấu hiệu mang

Token sent as Authorization: Bearer <token>. Common for modern APIs.

Cơ bản auth

Tên người dùng và mật khẩu, mã căn cứ 64 vào đầu trang. Bạn chọn nhãn cả hai trường hiển thị trên mẫu quảng cáo.

HMAC- ra dấu

Một chìa khóa công cộng và một bí mật, với cơ thể yêu cầu được ký. Bạn cung cấp đầu chữ ký, đầu khóa và đầu dấu thời gian mà nền tảng của bạn mong đợi.

OAuth 2.0 (Tiếng người dùng)

Máy phục vụ đến máy chủ, không có tương tác với người dùng và không chuyển tiếp. Bạn đưa ra hiệu bài URL và một phạm vi tùy chọn; admin cung cấp một chứng minh thư và bí mật khách hàng. Hãy dùng tùy chọn này khi nền tảng của bạn ủy nhiệm về một ứng dụng thay vì một người.

OAuth 2.0 ( Nút nhấn)

Dòng mã cho phép với PKCE, Stripe, Shopify, Slack Các ứng dụng kiểu nhanh và nhanh URLvật kỷ niệm URL Và phạm vi. sau khi xuất bản, admin clicks kết nối trên bộ kết nối, ủy quyền trên nền tảng của bạn, và OpsIQ lưu trữ các thẻ cập nhật và bạc hà truy cập theo yêu cầu URI để đăng ký trong của bạn OAuth Ứng dụng được hiển thị trên trang thiết lập kết nối của kết nối.

Đầu trang tự chọn

Hình thức tự do JSON sơ đồ đầu trang cho bất cứ điều gì các mẫu trên không bao gồm, ví dụ{"X-API-Key" :"{api_key}"," X-Tant:"{tenant_id} Mỗi người giữ vị trí trở thành một lĩnh vực trên mẫu đơn.

💡
PKCE chỉ áp dụng cho dòng chảy nút kết nối. Dòng chảy khách hàng không có chuyển hướng và không có bước đi nào cho người dùng, vì vậy PK không áp dụng được cho nó.

Kiểu thức chú giải

Hiệu

Dùng tham số bù đắp và hạn chế. Ví dụ: aoffset=100& Giới hạn =50.

Trang

Dùng số trang. Ví dụ: ?page=3&per_page=50.

Con trỏ

Dùng thẻ con chạy từ câu trả lời trước.

Đầu liên kết

Dùng đầu trả lời Link với mạng lưới rel="next".

Cấp cao: mã PHP tự chọn

Kết nối.php RTURNS một thể hiện. nó không tuyên bố một lớp tên màOpsIQsăn tìm. Tên phương pháp bên dưới là những cái mà Mặt kết nối yêu cầu; nhận một sai là một việc gây chết người, chứ không phải cảnh báo.

Kết nối. p — hợp đồng thật, tối thiểu và dễ dịch
<?php
/* connectors/myplatform/connector.php */
declare(strict_types=1);

use OpsIQ\Connectors\AbstractConnector;

require_once __DIR__ . '/Client.php';

return new class extends AbstractConnector {

    /* ── the three identity methods. NOT identifier()/label(). ── */
    public function slug(): string        { return 'myplatform'; }
    public function name(): string        { return 'My Platform'; }
    public function description(): string { return 'Orders and customers from My Platform.'; }

    public function capabilities(): array { return ['actions', 'context']; }

    public function settingsSchema(): array
    {
        $f = __DIR__ . '/settings.json';
        if (!is_file($f)) return [];
        $j = json_decode((string)file_get_contents($f), true);
        return is_array($j['settings'] ?? null) ? $j['settings'] : [];
    }

    /* ── NOTE THE ARGUMENT. testConnection() with no parameter is a fatal. ── */
    public function testConnection(array $settings): array
    {
        try {
            $resp = \OpsIQ\Connectors\MyPlatform\Client::callWithSettings($settings, 'GET', '/me', [], []);
            $code = (int)($resp['http_code'] ?? 0);
            return ($code >= 200 && $code < 300)
                ? ['success' => true,  'info'  => ['message' => 'Connection OK', 'http_code' => $code]]
                : ['success' => false, 'error' => "Verify endpoint returned HTTP $code"];
        } catch (\Throwable $e) {
            return ['success' => false, 'error' => 'Test failed: ' . $e->getMessage()];
        }
    }

    public function onEnable(array $settings): array  { return ['success' => true]; }
    public function onDisable(array $settings): array { return ['success' => true]; }

    public function handleWebhook(array $payload, array $headers, array $settings): array
    {
        return ['success' => true, 'note' => 'No triggers declared.'];
    }

    /* Inherited from AbstractConnector: reads actions.json for you.
     * Override only to ADD actions the manifest cannot express. */
    public function registerActions(array $settings): array
    {
        return parent::registerActions($settings);
    }
};
⚠️
Three things that fatal at class load rather than failing gracefully. The identity methods are slug(), name() and description() — not identifier() and label(). testConnection() TAKES an array of settings; a no-argument version is an incompatible signature. And there is no $this->http() or runAction() on AbstractConnector — HTTP goes through your own Client.php or through an action declared in actions.json.

Trình đơn xem ảnh

Khi nền tảng của bạn sở hữu một tấm vé, hãy phản chiếu nó vào OpsIQ ( Tạo ra để mua vé) subscribers() Phương pháp, ticket.created, ticket.replied, ticket.updated, ticket.deletedTự động, leo thang, SLA và CSAT tất cả các liên quan đến cùng một sự kiện, vì vậy bạn thừa kế chúng không có thêm mã.

Nếu anh chịu được ticket.deletedAnh cũng xử lý cả sự hợp nhất. Name merged_into và không được gửi đến một kết nối tuyên bố ticket_merge; sự kết hợp đến một lần như ticket.merged Thay vào đó, bạn có thể hợp nhất trên nền tảng của bạn hơn là đóng tấm vé nhập vào ở đó. Khả năng trộn bảng chọn (giao diện 2.4).

Nói xem ai đã viết thông điệp mở đầu

Vé luôn là khách hàng, nhưng thông điệp mở có thể được viết bằng nhân viênMột đặc vụ mở một vé trên mặt khách hàng, hoặc với tay ra tích cực. ticket.created Hợp đồng thay vì thứ gì đó mà mỗi liên kết giải quyết riêng tư.

author_type

Khách (mặc định) hay quản trị. Hãy bỏ nó và giả định khách hàng.

author_id

Nhân viên là khi tác giả_ Kiểu=admin. Không bao giờ là id khách hàng.

author_name

Đặc vụ hay đơn vị hiển thị tên, quay lại "Staff".

author_email

Địa chỉ đặc vụ. không phải khách hàng 1 tin nhắn dưới email của khách hàng là lỗi báo cáo và kiểm toán.

Đây không phải là mỹ phẩm. Người tiêu dùng đọc author_type Một bản báo cáo khai mạc nhân viên được viết như client để lại tự động-pearly đủ khả năng để trả lời một tin nhắn của riêng bạn đại diện của riêng mình đã viết, và làm cho các nền tảng của bạn vang vọng của rằng mở cửa trông giống như một thông điệp khách hàng mới, sau đó hạ cánh như một bản sao và lật vé đến trả lờiGhi lại tín hiệu của nền tảng bạn trên nó trong kết nối của bộ kết nối sự kiện chuẩnKhông bao giờ là khách hàng.

Chặn tập trung

Khi một tác nhân chặn một người gửi, nó áp dụng trên mỗi Kênh này lập tức (e-mail, chat, cổng, ô điều khiển và tất cả các máy kết nối) vì khối này được thực hiện trung tâm trước khi bất kỳ hệ thống kết nối nào thấy thông điệp. Kết nối của bạn thừa hưởng nó bằng cách không làm gì. Không có công việc nào đang chạy để thực hiện và không có cách nào để nó sai.

Nửa còn lại là raBảo với nền tảng của bạn một khách hàng bị chặn ở đây, chỉ khi nền tảng bạn có thể phát biểu điều gì tương tự.

Khả năng ()

Cần phải bao gồm chặn_ thử và lớp cần thực hiện BlockRgistry Interface. Cờ là một yêu cầu; giao diện là bảo đảm. Yêu cầu đăng nhập cả hai.

blockSender($b)

Nhận loại ( thề nguyền)ip Giá trị, lý do, admin_id, hết hạn dùng_tại , trang_key.

unblockSender($b)

Cũng như vậy, ngược lại.

isSenderBlocked($b)

Để hòa giải, người ta nói rằng sự trôi dạt không chỉ do một khách hàng khám phá.

Giá trị kết quả

Được rồi

Ứng dụng trên nền tảng của bạn bao gồm từ xa_ref khi bạn có một ID đáng để ghi âm.

noop

Đã ở trạng thái yêu cầu.

unsupported

Nền tảng của bạn không có khái niệm tương đương. Không phải là một lỗi.

bị lỗi

Bạn có thể làm được, và nó đã sai, bao gồm chi tiết; nó hạ cánh theo đường kiểm toán.

Giải thích là câu trả lời đúng. Nhiều nền tảng không có khái niệm "làm chặn người gửi" và cung cấp chỉ trích, mà ngăn chặn tính toán, đăng nhập và dịch vụ thay vì hỗ trợ thư. lập "một đại lý chặn một địa chỉ thư rác" vào "tách tài khoản của khách hàng này" sẽ để cho một khối bị lỗi kết thúc dịch vụ của khách trả tiền. Nếu đó là đòn bẩy duy nhất bạn có, hãy trở lại. unsupported và để nó yên.

Giải mã cũng bao gồm các trường hợp nơi nền tảng có thể Làm đi nhưng không cho phép. APIkhông phải là một tính năng: cái đòn bẩy chỉ tồn tại trong hệ điều hành của sân ga là cái cần gạt mà người nối của bạn không có.

Thí dụ làm việc : Zendesk (việc thực hiện tham khảo)

Đọc connectors/zendesk/connector.php alongside this. It is short, and every branch below is a decision you will face too.

Email→Được rồi

PUT /api/v2/users/{id} với lời yêu cầu mời của người sử dụng bị đình chỉ chuyển sang phết cửa cử dụng thay vì mở một ý tưởng tương từ việc chặn mộc gửi thư, và nó không dừng hoá đơn vì Zendesk kết thúc người dùng không có gì. Hãy trả lại id như là remote_ref.

miền→Không hỗ trợ

Zendesk có thể tạm dừng toàn bộ miền, nhưng chỉ thông qua đình chỉ: từ khóa trong các textarea danh sách chặn, và không API Đặc điểm tồn tại, còn đòn bẩy thì không.

ip →Không hỗ trợ

Không có cấp độ vé IP Có khối.

địa chỉ không rõ→noop

Zendesk không thể gửi một địa chỉ mà nó chưa từng thấy.

Đặc vụ hay quản trị→Không hỗ trợ

Nhân viên tạm dừng sẽ khóa một đồng nghiệp ngoài khu vực hỗ trợ.

Hàng cuối cùng đáng để sao chép. nên mỗi kết nối phải tự quyết định cái nó từ chối. detail Một người điều khiển có thể đọc, đánh bại sự vâng lời.

Báo cáo trung thực. Để ý là có rất ít hàng okĐó là kết quả đúng, không phải một khoảng trống: khối miền vẫn hoạt động (nó được thực thi trong lõi ngay khi nó được viết ra); nó đơn giản không thể phản chiếu bên ngoài. ok Đối với một cái gì đó bạn đã không làm sẽ nói với một nhà điều hành khối đến nền tảng của bạn khi nó không bao giờ rời đi OpsIQ.

Quy tắc

Khu nhà này luôn thắng.

Nó được viết trước khi bạn được gọi và đứng vững dù bạn có trở về gì, bạn cũng không thể ngăn cản một người điều khiển.

Không bao giờ ném

Một ném được coi là không hỗ trợ và ghi lại. Trả lỗi với chi tiết thay vì vậy lý do tồn tại.

Hãy trở nên toàn năng

Có thể thông báo cùng một khối này nhiều lần.

Quay lại nhanh lên

Mở rộng là đồng bộ với các nhấn chuột tổng đài. làm việc chậm hơn là mở yêu cầu.

Đừng gọi lại

Không bao giờ được trở lại OpsIQ Từ người quản lý của anh. nhưng một cú nhảy thứ hai sẽ lặp lại.

Mọi thông báo đều được viết cho opsiq_block_registry_log (Cười, tốt bụng, giá trị, lý do, biệt thự, nguồn gốc, đạn liên kết, kết nối, kết quả, chi tiết và nhãn thời gian) để một người điều khiển có thể thấy một khối nào đó đến từ nền tảng của bạn chứ không phải từ một tác nhân, và những gì mỗi kết nối đã làm về nó.

Đẩy đính kèm một cách chính xác

Đưa tay đây attachments dòng để tạo /addReply(). Mỗi mục mang tập tin theo một trong ba hình:

content_b64

Cơ sở64 của tập tin RAW, dùng cho tập tin nằm sau hậu auth (hầu hết các trường hợp đang đến). OpsIQ Giải mã nó và tạo lại tập tin cho bạn.

url/ source_url

Name URL (v. d. a Zendesk nội dung_url). Phải là https; vượt qua một kiểm tra S SSRF / cho phép danh sách trước khi cất giữ.

stored_path

Một tài liệu tham khảo đã được bạn ghi (những gì người soạn thảo bản địa tải lên)

Items also accept filename, mime_type and size_bytes. Caps: 12 MB/file, ~24 MB total, 10 files per call. Most platform read APIs return attachment Chỉ tên tập tin (không phải byte), vậy mô hình đáng tin cậy đang được đặt bên trong là: đọc các byte nơi mã của bạn chạy (bên trong nền tảng, hoặc từ việc tải xuống webhook), cơ bản64 và gửi chúng như content_b64 về sự kiện.

Ra khỏi xe (OpsIQ →nền tảng của bạn). Khi một đặc vụ gắn một tập tin, ticket.replied Tải về cho bạn các tập tin trả lời như stored_path mục dưới các cửa sổ OpsIQ Cửa hàng tập tin. đọc chúng và ấn vào định dạng của chính nền tảng của bạn, và kiểm tra các bác sĩ nền tảng, các vấn đề mã hóa: WHMCS muốn base64_encode(json_encode([[name,data]])) (JSON chứ không phải nối tiếp; Zendesk tải các byte thô lên /uploads.json để làm vật kỷ niệm rồi đặt comment.uploads; Gmail gửi một bộ phận đa phần/mixed RFC-822 Comment raw; Amazon SES inbound attachments need the S3 receive action (the SNS path caps at 150 KB).

Nền tảng ở xa: API + webok, không bao giờ bàn ứng dụng khác

Nếu nền tảng của bạn là một Ứng dụng hay cơ sở dữ liệu riêng (a hosted SaaS, a remote WHMCS Một chiếc DB khác trên cùng một máy chủ, Không bao giờ được viết trực tiếp bàn của nóHãy ghi các vùng đất qua dữ liệu vào bất cứ kết nối nào đang hoạt động và âm thầm bỏ lỡ hàng thật. Luôn luôn: ra = Gọi cho ban quản lý đã ký RTET API (repies, status, bộ phận, xóa) Đang trên đường = Nền tảng PSTs một webok đã ký, của bạn handleWebhook() Hẳn là nó sẽ cháy và khớp với nhau ticket.* Để ngăn chặn một vòng lặp gương, hãy đánh dấu những gì bạn ấn bằng một bộ định dạng (v. d. mirror_origin:'opsiq'); nền tảng phản hồi nó trên webok và bộ quản lý khách quan của bạn bỏ qua tiếng vang riêng của nó. Kiểm tra xem. OpsIQEvents::isMirroredEvent() trên tất cả các nhân viên.

Trạng thái phản chiếu, bộ phận ưu tiên

Đáp ứng di chuyển tự động trạng thái, a Đặc vụ trả lời→ answered, a khách trả lời→ customer_replyĐể thay đổi rõ ràng, đăng ký vào ticket.updated Đọc payload['changes'] (e. g. {status:'closed'}).

Trạng thái: OpsIQ Bộ chính điển của chính sách là open, customer_reply, answered, in_progress, pending, closed. Giữ một bản đồ hai chiều nhỏ để từ vựng của nền tảng của bạn, và đảm bảo rằng cột của bạn thực sự chấp nhận các giá trị bạn viết (a) ENUM Thiếu một giá trị sẽ bị bỏ vào rỗng trong cơ sở dữ liệu. Nhà ở: đã chọn OpsIQ Bộ phận nhận dạng là vô nghĩa về phía anh, Không bao giờ gửi nóHãy gửi cho người ghi chú (name, emailslug) và giải quyết nó chống lại bộ phận của riêng bạn bằng e-mail→tên→Viên đạn, vì vậy “ Ban tổ chức luật sư đáp xuống của bạn Thay vì là phòng hóa đơn ChungKích hoạt cả hai ticket.escalated và a department_id thay đổi ticket.updated.

💡
Tình trạng / ưu tiên / chủ đề / bộ phận / xóa phản chiếu được kiểm soát bởi các bật/ tắt theo kết nối (mirror_ status_ changes, mirror_ priority_ change, Mirror_ subject_ changes) đọc thông qua chia sẻ OpsIQ\ Connectors\ MirrorOptions helper. Bỏ khối đó vào thiết lập của bạn.json Và mỗi kết nối gương vé đọc các nút bấm giống nhau.

Liên kết vé đến sản phẩm / dịch vụ

Nếu khách hàng chọn một sản phẩm cụ thể khi mở vé, đóng dấu hiệu để người đại diện thấy một thẻ dịch vụ tập trung (với một cú nhấn chuột "xem các sản phẩm khác" cho phần còn lại). Qua bất cứ cái nào trong số này tạo():

related_service_id

Preferred: the service id exactly as it appears in your IdentityProvider::lookupCustomerServices() list (each service's id). Unambiguous match.

related_service_label

Một mã nguồn dịch vụ, e.g. WHMCS S396 ( Dịch vụ396/ D11 (ở lại11). OpsIQ Phân tích dạng chữ cái đặc biệt + id và tương ứng với danh sách dịch vụ của bạn, với kiểu bảo vệ miền để mã miền không bao giờ khớp sản phẩm của cùng một mã nhận diện. Hãy xác định giá trị chính xác của mỗi dịch vụ.

related_domain

Một tên miền, giống như một chuỗi phụ chống lại chi tiết/ miền của mỗi dịch vụ.

💡
Xây dựng danh sách đính kèm một lần, trong hình bên trên, và OpsIQ Giải quyết phần còn lại: hosted URLs được truyền qua và nội dung cơ sở64 được lưu trữ và hoạt động lại cho bạn. bạn không cần phải viết tập tin thay phiên bản.
⚠️
Phím hành động là chữ thường, chữ số và lời nhấn mạnh. Người xây dựng chấp nhận3phải80ký tự và cũng cho phép chấm; các cửa hàng hành động chấp nhận2phải100Các ký tự không có dấu chấm, vậy hãy giữ cho chữ cái, chữ số và lời nhấn mạnh và bạn thỏa mãn cả hai. Thêm vào một hành động không tạo ra tuyến đường AJAX, vì vậy không có gì để tái tạo — nối lại kết nối và nó được đồng bộ hóa.

Hãy để Al xây dựng nó cho bạn

Bạn không cần phải điền 6 bước bằng tay. Mô tả bộ kết nối bằng chính lời của bạn vàOpsIQ'Các AI soạn thảo toàn bộ đặc điểm kỹ thuật, chạy nó thông qua cùng một hợp lệ hóa các phù thủy sử dụng, và cho bạn thấy kế hoạch trước khi bất cứ điều gì được viết ra đĩa. Có hai nơi để làm điều đó, và họ sản xuất cùng một gói.

Trong phù thủy

Mở Nối→+ Thêm kết nối→Xây dựng kết nối.. trên bước1Rồi em sẽ thấy. ✨Xây nó cho tôiHãy đánh dấu kết nối — nền tảng, cái gìOpsIQnên đọc và nên viết gì, và ai dùng sách này — thêm vàoAPIgốc nếu bạn biết nó, và nhấn nó. Trợ lý lấp đầy mỗi bước trong bản nháp, và bạn duyệt và chỉnh sửa chính xác như thể bạn đã gõ nó.6bảng điều khiển cùng xuất hiện ✨Hòa hợp với AI, vì vậy bạn có thể yêu cầu một sự thay đổi ("cũng đọc hóa đơn") thay vì biên tập trường.

Bằng cách hỏiOpsIQ

Mở cửa ra Hỏi OpsIQ Phi công phụ ở bất cứ đâu trong quảng cáo và nói những gì bạn muốn. Bạn không bao giờ cần phải đặt tên hành động hoặc biết các phù thủy tồn tại.

1
Hỏi đi.

Ví dụ như: "Hãy xây dựng một hệ thống kết nối cho Trello, nó nên liệt kê các bảng và danh sách của tôi, đọc bài, và tạo ra một lá bài trên bảng.APIChìa khóa cộng với hiệu bài." Các phi công phụ trả lời trong một câu và hiển thị một Nháp bộ kết nối này Tin nhắn của bạn là tóm tắt, hãy đặt nền tảng, đọc và viết trong đó.

2
Xác nhận bản nháp

Chưa có gì được viết. Các phi công phụ soạn thảo các chi tiết, xác nhận nó và trả lời với kế hoạch: những gì bộ kết nối làm, hành động mà nó phơi bày (được đánh dấu), những giả định của nó, và những câu hỏi bạn vẫn phải trả lời — thường là giấy ủy nhiệm để cung cấp.24giờ.

3
Nói "làm ra nó"

Phi công phụ cho thấy một Xây dựng card naming the connector and its slug. This one writes: it publishes the package into /connectors/<slug>/. Confirm it and you get the path back, together with the setting you still have to fill.

4
Nhập thông tin và bật

Bộ kết nối mới được xuất nhưng KHÔNG bật, và nó không giữ bí mật. Mở thiết lập, nhậpAPIphím hay vật tượng trưng, nhấn ThửVậy thì BậtCho đến khi anh làm được, nó không có tác dụng gì cả.

💡
Cả hai thẻ cần nhấn. Bước nhập khẩu không viết gì cả; bước xây dựng được đánh dấu sự phá hủy và luôn luôn hỏi. AI không thể xuất bản một kết nối, bật một hay nhập một dấu chấm trên riêng nó.

AI là gì và không được phép làm gì

Bộ tạo tác vụ là bức tường

Đặc tả được soạn thảo cũng đi qua cùng một hiệu lực () nút Publish của phù thủy dùng. Nếu nó không được thông qua, AI được đưa ra lỗi và thử lại, đến ba lần, rồi từ chối trong chính những từ của nhà tạo chứng nhận. Một bản nháp thất bại sẽ không bao giờ trở thành gói.

Không có giấy ủy quyền

Các tên soạn thảo để xác thực và trường thiết lập; nó không bao giờ phát minh ra một phím, dấu hiệu hay mật. Bạn điền vào những tên này sau đó trên trang thiết lập kết nối của bộ tạo.

Nó trả lời bằng câu hỏi, không phải đoán mò.

Bất cứ điều gì mà kế hoạch không biết — tài khoản của bạn, vùng nào trong hai điểm cuối của kế hoạch bạn vạch trần — đều được nêu ra để đặt câu hỏi về kế hoạch thay vì một giả định thầm lặng.

Một điểm kết thúc được phát minh ra thất bại to lớn

Một con đường sai lầm cho thấy hành động của mình thất bại trong việc thử nghiệm trực tiếp trên các bước hành động hoặc lần đầu tiên nó chạy — nó không bao giờ là một thành công im lặng.

Gói này là bình thường

Cái mà nó tạo ra là một gói Xây dựng bình thường: tập tin tạo ra cùng một tập tin, hợp đồng, ký hiệu, sửa chữa được trong trang kết nối. Không có riêng lẻ kiểu "AI linkor".

Người mẫu của bạn làm việc soạn thảo

Chất lượng đi theo mô hình bạn đã cấu hình theo thiết lập→AI. Một mô hình nhỏ, rẻ phác thảo một kết nối đúng nhưng rõ ràng và hỏi nhiều hơn; một mô hình mạnh mẽ hơn nhận được nhiều điểm cuối lần đầu tiên.

⚠️
Công cụ phụ chỉ có thể chạy các hành động cài đặt này thật sự đã đăng ký. Nếu bộ xây dựng còn thiếu, một kế hoạch không gồm chúng, hoặc một vai trò không có manage_connectors — phi công phụ nói vậy thay vì đưa một tấm thiệp mà sẽ thất bại khi nhấn vào.
Trình kết nối

Bán qua chat: bản đồ vai trò thương mại

Một hệ thống kết nối có thể bán được — một nền tảng cửa hàng, một hệ thống đặt phòng, một cửa ra vào thanh toán — tuyên bố câu trả lời cho các hoạt động độc quyền của nó OpsIQVai trò thương mại chính thống của nó. Khai báo nó và kết nối xuất hiện dưới Thiết lập → Tán gẫu với khách → Tự động bán qua trò chuyện; thôi tuyên bố và nó biến mất. Không có danh sách cần đăng ký.

Tập tin: commerce_roles.json

Bản tuyên bố này sống trong tập tin của chính nó tại gốc gói — Sự hiện diện của tập tin là tuyên bốNó không thể sống ở connector_contract.json: tập tin đó được tái tạo bởi các công cụ gói và giản đồ từ chối các phím lạ, vì vậy một khối đóng dấu tay sẽ bị lỗi kiểm tra và sau đó được ghi đè.

commerce_roles.json
{
  "commerce": {
    "roles": {
      "catalog_search": { "operation": "acme_search_products", "transport": "http" },
      "customer_lookup": { "operation": "acme_customer_lookup", "transport": "http" },
      "quote":          { "operation": "acme_quote_order",     "transport": "http" },
      "payment_methods": { "operation": "acme_payment_methods", "transport": "http" },
      "order_get":      { "operation": "acme_get_order",       "transport": "http" },
      "order_create":   { "operation": "acme_create_order",    "transport": "http",
                          "recovery": "acme_get_order" }
    },
    "customer_ordering": {
      "enabled": true,
      "version": 1,
      "mode": "direct_order",
      "audience": "clients_only",
      "account_flow": "existing_client",
      "payment_flow": "connector_methods",
      "identity_parameter": "external_customer_id",
      "quantity_parameter": "quantity",
      "label": "Acme Store",
      "checkout_hosts": [],

      "transaction_kind": "purchase",
      "decision_mode": "immediate",
      "payment_timing": "on_confirmation",
      "reversibility": "reversible",
      "cancellation_flow": "platform_only",
      "fulfilment_presence": "remote_delivery",
      "notify_flow": "platform_automatic",
      "customer_fields": {"name": "required", "email": "required", "address": "required", "phone": "optional"},
      "client_tools": ["catalog_search", "catalog_get", "quote"],
      "account_timing": "before_quote"
    }
  }
}

Quy tắc, và tại sao mỗi cái đều tồn tại

Vai trò là một từ vựng đóng cửa

OpsIQMột vai trò không được tuyên bố là không tồn tại - tuyên bố toàn bộ hợp đồng.

Chiến dịch phải là một trong những hành động của bạn

Mọi hoạt động bản đồ đều tồn tại trong bạn actions.jsonMột lỗi đánh máy tuyên bố một khả năng không thể chạy, và nó xuất hiện với một khách hàng như "Tôi có thể kiểm tra điều đó cho bạn" không theo sau không có gì.

Một vai trò đọc không bao giờ chỉ vào một thao tác phá hủy

Những vai đọc (catalog, có sẵn, trích dẫn, lệnh) phải được vẽ để các hoạt động không thay đổi gì trên nền tảng của bạn.

Một vai trò ghi không bao giờ vẽ bản đồ cho một thao tác ghi hồ sơ chung

Mã hóa order_create để chèn vào bảng thô — record.create, db.insert, recordCreateMột hàng được viết trực tiếp qua giá trị của nền tảng, khóa cổ phiếu và thư xác nhận, tạo ra một lệnh mà hệ thống của bạn không hoàn toàn tin tưởng.

Vai trò viết tuyên bố một thao tác phục hồi

Một quyền ưu tiên nhìn lên câu trả lời "đã làm cho vùng đất viết của tôi?". Thời hạn nguy hiểm nhất là sau khi nền tảng của bạn có thể đã tạo ra thứ tự, mà không cần xem xét lại các tùy chọn duy nhất là thử lại hay mất nó.

Chức vụ thanh toán nhà cung cấp bao gồm ba nghĩa vụ thêm

Một gói nói chuyện trực tiếp với nhà cung cấp thanh toán cũng phải tuyên bố payment_profile (Thỉnh thoảng, quốc gia, phương pháp và môi trường - một môi trường không được khẳng định là cách mà sự kết hợp thử nghiệm nhận tiền trả trực tiếp, webhook_verify (bộ đồ thật sự của nhà cung cấp; một bí mật chung bị từ chối) event_map Một nhà buôn chỉ thực hiện các giao dịch record_payment Nhận được đã xác nhận bằng chứng thanh toán chính thức; nó không phải là cánh cổng.

Nói cách khách hàng đặt hàng từ một cửa hàng kết nối

Một người giao dịch và một người giao hàng bán hàng là những hợp đồng khác nhau. Name, chọn chế độ sâu nhất mà nền tảng có thể chứng minh. Sự lựa chọn được đóng gói bên trong đã ký commerce_roles.json; Lưu và máy khách Chat đọc lại nó trong lúc thực hiện. Gỡ bỏ vai trò hoặc tắt/un cài đặt kết nối vì vậy không hợp lệ hoá một đề nghị đã được tạo trước thay vì để lại uy quyền cũ sau.

catalog_only

Bản đồ catalog_search hay catalog_get. OpsIQcó thể tìm kiếm và giải thích các sản phẩm, nhưng nó không thể hiển thị một lệnh thực hiện được hoặc kiểm tra xác nhận. Mỗi gói còn lại ở giá trị mặc định chân thật này cho đến khi chính nó gõ và hành động đăng ký/ thứ tự qua hợp đồng và chứng nhận Thị trường sâu sắc; không bao giờ suy ra hỗ trợ giao dịch từ tên nền tảng.

platform_checkout

Bản đồ quoteplatform_checkoutHành động thương nhân chứ không phải...OpsIQlõi checkout_url, checkout_reference và trích dẫn chính điển.URLphải là HTTPS, tên máy của nó phải khớp customer_ordering.checkout_hosts hoặc máy HTTPS bắt nguồn từ checkout_host_settingVà câu trích dẫn có thể sống không hơn 15 Một sản phẩm permalink, một xe đẩy lắp ráp cục bộ URL hay quay lại URL Không phải là một khả năng thanh toán thương mại.

direct_order

Bản đồ quote, order_createorder_getVới order_create.recoveryThư mục này sẽ được cập nhật ngay trước khi thi hành, cung cấp chìa khóa vô hạn, và yêu cầu thao tác phục hồi sau mỗi kết quả chưa được biết trước khi có thử lại. Khi nào thì khi nào thì thử lại? payment_flow=opsiq_gatewayNó phải là bản đồ thêm record_payment với một thao tác phục hồi có thẩm quyền/ đọc ngược.OpsIQHãy tích cực xác nhận giao dịch ngoài trời, số lượng khớp, tiền tệ, thương gia và tham khảo thứ tự, viết một lần về nhà cung cấp, rồi đọc lại lời mời của người lái buôn. mark_invoice_paid Trạng thái bật lên bị từ chối vì nó không mang bằng chứng thanh toán. hành động tạo ra phải đòi hỏi giá trị của nền tảng, cổ phiếu và yêu cầu kinh doanh; cơ sở dữ liệu thô bị từ bỏ.

Xác thực danh tính, và những gì người điều hành có thể thay đổi

KhiOpsIQChính quyền sở hữu thanh toán, một khách hàng trò chuyện phải đạt được email_otp Trước khi một trật tự được tạo ra —OpsIQemail6Đây không phải là một cái gì đó một kết nối tốt nhất ra khỏi; nó là sàn bảo đảm nhân thực hiện yêu cầu order_create.

Một ngoại lệ duy nhất, và ai kiểm soát nó.

Một người điều khiển có thể chấp nhận một địa chỉ không được sửa đổi chỉ khi người dùng tuyên bố fulfilment_presence: customer_presentKhách khách sạn phải đến, nên nhầm địa chỉ để đánh lạc hướng hóa đơn và căn phòng vẫn còn đó. remote_delivery — vận chuyển, cung cấp, tải về — và xác nhận bất cứ điều gì người điều hành đặt ra, vì chỉ riêng địa chỉ này có giá trị. minimum_assurance hay reversibility: irreversible cũng loại bỏ khả năng của người điều hành để bỏ nó.

Mã của nó còn bao lâu?

30 phút theo mặc định, có thể điều khiển từ5phút tới24Khách hàng thấy đồng hồ đếm ngược trực tiếp được vẽ vào của riêng họ Một mã quá hạn nói rõ ràng và đưa ra một mã mới thay vì báo cáo một mã không hợp lệ - một khách hàng gõ một mã đúng nhưng cũ đã không sai, và nói với họ rằng họ đã gửi chúng vòng lặp đó.

Những gì khách hàng phải cung cấp: khách hàng_fields

Tên và email luôn được yêu cầu và được thu thập trước. address, phonecompany as required hay optional để làm ăn: một cửa hàng mà các bưu kiện tàu tuyên bố địa chỉ cần thiết; một điện thoại của khách sạn cần thiết, vì khách mời không thể gọi không có liên lạc đặt chỗ. Trợ lý hỏi họ trong cuộc đối thoại trước khi trích dẫn, vàOpsIQTừ chối đặt một thứ tự mà không cần đến một lĩnh vực yêu cầu. nên hợp đồng trên đĩa là rõ ràng.

Khi tài khoản được tạo: Tài khoản_timing

at_order (mặc định) Hãy để thứ tự ghi tạo tài khoản của người mua lần đầu tiên. before_quote khi nền tảng của bạn giá cả mỗi tài khoản —WHMCSTiền thuế của khách hàng và trích dẫn trong tiền tệ của họ — vàOpsIQtạo tài khoản thông qua bạn customer_create Hành động ngay khi các trường được biết đến, sau đó hỏi trích dẫn cho tài khoản đó, vì vậy thẻ xác nhận mang tổng số hóa đơn bạn sẽ thực sự miễn phí. account_flow: connector_signup.

Trợ lý lấy, nó không đọc: ứng dụng khách_công cụ

Khi tạo ra mệnh lệnh, người phụ tá không bao giờ đọc một cuốn sách tham khảo có dán giấy. commerce_catalog_search (Một truy vấn rỗng là tổng quan của các gia đình sản phẩm; kết quả trên hết các giới hạn được liệt kê bằng tên), commerce_catalog_get cho một món đồ đầy đủ, và commerce_quoteNó làm bạc màu cho máy chủ thẻ đã ký ở cạnh nhau trên cùng một bức tường đường dẫn mà luôn có. một công cụ mỗi động từ, kết nối như một tham số, nên một cửa hàng với sáu máy tính sẽ nhận được ba công cụ thay vì 18 client_tools Hạn chế mặc định; vắng mặt có nghĩa là mỗi bản đồ, và a catalog_only Kết nối không bao giờ trích dẫn. Xác nhận không bao giờ là công cụ: cái nút trên mạng, chính xác CONFIRM và không có gì mà người mẫu nói tiêu tiền.

Mục danh mục nên chứa những gì

id, nameMột khách hàng an toàn summary, a category hay sản phẩm gia đình (đây là cách mà từ ngữ của khách hàng tìm thấy một món đồ có tên là mã), currency, unit_amount_minor, available, và input_schema Hãy nêu tên những cánh đồng mà khách hàng cần phải đặt, tìm hiểu xem có lời nào không nghịch lại tên, gia đình, chu kỳ và tóm tắt.

Từ chối với một lý do khách hàng có thể hành động trên

Trả lại {"success":false,"error":"…","missing":["domain"],"retryable":true} khi một giá trị là sai hoặc thiếu. missing hay retryable Đến được với động từ khách hàng; thất bại thường là chung nên không có gì rò rỉ bên trong.

Thị trường địa lý và trạm dừng khẩn cấp

Khi người điều hành bật tiền tệ Geo→Ứng xử của khách hàng là xem giá cả trên mọi bề mặt — văn bản chat, thẻ web, thẻ văn bản và tiền tệ cửa hàng — dùng cửa hàng FX riêng của họ. Giá của bạn không bao giờ thay thế: thẻ này cho thấy hình người khách bên cạnh cửa hàng, và cổng ra vào trình bày chính xác số tiền mà họ trưng bày. Tạm dừng bán (]→Thương mại) là công tắc giết người: catalog, trích dẫn và tra cứu vẫn mở; đề xuất và xác nhận dừng lại trên mỗi kênh.

Khi bán qua chat không cư xử

Không thể tiếp cận được người thương nhân

Ấn bản đóng dấu của gói này bị hỏng: một tập tin được biên soạn sau khi ký.

Sắp xếp đã bị tạm dừng cho cửa hàng này ngay bây giờ

Công tắc tắt đã bật.→Thương mại→Ngừng bán.

Sắp xếp chưa sẵn sàng trên kênh này

Kênh này không được bật theo nơi khách hàng có thể mua. Máy phục vụ ghi lưu kênh.

Trợ lý mô tả một mục nhưng không có thẻ

Công cụ trích dẫn từ chối mọi cuộc gọi đều được ghi lại như [opsiq][commerce][client_tool] Với lý do: một món đồ sai, một cánh đồng không tuyên bố, một lãnh thổ đã chiếm lấy hoặc từ chối của chính người lái buôn.

Trợ lý nói nó không thể thấy các sản phẩm

Trang thuộc về một vùng làm việc khác. Mỗi ô điều khiển nơi Mạng thuộc về chỉ một không gian làm việc, và thiết lập kết nối cửa hàng phải được bật ở đó.

Một câu trả lời có hộp thay vì một câu trả lời

“ Hãy cho tôi biết thêm một chút về những gì bạn cần có nghĩa là nhà cung cấp Al gọi là thất bại; Lịch sử Al cho thấy lỗi chính xác dưới đường đó, và các công cụ không bao giờ đạt được.

Không hiện một sửa đổi kết nối trong trò chuyện

Công nhân tái chế mã trong vòng một phút, nhưng cuộc trò chuyện lại lặp lại lá bài cuối cùng của mình.

Một vị khách Nigeria thấy đồng đô la mặc dù tiền tệ Geo là trên

Kiểm tra vị trí...IPCơ sở dữ liệu đã được cấu hình (Cuent Chat)→Geo) và tiền tệ của du khách có mức FX; không có tỷ lệOpsIQcho thấy giá cả cửa hàng chứ không phải là số sai.

Tổng cộng là con số duy nhất di chuyển tiền

Có một câu trích dẫn unit_amount_minor, quantitytotal_amount_minorVà thật hấp dẫn khi xem xét hai điều đầu tiên có thể được thực hiện, và giả sử rằng nó đã tốn kém của khách hàng.

quantity Đó là điều mà người lãnh đạo đã chọn — một phòng, một bằng lái, một chính sách.OpsIQKhông bao giờ nhìn thấy: đêm, ghế, hóa đơn, khoảng cách, trọng lượng, dây hoa văn.1đơn vị105,000Tổng cộng315,000. OpsIQnhân đơn vị với số lượng để giá một thẻ xác nhận, cho thấy khách105,000và sau đó buộc tội315,000Hợp đồng với một người và bị buộc tội khác là điều tệ nhất mà hợp đồng này có thể làm.

Luật

total_amount_minor là con số duy nhấtOpsIQcho thấy, dấu hiệu, cáo buộc và sự hòa giải chống lại. unit_amount_minor Nếu tổng số của bạn không chính xác là những gì bạn muốn sạc, câu nói của bạn sai —OpsIQsẽ không sửa chữa nó, vì tổng số đã được điều chỉnh một cách hữu ích là một trong những điều mà bạn chưa bao giờ đồng ý tôn trọng.

Điều này có nghĩa gì cho hành động trích dẫn của bạn

Trả lại tất cả số tiền đó. nộp đơn vị nhân với một số lượng không bao giờ bằng tổng số của bạn--OpsIQxem toàn bộ vấn đề như một đường thẳng với giá thật thay vì tạo ra sự sụp đổ không thể hòa giải được.

Sáu câu trả lời khiến hợp đồng này phù hợp với bất kỳ ngành công nghiệp nào

Lời khai ở trên bắt đầu như một tuyên bố của cửa hàng: mua một thứ, trả ngay bây giờ, nó là của bạn, bạn có thể hủy bỏ. Mỗi một trong bốn người này là giả định một số doanh nghiệp thực sự không chia sẻ. Một ngân hàng di chuyển tiền không thể hủy nó. Một bảo hiểm không thể nói "bảo hiểm" cho đến khi một biên tập viên đã tìm kiếm. Một danh sách thương mại invos sau đó. Một người nào đó không phải là bệnh nhân. Không có cách nào để nói, những doanh nghiệp đó xuyên tạc quá trình riêng của họ cho khách hàng của họ hoặc không thể kết nối tất cả.

Vì vậy, một giao dịch kết nối trả lời sáu câu hỏi nữa. Tất cả đều mặc định cho việc đọc sách nghiêm ngặt — nói không gì luôn luôn an toàn và không bao giờ dễ dãi, vì không nói gì là điều một tác giả làm khi chưa xem xét câu hỏi.

transaction_kind

purchase, booking, subscription, bill_payment, transfer, application, top_up, renewal. từ vựng thay vì hành vi: nó quyết định từ mà khách hàng của bạn đọc. Gọi một chuyển khoản một lệnh dây làm cho trợ lý nghe như nó không hiểu các doanh nghiệp nó nói, và không có số lượng chính xác hệ thống phục hồi từ đó. Mặc định là không có gì để phục hồi lại từ đó purchase.

decision_mode

immediate hay deferredChọn... deferred vì bất cứ điều gì được viết ra, đánh giá tín dụng, tham khảo, nhập học hay ủy ban.OpsIQsau đó nói nộp thay vì Xác nhậnvà đưa cho ai đó để hỏi về nó. Nói với ai đó ứng dụng của họ được xác nhận trong khi nó ngồi với con người là điều tai hại nhất mà một trợ lý chat có thể làm cho một doanh nghiệp đã quy định, và đó là hành vi mặc định của mọi dòng chuyển giao bán lẻ. Mặc định là các quyền sử dụng của mỗi dòng điện có vẻ như vậy. immediate.

payment_timing

on_confirmation, deposit_then_balance, invoice_later hay no_payment.. điều này quyết địnhOpsIQmở trang thanh công cụ Không có gìVì vậy, nó không thể được suy ra từ payment_flow - thì nói là Ai Lấy tiền đi, cái này nói Cho dù và khi nào. làm việc bạn nhận hóa đơn sau đó, và ứng dụng mà không tốn tiền để đệ trình, kết thúc tại xác nhận thay vì đạt được một danh sách cửa ra trống hoặc sai.

reversibility

reversible hay irreversibleMột điều quan trọng nhất mà một người có thể nói là một căn phòng có thể được thả ra và một bưu kiện có thể trở lại; một sự chuyển nhượng hoàn toàn không thể — tiền ở đầu bên kia, và phương thuốc duy nhất là yêu cầu một người lạ trả lại. irreversible tự động lực cancellation_flow phải none và cấm bất kỳ người điều hành thiết lập từ bỏ việc xác minh danh tính, Bất cứ điều gì khác khai báo này nói. 2 trường không đồng ý không phải là một trạng thái để giải quyết trong thời gian chạy bởi bất cứ trường nào được đọc trước. Mặc định là reversible.

cancellation_flow

none, platform_only hay connector_cancel.. Các vai trò hủy bỏ đã có với không có quy định về những người có thể đạt được chúng, và hai dự đoán sai thất bại theo các hướng ngược lại: đoán mở và một tin nhắn chat hủy bỏ một đặt hàng trả tiền mà không được trích dẫn; đoán đóng và một khách hàng muốn hủy cuộc gọi điện thoại. connector_cancel Thêm yêu cầu cancellation_quoteorder_cancel với sự hồi phục —OpsIQchưa bao giờ hủy bỏ trước khi nói giá trị nó. Mặc định là none.

fulfilment_presence

customer_present hay remote_delivery. Dù một địa chỉ email không được sửa đổi có thể gây ra bất cứ giá trị nào cho bất cứ ai. Khách khách sạn phải đến, vì vậy sai địa chỉ, đánh lạc hướng một biên lai và phòng vẫn còn đó; một bưu kiện đã đăng ký, một máy phục vụ đã cung cấp hoặc một liên kết để lại trên sức mạnh của địa chỉ đó riêng. Đây là điều làm cho thiết lập "skip email xác thực" của một nhà điều hành có thể nhận được ở tất cảVì thế, lý luận của khách sạn không bao giờ được thừa hưởng bởi một người có mối liên hệ nào đó mà hàng hóa thì lại được công bố. remote_delivery.

minimum_assurancedisclosure (tùy chọn)

minimum_assurance Cho phép bạn yêu cầu thêm Chứng minh danh tính hơnOpsIQCần phải, không bao giờ ít hơn — một ngân hàng đòi hỏi một sự gia tăng để chuyển nhượng là việc thực hiện hợp đồng, và cũng cần phải loại bỏ khả năng của người điều hành để bỏ việc xác nhận thông tin liên kết, vì quyết định rủi ro của một thương gia vượt quá mức thuận lợi của người sử dụng máy. disclosure hiện các từ trước nút xác nhận, với một mức giá, phí hoặc quyền giảm giá bạn phải có; không cần nó, điều chỉnh việc buôn lậu cần thiết để tạo ra tên của sản phẩm.

notify_flow

platform_automatic, platform_triggered hay noneKhiOpsIQnhận tiền thanh toán của chính bạn không bao giờ chạy, vì vậy bất cứ điều gì nó thường email không bắn. ghi lại các dấu hiệu thanh toán được trả tiền; nó buộc không có nền tảng để nói với ai. platform_triggered yêu cầu order_notify đóng vai trò với sự hồi phục, vàOpsIQchỉ hỏi sau khi đọc ngược lại chứng minh tiền đã được ghi nhận. none làm raOpsIQ- bên ngoài bắt buộc phải xác nhận, bởi vì nếu không một khách hàng trả tiền sẽ không nghe thấy gì cả. none.

Cùng một hợp đồng, 9 doanh nghiệp không liên quan.

Mỗi hợp đồng trả lời trung thực cho một ngành công nghiệp khác, vớiOpsIQKhông biết gì về họ.

Một hợp đồng, chín ngành công nghiệp.
Hotel        booking      immediate  deposit_then_balance  reversible    -> payment page, "confirmed", identity may be waived
Online shop  purchase     immediate  on_confirmation       reversible    -> payment page, "confirmed", identity always verified
Bank         transfer     immediate  on_confirmation       IRREVERSIBLE  -> payment page, no cancel route, never waived
Insurer      application  DEFERRED   no_payment            reversible    -> no payment page, "submitted", never "confirmed"
Utility      bill_payment immediate  on_confirmation       IRREVERSIBLE  -> payment page, nothing to give back
Clinic       booking      immediate  invoice_later         reversible    -> NO payment page, billed afterwards
Tradesman    booking      immediate  invoice_later         reversible    -> NO payment page, invoiced on completion
Telecom      top_up       immediate  on_confirmation       IRREVERSIBLE  -> payment page, final once sent
University   application  DEFERRED   no_payment            reversible    -> no payment page, decision follows
Name

Sau khi một khoản thanh toán trước cửa hàng bản địa được xác nhận và cam kết,OpsIQphát ra payment.completedorder_id, payment_id/provider_ref, gatewayChính xác amount_minor, ISO currency, khách hàng, mục dòng, kênh và paid_at.. một người buôn bán phải tiếp tục chứng cứ đó thông qua record_payment và đọc lại nó đi; một máy kiểm tra kết nối tiêu thụ sự kiện có thẩm quyền của riêng mình và không được nhận một bản sao thanh toán.

Al là một nhà đề xuất, không phải nguồn quyền lực.

Mô hình có thể chọn một sản phẩm và số lượng đã được công bố, nhưng nó không thể chọn tên của thao tác, bạc hà một chi phiếuURLhoặc tạo tình trạng thương mại từ văn bản. Khách hàng nhận một thẻ đã ký tên chính xác và phải nhấn nút xác nhận đó. Việc xác nhận này bị ràng buộc vào khoảng không làm việc, kết nối, mục, số lượng, trích dẫn, tiền tệ, chỉ và expiry.

Khách hàng xã hội giữ dòng chảy tương tự mà không cần nhắc email

WhatsAppNgười đưa tin,Instagram, TelegramLời đề nghị này được ký vào tài khoản của cơ quan và xác nhận vẫn được thông qua cùng một câu trích dẫn mới, cổ phiếu, tính chất toàn năng, thanh toán và phục hồi.

Sắp xếp lịch sử theo một liên kết nhận dạng chính xác, không bao giờ đoán thư điện tử

Lệnh bản địa được chỉ ra bởi một đặc điểm nhận dạng kênh mờ nhạt, vì vậy AI có thể trả lời “địa chỉ của tôi ở đâu?CRM Họ không được chọn một tài khoản từ tên hiển thị hoặc một email gõ vào trò chuyện. Với một thứ tự tương ứng các câu trả lời AI trực tiếp; với nhiều đáp án tóm tắt các đối số và hỏi; không có một cái nào cho biết lịch sử liên kết.

Tạo ra danh tính của hàng loạt: các trường đã gõ và máy chủ

Không có lõi chứaWHMCSCác câu Kinh Thánh được đánh dấu parameters Một nhà phân phối sách có thể tuyên bố ngày tháng và khách hàng; một hóa đơn kết nối có thể công bố một chu kỳ; một công ty trong tương lai kết nối sẽ tuyên bố các lĩnh vực an toàn riêng của mình.OpsIQLàm sạch các điều khiển sơ khai và gửi giá trị thu thập chỉ đến hành động kết nối bản đồ.

Hành động trích dẫn gõ
{
  "action_id": "acme_customer_quote",
  "scope": "client",
  "is_destructive": false,
  "parameters": [
    {"name":"external_customer_id","type":"string","required":true},
    {"name":"item_id","label":"Product","type":"string","required":true},
    {"name":"quantity","label":"Quantity","type":"integer","required":true,"minimum":1},
    {"name":"cycle","label":"Billing cycle","type":"select","required":false,
     "options":[{"value":"monthly","label":"Monthly"},{"value":"annual","label":"Annual"}]}
  ]
}

clients_only, đã đặt customer_ordering.identity_parameter không bao giờ hiển thị cho khách hàng và bất kỳ giá trị người gọi ứng dụng nào;OpsIQChỉ tiêm ID từ liên kết đã kiểm tra. Kiểm tra khách để lại nó trống. Một email đã gõ là bằng chứng cho việc tìm kiếm khách, không phải đăng nhập mà không mua quyền.

Miền đã nhóm: Các tài khoản khách hàng đã ký và cấu hình kết nối thuộc về không gian làm việc của nhóm, tuy nhiên, phải ký tên cho vị trí thành viên chính xác mà nhúng các thiết bị đó vào, sử dụng bí mật móc kéo của thành viên đó.OpsIQchứng minh rằng bề mặt đó trước và chỉ sau đó giải quyết thương mại và khách hàng liên kết thông qua nhóm chính. Không bao giờ thay thế chìa khóa vị trí thành viên bằng chìa khóa chính và không bao giờ sao chép bí mật chính vào một trang web hội viên.

Phong bì chính thống phải trở về

Catalogue
{
  "success": true,
  "data": {"items":[{
    "id":"42", "name":"Example product", "summary":"Customer-safe summary",
    "currency":"USD", "unit_amount_minor":2500, "available":true,
    "selection":{"item_id":"42"}
  }]}
}
trích dẫn
{
  "success": true,
  "data": {
    "quote_id":"opaque", "currency":"USD",
    "unit_amount_minor":2500, "total_amount_minor":5000,
    "selection":{"item_id":"42","quantity":2},
    "expires_at":"2026-08-31T14:05:00Z"
  }
}

Đáp ứng kiểm tra nền tảng lặp lại câu trích dẫn chính điển và thêm một HTTPS checkout_urlCore làm tươi lại trích dẫn tại xác nhận và so sánh chính xác tiền tệ, tổng số và ổn định lựa chọn.URL.

Làm cho một cổng ra vào điều hành sẵn sàng trong kho và trò chuyện bản địa

Khả năng trả tiền riêng không đặt cửa ra trước mặt khách hàng. Cổng thanh toán của người bản địa Khối trong bộ xây dựng kết nối. Nó thêm vào một giao kèo phiên bản đã được phiên bản rõ ràng, bản đồ kiểm tra tạo và xem lại bản đồ, và cho phép danh sách miền kiểm tra nhà cung cấp. Một khi bộ kết nối đã cài đặt, bật và chọn dưới thiết lập thương mại, cổng tương tự xuất hiện trong kho công cộng, Lưu trữ, cửa sổ, kiểm tra khách hàng và kiểm tra tự động. Không có viên đầu đạn nhà cung ứng nào được mã hoá.

Name
{
  "commerce": {
    "roles": {
      "checkout_create": { "operation": "acme_checkout_create", "transport": "http",
                           "recovery": "acme_payment_status" },
      "payment_status":  { "operation": "acme_payment_status", "transport": "http" },
      "payment_profile": { "operation": "acme_payment_profile", "transport": "http" },
      "webhook_verify":  { "operation": "acme_webhook_verify", "transport": "http" },
      "event_map":       { "operation": "acme_event_map", "transport": "http" },
      "payment_refund":  { "operation": "acme_refund", "transport": "http",
                           "recovery": "acme_refund_status" }
    },
    "storefront_gateway": {
      "enabled": true, "version": 1, "label": "Acme Pay",
      "checkout_hosts": ["checkout.acmepay.com", "*.acmepay.com"]
    }
  }
}
Comment

Bản đồ hành động kiểm tra checkout_url Và, khi nhà cung cấp có một, session_idThe...URLHẳn là HTTPS, không có ủy nhiệm, và khớp với máy đã cho phép.

Comment

Hành động trạng thái thực hiện một nhà cung cấp mớiAPITra cứu và tìm bản đồ paid là một kẻ đê tiện, amount_minor là một số nguyên, currency là một mã ISO ba chữ cái và provider_refTrở lạiURL, chuỗi truy vấn, tải khách hàng, hoặc kết nối - ứng dụng: "Sự chỉ dẫn xác thực không bao giờ là sự thật.

Hợp đồng hoàn trả tùy chọn

Nếu cổng ra hỗ trợ hoàn trả lại, bản đồ payment_refund Sự tạo ra từ kho lưu trữ trở lại rất nghiêm ngặt acceptedcompleted (Tiếng Tây Ban Nha) provider_ref; phục hồi thực hiện một nhà cung cấp tìm kiếm và trở lại statusKhông có cả hai hành động,OpsIQkhông có quảng cáo để hoàn trả lại.

Ai đã xác nhận mệnh lệnh?

Kết nối không bao giờ viết aOpsIQTình trạng trật tự.OpsIQSo sánh số lượng và tiền tệ trả về chính xác và ghi lại các tham chiếu nhà cung cấp; chỉ sau đó lõi thực hiện chuyển tiếp được xác định nhà cung ứng.

Trong bộ xây dựng kết nối, tick Thương mại, lập bản đồ vai trò và cấu hình cả hai Name, Cổng thanh toán của người bản địahoặc cả hai khi kết nối cung cấp thực sự cả hai hợp đồng. Trợ lý xác nhận lời tuyên bố và việc viết commerce_roles.json. Xuất bản vẫn sử dụng tiến trình kiểm tra và ký hiệu khu chợ thông thường; hợp đồng này không bao giờ bỏ qua việc thẩm tra gói hoặc làm cho một kết nối không thể cài đặt. Kiểm tra bất kỳ gói nào bằng tay với bất cứ gói nào khác. php tools/verify_commerce_contracts.php.
💡
Vận chuyển là http từ xaAPIhay bridge cho một hoạt động có tên trên một cây cầu được triển khai (xem NO-APIKiểu bên dưới. Vai trò là phương tiện giao thông; thời gian chạy chỉ cần các phương tiện được ghi rõ để nó có thể phiên bản cầu.
Trình kết nối

Bán qua trò chuyện không có kết nối: Hành động & gây nên

Hợp đồng thương mại ở trên không cần một gói kết nối.APIHoặc một hệ thống không ai có thể vận chuyển một kết nối — bạn có thể đạt cùng một bộ máy bán hàng với hai công cụ bạn đã sử dụng để tích hợp bất cứ điều gì khác: Hành động tùy chỉnh (dấu chấm cuối HTTP của bạn, xác định trên trang Actions) và kích hoạt (ngay cả các móc trang Mạng). Cùng một hợp đồng, thẻ tín hiệu, tính năng thanh toán hạt nhân, hóa đơn tương tự. Điều duy nhất còn thiếu là gói không có mã thứ ba cần ký.

Làm sao nó hợp với nhau được?

Bạn xây dựng một hành động tùy chỉnh mỗi vai trò thương mại — mỗi cái là điểm cuối HTTPS ở phía bên cạnh bạn, được xác định dưới & Tự động hoá Al→Hành động với nóURL, auth Header và tham số. Sau đó bạn lưu một tuyên bố rằng sơ đồ vai trò của các hành động đó. Từ thời điểm đó, cửa hàng của bạn xuất hiện trong chat chính xác như một kết nối- hậu phương: trích dẫn AI từ của bạn hành động trích dẫn, thẻ xác nhận, khách hàng xác nhận email của họ, các cuộc gọi hạt nhân thứ tự của bạn Hành động theo thứ tự với chìa khóa vô tội,OpsIQnhận tiền qua các cổng không gian làm việc, và của bạn Không có gì về kinh nghiệm khách hàng nói " quen".

Bản tuyên bố

Lưu cái nàyJSONnhư là thiết lập vùng làm việc commerce_custom_integration (]→Thiết lập nâng cao, hoặc thông qua thiết lập RESTAPINó có hình dạng giống như của một gói commerce_roles.json Nút thương mại, với action Tên hành động riêng:

commerce_custom_integration
{
  "enabled": true,
  "roles": {
    "catalog_search":  { "action": "acme_catalog" },
    "quote":           { "action": "acme_quote" },
    "order_get":       { "action": "acme_order_get" },
    "customer_create": { "action": "acme_customer_create",
                         "recovery": "acme_customer_by_email" },
    "order_create":    { "action": "acme_order_create",
                         "recovery": "acme_order_by_key" },
    "record_payment":  { "action": "acme_record_payment",
                         "recovery": "acme_payment_by_key" }
  },
  "customer_ordering": {
    "enabled": true, "version": 1,
    "mode": "direct_order",
    "audience": "guests_and_clients",
    "account_flow": "connector_signup",
    "payment_flow": "opsiq_gateway",
    "label": "Acme Store",
    "identity_parameter": "client_identifier",
    "quantity_parameter": "quantity",
    "transaction_kind": "purchase",
    "fulfilment_presence": "remote_delivery",
    "notify_flow": "platform_automatic"
  }
}

Cuối cùng, thêm custom_commerce bật/tắt kết nối để bán dưới thiết lập→Tán gẫu với khách→Đang bán qua các cuộc trò chuyện. mỗi yêu cầu, và nó từ chối với lý do đặt tên thay vì ẩn trong im lặng cửa hàng của bạn: một vai trò của chế độ của bạn đòi hỏi bản đồ không có gì, một chức năng ghi mà không cần một hành động phục hồi (Grain15.7— một ghi mà kết quả không thể được yêu cầu lại), một hành động đã bị xóa hoặc bị tắt kể từ khi bạn lưu.

Mỗi hành động phải làm

Trả lại phong bì kết nối

Đáp ứng {"success": true, "data": { ... }} - hoặc {"success": false, "error": "a sentence a customer may read"}Hành động của bạn là đáp ứng đường dẫn thành công nên chỉ vào phong bì.

Trích dẫn: tổng số, trong đơn vị nhỏ

Trả lại quote_id, product_name, quantity, unit_amount_minor, total_amount_minor, currency, selection, selection_summary, expires_atTất cả mọi thứ trong mục "tiểu thức di chuyển tiền" trên các động từ áp dụng cho thuế, phí và nhân lực tăng lên tổng số của bạn, bởi vì tổng số lượng của bạn là những gì được ký, hiển thị và tính tiền.

Thứ tự tạo:

Anh nhận được idempotency_keychữ ký total_minorcurrencyXác nhận customer_emailNếu bạn đã tạo ra một thứ tự cho nó, hãy trả lại thứ tự thay vì thứ hai. Kiểm tra tiền — nếu hệ thống của bạn giá cả khác với tổng số đã ký thì hãy từ chối thay vì giảm giá. Hãy trả lại một số tiền đã được ký. reference Phát hiện ra nền tảng của anh.

Phục hồi: câu trả lời về 1 chữ

order_by_key Nhận được khóa và câu trả lời vô hạn {"found": true, "order": {...}} hay {"found": false}. tìm thấy: sai là một lời hứa —OpsIQCó lẽ bạn sẽ thử lại ghi dựa trên độ mạnh của nó. Một nguồn tin trạng thái hoặc danh sách các lệnh gần đây không phải là câu trả lời về một ghi.

Thanh toán thu: đường dẫn đến việc định cư của riêng bạn

Nhận được mã số giao dịch cổng ra vào là chìa khóa nhận thức toàn năng cộng với tham chiếu thứ tự của bạn, sau khiOpsIQHãy đánh dấu sự sắp đặt được trả tiền qua lập luận của chính nền tảng của bạn — đốt thư điện tử, giảm cổ phiếu của bạn. platform_notified: true Nếu nền tảng của bạn email khách hàng của chính mình.

Nhập quân bài đến từ các tham số hành động của bạn

Bất kỳ tham số nào bạn tuyên bố về hành động QUOTE (được bỏ qua tham số nhân dạng) mà AI chưa thu thập được trình duyệt trên thẻ xác nhận khách hàng sẽ tự điền vào — một miền, một ngày, một chỗ ngồi. nhãn chúng tốt; nhãn hiệu là những gì khách hàng đọc.

Triggers: nghe doanh thu của bạn

Hai sự kiện nổ trên xe buýt sự kiện chung, vì vậy weboks và tự động của bạn nghe mọi cuộc trò chuyện bán bất cứ nơi nào nó thực hiện:

commerce.order.created

Thời điểm mà người ta đặt hàng đất ở phía bên lái buôn, trước khi thanh toán — tham khảo, kết nối (hoặc custom_commerce), số lượng, tiền tệ, email khách hàng, ID chỉ.

commerce.payment.confirmed

Chính xác một lần mỗi thứ tự, khi cánh cổng tích cực xác nhận khoản thanh toán.

Khi tốt nghiệp đến một kết nối

Sự hợp nhất tự chọn là cấu hình không gian làm việc: nó phục vụ kho của BẠN, trong vùng làm việc của bạn. Khoảnh khắc bạn muốn phân phối sự tích hợp — các vùng làm ăn khác, chợ, phiên bản, ký tên, cài đặt, trả tiền — gói cùng hành động và cùng một tuyên bố như một kết nối. Hợp đồng không thay đổi; chỉ có bộ cuộn giấy thôi.

Trình kết nối

Kết nối một nền tảng có NOAPI(kiểu cây cầu)

Có rất nhiều tàu không có sân ga API Một khách sạn CMS, một hệ thống hóa đơn cũ, một công cụ nội bộ thẳng thắn. bạn vẫn có thể viết một hoàn chỉnh OpsIQ Kết nối cho một: các kết nối tàu một tập tin PHP duy nhất mà người điều hành rơi vào trang web công cộng của họ, và đó là tập tin APITrang này là toàn bộ mô hình, với các quy tắc giúp nó an toàn để chạy và lý do đằng sau mỗi quy tắc.

Hình dạng của nó

Một kết nối bình thường gọi của người khácAPI.. một kết nối nối cầu tự mang lại. không có gì khác thay đổi: hành động giống nhau, các nhà cung cấp ngữ cảnh, cùng hợp đồng nhận dạng, bố trí gói tương tự.

1
Bạn viết một tập tin PHP

It lives in your package at bridge/opsiq-<platform>-bridge.php. It talks to the platform's database directly, or boots the platform's framework, or both. It answers JSON.

2
Người điều hành đã sao chép nó vào trang web của họ

Kế bên chỉ mục của nền tảng là « index. p ». Không có mã nền tảng nào được sửa đổi, không cài đặt bổ sung nào, không có gì để duy trì trên các nâng cấp nền tảng.

3
Bảng kết nối trao cho họ tập tin

Thiết lập của bạn.jsonphát hành keyword bet_ stlate. Phần mềm kết nối tạo ra nó như là một tập tin sao chép với thiết lập trực tiếp đã được thay thế, vì vậy không có gì cần thay thế bằng tay.

4
OpsIQGọi nó là máy phục vụ đến máy chủ

Khách hàng của anh.php gửi yêu cầu khẩn cấp với chìa khóa chia sẻ trong X-Opsiq-Bridge-Key đứng đầu.URLcài đặt là nền tảng gốc trang web.

Trình xây dựng kết nối có thể tạo ra điều này cho bạn ngay bây giờ. Hãy chọn "Platform không API" Hồ sơ (hoặc thiết lập truy cập dữ liệu để cầu) và nó phát ra tập tin cầu, các mảnh bảng khớp nhau và các hành động đánh máy đã đọc và viết qua nó — cho một ứng dụng Laravel đọc .env của nó, cho WordPress đang đọc wp-config.php, hoặc với ủy nhiệm bạn dán trong cho bất cứ điều gì khác. Chế độ Bridge sửa chữa xác thực OpsIQ Giao thức cầu: bộ kết nối được bảo mật tạo ra api_key Khi được bật, gửi như X-Opsiq-Bridge-Keyvà kết nối cùng giá trị đã lưu vào OPSIQ_BRIDGE_KEY trong tập tin có khả năng sao chép. Chỉ khi nền tảng của bạn không phải là những cái đó, hoặc khi bạn cần ứng xử thì cây cầu tạo ra không bao gồm. Một cây cầu được viết bằng tay an toàn khỏi pháp sư: nó chỉ ghi đè lên một tập tin cầu mang dấu ấn riêng của nó.
💡
Tất cả mọi thứ trên trang này được hiển thị trong PHP chống lại MySQLVì đó là tham chiếu thực hiện và tổ hợp duy nhất các đường ống đóng gói hoàn toàn được hỗ trợ. Mô hình này là khả năng xác định ngôn ngữ và khả năng duy trì động cơ: xem "Cái cầu trong các ngôn ngữ khác và cơ sở dữ liệu khác" cho cổng ở Node, Python, Go, Ruby, .NET và Java, các yêu cầu nội bộ cho cửa ra vào PostgreSQL, SQL Máy chủ, SQLite Nhà tiên tri, và MongoDB Tương tự như vậy - cùng với các bao bì hạn chế quyết định làm thế nào một cây cầu phiP đạt được người điều hành.

Mô hình an ninh, và tại sao mỗi quy tắc lại ở đó

Tập tin này nằm trong một trang web chủ công cộng đằng sau một phím chia sẻ. Một thực tế duy nhất điều khiển mọi quy tắc bên dưới. Đừng thư giãn bất cứ điều gì để cây cầu của bạn đơn giản hơn.

Người gọi không bao giờ cung cấpSQL

Không phải là một điều khoản, không phải một mảnh vỡ, không chỉ "chỉ này một lần" truy vấn thô. Gọi tên một bảng, một cột và một giá trị; tập tin của bạn xây dựng tuyên bố. Thời điểm một người gọi có thể đóng góp.SQLvăn bản, một phím được chia sẻ trở thành việc thực hiện cơ sở dữ liệu tùy ý.

Bảng và cột tên được xác nhận đối với thông tin_schema

Không thể kết nối bộ nhận diện, vì vậy cần kiểm tra nó. Hãy đọc danh sách các bảng thật và cột cho cơ sở dữ liệu này và từ chối bất cứ điều gì không có trên đó. Một bộ nhận dạng không phải là một đối tượng thật của giản đồ này thì không thể truy vấn — đó là cách an toàn để phơi bày mọi bảng.

Mỗi giá trị là một tham số bị hạn chế

Không có ngoại lệ, bao gồm cả giá trị bên trong một tìm kiếm. Kiểm tra bộ nhận diện được cộng với giá trị giới hạn là cặp làm bề mặt tổng và mũi tiêm trên bề mặt nil.

Đọc là phổ biến, viết được cho phép- danh sách

Đây là luật mà mọi người muốn bỏ qua nhất.

Các cột bí mật được viết ra khi đọc và từ chối ghi

Khớp trên cột NAME: mật khẩu, nhớ _token, bí mật, api_key, tư_key , muối, biểu tượng. Thay thế giá trị với bộ giữ chỗ trên đường ra. Từ chối hoàn toàn ghi vào — viết một mật khẩu hah thô không phải là hoạt động, nó là một súng ngắn. Hãy gửi người điều khiển đến dòng mật khẩu của nền tảng.

Xoá là hàng đơn, theo phím chính

Không bao giờ xóa đi, không bao giờ xoá bỏ bởi bộ lọc. gỡ bỏ quá nhiều là cách cơ sở dữ liệu chết. Nếu ai đó thực sự cần, họ có thể làm điều đó trên nền tảng.

Các trang đã bị chặn.

Không thể mở cơ sở dữ liệu bằng thông điệp chat.

Không đóng cửa cho đến khi phím đã được đặt

Câu trả lời của một cây cầu không được cấu hình403Một cây cầu có ích trước khi được cấu hình là một cây cầu giúp ích cho người lạ.

So sánh phím liên tục, chìa khóa trong đầu trang

hah_equals, không bao giờ ==.Opsiq- Bridge-Key, không phải chuỗi truy vấn, nên nó không được phép truy cập nhật ký, bản ghi ủy nhiệm và tiêu đề vệ tinh.

Hãy chỉ nhận

Một phương pháp, một hình dạng, không có gì để buôn lậu trong cơ thể. tất cả mọi thứ cây cầu làm đều rõ ràng như là một vượt qua với các thông số đã được xác nhận, và tôi nghĩ rằng chúng ta cần phải tìm hiểu về nó.OpsIQlà người duy nhất gọi.

Đọc phổ thông, viết danh sách cho phép và tại sao

Đây là quy tắc được tranh luận, vậy nên đây là lý do đầy đủ. Trợ lý này nên có thể xem toàn bộ nền tảng: đó là điều hữu ích, và việc đọc không thể hủy bỏ bất cứ điều gì. Ghi là khác nhau. Tập tin này nằm trong một máy web chủ chung đằng sau một phím chia sẻ. Nếu phím bị rò rỉ, bề mặt ghi bị lỗi không cố định sẽ làm cho rò rỉ tương đương với kiểm soát cơ sở dữ liệu — một người dùng mới, một bảng liệt kê rỗng. Một danh sách bị bỏ qua có nghĩa là không thể mở một bảng điều khiển không bao giờ bật được.

⚠️
HạtOpsIQCổng nhận dạng thẻ căn cước, không phải chìa khóa. Việc nhấn vào nút Cho phép một hành động phá hủy là kiểm soát trợ lý. Nó không phải kiểm soát bất cứ ai nắm giữ phím cầu. Đó là hai mối đe dọa khác nhau, và danh sách cho phép là câu trả lời cho điều thứ hai.
Cái nắm cửa điều khiển từ cầu Botble
/* ── WRITE ALLOW-LIST — which tables the assistant may CHANGE here.
 *
 * READS are unrestricted: the assistant can see every table in the platform.
 * WRITES are limited to this list, because this file sits in a PUBLIC webroot
 * behind ONE shared key — an allow-list means that even a leaked key cannot
 * reach a table you never enabled (no new admin users, no emptied bookings).
 *
 * Comma-separated table names. Add tables as you need them — e.g. append
 * ',pages,posts' to let the assistant edit site content. Set it to '*' to
 * allow every table, deliberately. Empty falls back to the hotel defaults. ── */
const OPSIQ_WRITE_TABLES = 'ht_bookings,ht_booking_rooms,ht_booking_addresses,ht_rooms,ht_room_types,ht_customers,customers';

Hai chi tiết trong bảng dưới đây rất dễ dàng để nhận sai. Tên bảng đến đã ORLVED, mang theo tiền tố bảng cài đặt, trong khi một nhà điều hành viết danh sách không được sửa đổi vì đó là những gì họ sẽ tự nhiên gõ. So sánh cả hai cách hoặc một cài đặt đã cài đặt âm thầm cho phép không có gì và mỗi nghỉ giải lao. Và từ chối phải giải thích chính nó, bởi vì người đọc nó là admin trong cửa sổ trò chuyện, không phải là một nhà phát triển với dấu vết chồng.

Kiểm tra danh sách cho phép, động từ noim từ thị trường_ kết nối/botble/bridge/opsiq- Máy điều khiển cầu.php.
/** Tables a WRITE may touch. Empty = the built-in defaults. */
$writeAllowed = static function (string $table) use ($prefix): bool {
    $raw = trim((string)(defined('OPSIQ_WRITE_TABLES') ? OPSIQ_WRITE_TABLES : ''));
    if ($raw === '') $raw = 'ht_bookings,ht_booking_rooms,ht_rooms,ht_customers,customers';
    if (trim($raw) === '*') return true;                     // explicit opt-in to everything
    $bare = ($prefix !== '' && stripos($table, $prefix) === 0) ? substr($table, strlen($prefix)) : $table;
    foreach (explode(',', $raw) as $t) {
        $t = trim($t);
        if ($t === '') continue;
        if (strcasecmp($t, $table) === 0) return true;
        if (strcasecmp($t, $bare)  === 0) return true;
        if ($prefix !== '' && strcasecmp($prefix . $t, $table) === 0) return true;
    }
    return false;
};

/** One refusal, one explanation — used by every write op. */
$requireWritable = static function (string $table) use ($writeAllowed): void {
    if ($writeAllowed($table)) return;
    opsiq_bridge_out(['success' => false, 'error' =>
        'write_not_allowed: "' . $table . '" is not in this bridge\'s write allow-list. '
        . 'Reads are unrestricted. To permit writes here, add the table to OPSIQ_WRITE_TABLES '
        . 'in opsiq-botble-bridge.php (or set it to "*" to allow every table).'], 403);
};

Cổng thành, đầy đủ

4 kiểm tra, theo thứ tự này, trước khi có bất cứ thứ gì chạm vào dữ liệu.

Bốn cổng kiểm tra, theo thứ tự.
<?php
declare(strict_types=1);

/* ── EDIT THIS: a long random secret (40+ chars). Empty = bridge OFF. ── */
const OPSIQ_BRIDGE_KEY = '';

header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store');

function opsiq_bridge_out(array $payload, int $code = 200): void
{
    http_response_code($code);
    echo json_encode($payload, JSON_UNESCAPED_SLASHES);
    exit;
}

/* 1. Fail closed. An unconfigured bridge answers nothing to anyone. */
if (OPSIQ_BRIDGE_KEY === '' || strlen(OPSIQ_BRIDGE_KEY) < 24) {
    opsiq_bridge_out(['success' => false, 'error' => 'bridge_not_configured'], 403);
}
/* 2. One method. */
if (strtoupper((string)($_SERVER['REQUEST_METHOD'] ?? '')) !== 'GET') {
    opsiq_bridge_out(['success' => false, 'error' => 'method_not_allowed'], 405);
}
/* 3. Constant-time key comparison, key from a header (never the query string). */
$given = (string)($_SERVER['HTTP_X_OPSIQ_BRIDGE_KEY'] ?? '');
if ($given === '' || !hash_equals(OPSIQ_BRIDGE_KEY, $given)) {
    opsiq_bridge_out(['success' => false, 'error' => 'forbidden'], 403);
}
/* 4. Only now read credentials and connect. */

Đang thẩm tra bộ nhận diện đối với thông tin_schema

Đây là phần mà xoay "người trợ lý có thể đạt bất kỳ bảng" từ khinh suất vào an toàn. Giải quyết tên của người gọi chống lại giản đồ thật, dung thứ một tiền tố bảng thiếu hay thêm, và trở về null cho bất cứ điều gì khác. Mọi thứ xuống dưới cùng làm việc với một tên gọi có vẻ thiết thực.

Nhận diện hiệu lực và hành động lại, nguyên văn từ cầu Botble
/** Real tables in THIS database — the allow-list, straight from the DB. */
$allTables = static function () use ($pdo, $db): array {
    static $cache = null;
    if ($cache !== null) return $cache;
    $st = $pdo->prepare('SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ? ORDER BY TABLE_NAME');
    $st->execute([$db]);
    return $cache = array_map('strval', $st->fetchAll(PDO::FETCH_COLUMN));
};

/** Resolve a caller-supplied table name to a REAL one, or null. */
$resolveTable = static function (string $name) use ($allTables, $prefix): ?string {
    $name = trim($name);
    if ($name === '' || !preg_match('/^[A-Za-z0-9_]+$/', $name)) return null;
    $tables = $allTables();
    foreach ($tables as $t) if (strcasecmp($t, $name) === 0) return $t;
    /* Tolerate a missing or extra table prefix. */
    foreach ($tables as $t) {
        if (strcasecmp($t, $prefix . $name) === 0) return $t;
        if ($prefix !== '' && strcasecmp($prefix . $t, $name) === 0) return $t;
    }
    return null;
};

/** Column introspection: table => [column => true]. Cached per request. */
function opsiq_bridge_columns(PDO $pdo, string $db, string $table): array
{
    static $cache = [];
    if (isset($cache[$table])) return $cache[$table];
    $stmt = $pdo->prepare('SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?');
    $stmt->execute([$db, $table]);
    $cols = [];
    foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $c) $cols[strtolower((string)$c)] = true;
    return $cache[$table] = $cols;
}

/** Columns whose VALUES must never leave the platform. */
$secretCol = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token|secret|api_key|private_key|salt|token)($|_)/i', $c);
};
/** Columns a write may never touch — auth material. */
$writeBanned = static function (string $c): bool {
    return (bool)preg_match('/(^|_)(password|remember_token)($|_)/i', $c);
};
/** Strip secret values from a row before it leaves the server. */
$redact = static function (array $row) use ($secretCol): array {
    foreach ($row as $k => $v) if ($secretCol((string)$k)) $row[$k] = '[redacted]';
    return $row;
};

Một chiến dịch đọc và viết, hoàn tất

Lưu ý những gì bị hạn chế và những gì được xác nhận. Cột lọc được kiểm tra chống lại danh sách cột thật, rồi chuyển thành độ phân giải; giá trị của nó bị hạn định. Giới hạn được kẹp. Hàng được sửa đổi trên đường ra. Việc cập nhật từ chối phím chính và bất kỳ cột trục, và nhãn Cập nhật cập nhật_ lúc bảng có một.

Đọc bất kỳ bảng nào — xác nhận sự nhận diện, giá trị bị ràng buộc, hàng bao bọc
case 'query': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    if (!$cols) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);

    $sql = "SELECT * FROM `$t` WHERE 1=1";
    $args = [];

    /* Equality filter: column must be REAL, value is bound. */
    $wc = strtolower(trim((string)($_GET['where_column'] ?? '')));
    if ($wc !== '') {
        if (!isset($cols[$wc])) opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $wc], 400);
        $sql .= " AND `$wc` = ?";
        $args[] = (string)($_GET['where_value'] ?? '');
    }
    /* Ordering: column validated, direction from a fixed pair. */
    $ob = strtolower(trim((string)($_GET['order_by'] ?? '')));
    if ($ob !== '' && isset($cols[$ob])) {
        $dir = strtoupper(trim((string)($_GET['order'] ?? 'DESC'))) === 'ASC' ? 'ASC' : 'DESC';
        $sql .= " ORDER BY `$ob` $dir";
    } elseif (isset($cols['id'])) {
        $sql .= " ORDER BY `id` DESC";
    }
    /* Hard row cap. */
    $lim = (int)($_GET['limit'] ?? 25);
    if ($lim < 1)   $lim = 25;
    if ($lim > 200) $lim = 200;
    $off = max(0, (int)($_GET['offset'] ?? 0));
    $sql .= " LIMIT $lim OFFSET $off";

    $st = $pdo->prepare($sql);
    $st->execute($args);
    $rows = array_map($redact, $st->fetchAll());
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'returned' => count($rows), 'rows' => $rows,
    ]]);
}
Ghi một hàng — bảng cho phép- liệt kê, từ chối cột auth, một hàng chính bằng phím chính
case 'record.update': {
    $t = $resolveTable((string)($_GET['table'] ?? ''));
    if ($t === null) opsiq_bridge_out(['success' => false, 'error' => 'unknown_table'], 404);
    $requireWritable($t);                       // the allow-list, before anything else
    $cols = opsiq_bridge_columns($pdo, $db, $t);
    $pk   = $primaryKey($t);
    $id   = (string)($_GET['id'] ?? '');
    if ($id === '') opsiq_bridge_out(['success' => false, 'error' => 'id_required'], 400);

    $set = json_decode((string)($_GET['set'] ?? ''), true);
    if (!is_array($set) || !$set) opsiq_bridge_out(['success' => false, 'error' => 'set_json_required'], 400);

    $frag = []; $args = [];
    foreach ($set as $col => $val) {
        $col = strtolower(trim((string)$col));
        if (!isset($cols[$col]))  opsiq_bridge_out(['success' => false, 'error' => 'unknown_column: ' . $col], 400);
        if ($writeBanned($col))   opsiq_bridge_out(['success' => false, 'error' => 'refused: "' . $col . '" is auth material - change it through the platform own password flow, never by direct write.'], 400);
        if ($col === $pk)         opsiq_bridge_out(['success' => false, 'error' => 'refused: the primary key cannot be rewritten.'], 400);
        if (is_array($val) || is_object($val)) $val = json_encode($val, JSON_UNESCAPED_SLASHES);
        $frag[] = "`$col` = ?";
        $args[] = ($val === null) ? null : (string)$val;
    }
    if (isset($cols['updated_at']) && !isset($set['updated_at'])) $frag[] = '`updated_at` = NOW()';

    $before = $pdo->prepare("SELECT * FROM `$t` WHERE `$pk` = ? LIMIT 1");
    $before->execute([$id]);
    $prev = $before->fetch();
    if (!$prev) opsiq_bridge_out(['success' => false, 'error' => 'not_found'], 404);

    $args[] = $id;
    $up = $pdo->prepare("UPDATE `$t` SET " . implode(', ', $frag) . " WHERE `$pk` = ? LIMIT 1");
    $up->execute($args);
    opsiq_bridge_out(['success' => true, 'data' => [
        'table' => $t, 'id' => $id, 'changed' => $up->rowCount(),
        'before' => $redact(array_intersect_key($prev, $set)),
    ]]);
}

Sống sót sự khác biệt giản đồ

Nền tảng phiên bản khác nhau. Cột di chuyển, thay đổi tên, hoặc bị vắng mặt. Cây cầu giả định một bộ trình bày hoạt động trên cùng cài đặt. Introspopion Thay vào đó: chỉ chọn những cột tồn tại ở đây, chấp nhận tiền tố bảng, và thử đánh vần hợp lệ của một tham khảo.

Sự khoan dung của kế hoạch, từ cây cầu Botble
/* Only ever select columns that exist on THIS install. */
$pick = static function (array $cols, array $wanted, string $alias = 'b'): string {
    $out = [];
    foreach ($wanted as $c) if (isset($cols[$c])) $out[] = "`$alias`.`$c`";
    return $out ? implode(', ', $out) : "`$alias`.*";
};

/* References vary: stored with or without a leading "#", with or without an
 * operator-configured alpha prefix, or only as a numeric id. Try every
 * plausible form — the PROOF match is what actually gates disclosure, so
 * tolerant matching here is safe. */
$refCandidates = [$ref, '#' . $ref];
$digitsOnly = preg_replace('/\D+/', '', $ref);
if ($digitsOnly !== '' && $digitsOnly !== $ref) {
    $refCandidates[] = $digitsOnly;
    $refCandidates[] = '#' . $digitsOnly;
}
$refCandidates = array_values(array_unique($refCandidates));
💡
Đưa cho cầu của bạn một op=diag chỉ báo cáo CÔNG TÁC — những bảng nào đã được giải quyết, các cột nào trong bảng chính có và SHAPE của tham chiếu mới nhất với mỗi chữ số bị che giấu. Nó là khóa-cổng như mọi thứ khác, và nó biến "kiếm tìm không tìm thấy gì" từ một vé hỗ trợ thành câu trả lời mười giây. Không bao giờ để nó trả về các ghi chép thực sự.

Lỗi đồng bộ, và bẫy đếm

Một hình dạng cho mọi thứ

Success is {"success":true,"data":{...}}. Failure is {"success":false,"error":"snake_case_reason"}. Your Client.php and every action then have exactly one response shape to handle.

Không tìm thấy và không đấu phải giống hệt nhau

Trên bề mặt xem xét, một tài liệu tham khảo không tồn tại và một tài khoản không khớp với bằng chứng phải tạo ra phản ứng tương tự. Các câu trả lời khác nhau biến cầu thành lời bói thẻ xác nhận điều nào là thật, đó là xuất khẩu khách hàng miễn phí cho bất cứ bệnh nhân nào.

Không bao giờ tiết lộ lý do cho du khách

Cây cầu có thể chính xác bằngOpsIQCái gì tiếp cận khách được quyết định bởiOpsIQTrong một lần từ chối cố định.

Tập tin sao chép trong bảng kết nối

Người điều khiển không bao giờ mở kho hàng của anh.OpsIQBản sao từ thiết lập.jsonVà nó phải là cùng một chương trình với Bridge/.php.

thiết lập.json- mục nhập bảng điều khiển cho bộ kết nối cầu
{
  "settings": [
    { "key": "base_url", "label": "API base URL", "type": "text", "required": true },
    { "key": "api_key",  "label": "Bridge key",   "type": "password", "required": true,
      "autogenerate": true,
      "help": "Auto-generated the moment you enable the connector. It must match OPSIQ_BRIDGE_KEY inside the bridge file; the copyable file below already carries this value once saved." }
  ],
  "webhook_help": {
    "title": "One file, three surfaces",
    "body": "This platform has no public REST API, so this ONE file IS the API. Copy it into the site PUBLIC webroot, keeping the filename.",
    "snippet_filename": "opsiq-yourplatform-bridge.php   (drop next to the site index.php)",
    "snippet_template": "<?php\n/* ... the whole bridge file ... */\nconst OPSIQ_BRIDGE_KEY = \u0027{{setting:api_key}}\u0027;\n..."
  },
  "snippet_bindings": [
    { "assignment": "OPSIQ_BRIDGE_KEY", "setting": "api_key" }
  ]
}
{{setting:key}} carries live values

The connector panel substitutes {{setting:<key>}} in the snippet with that connector's saved value, so the copied file already contains the operator's generated bridge key and needs no hand-edit. An empty or unsaved setting leaves the token visible, so the operator can see exactly what is still missing.

Đoạn_b ứng dụng còn lại

Công bố tất cả các nhiệm vụ tạo ra bí mật rõ ràng. OPSIQ_BRIDGE_KEY = {{setting:api_key}} từ tổ hợp này. Không có nó, một bản nâng cấp trung thực có thể sao chép tập tin gói không khóa và âm thầm loại bỏ bộ giữ chỗ đã được triển khai. Kết nối bộ xây dựng phát ra tự động tổ hợp để tạo ra gói Bridge.

Những bộ giữ chỗ khác được thay thế bên máy chủ

Một cách độc lập,{webhook_url}, {webhook_path}, {webhook_secret}, {site_key}, {base_url}và{slug}được điền vào trước khi bảng điều khiển thấy đoạn trích.

Có lẽ kết nối_giúp Mạng là một đối tượng hay danh sách

Danh sách cho bạn vài đoạn trích trong một bảng, ví dụ như một tập tin cầu và một cái móc nối riêng biệt.

🚫
Không chỉ riêng một phần của miếng nhỏ. Tập tin này và bảng điều khiển là hai bản sao của một chương trình, và chúng sẽ trôi dạt — một cây cầu được nâng cấp và tấm bảng thì không, vì thế bất cứ ai đã cài đặt lại và sao chép từ bảng cũ đã lắp đặt và mất đi mọi khả năng mới.
Giữ hai bản sao giống nhau
# Regenerate every package's panel snippet from its bridge file
php tools/sync_connector_bridge_snippets.php --apply

# Show what would change, without writing
php tools/sync_connector_bridge_snippets.php

Drift is now a failing conformance check, not a support ticket: the verifier compares the two line by line (ignoring the {{setting:...}} placeholders, which are supposed to differ) and names the first line that differs. Run the sync tool as the last step before every release, right before signing.

Cái gì mà cây cầu phải phơi bày

Các hình dạng của các hoạt động và bề mặt dữ liệu, cùng nhau. những hình dạng này trở lại gọn gàng, có mục đích xây dựng cho các câu hỏi mà mọi người thực sự hỏi; những cái chung bao gồm tất cả mọi thứ khác để trợ lý không bao giờ bị mắc kẹt.

Có hình dạng

là những dữ liệu thống kê, danh sách đối tượng chính với bộ lọc, một đối tượng có hàng liên quan, các danh mục của những gì được bán, tìm kiếm khách hàng với lịch sử. những thứ này cho AI một câu trả lời tốt trong một cuộc gọi thay vì năm.

Văn bản dạng

Hai hay ba trạng thái thay đổi quan trọng — đặt trạng thái, hủy bỏ. Giữ giá trị đã chấp nhận cho phép danh sách.

Thương mại gõ

Đối với một nền tảng có thể bán được vạch trần mục đích xây dựng danh mục, trích dẫn, thanh toán và các hoạt động thanh toán, sau đó bản đồ chúng commerce_roles.jsontransport: bridge. Đừng bao giờ vẽ một vai trò thương mại lên đĩa nhạc phổ biến. Tạo ra/update side.

Phát hiện phổ biến

Bảng (có số đếm hàng) và mô tả (column, loại, phím chính, cộng với lá cờ có khả năng đọc và ghi trên mỗi cột). Đây là cách trợ lý học một nền tảng bạn không tiên đoán.

Chung

truy vấn, ghi chép. lấy, thu âm. tạo, kỷ lục, kỉ lục, kỷ yếu. delete. mỗi người trong số họ đều xác nhận như đã hiển thị trên.

Nhận dạng, trước cổng khóa.

Bộ thăm dò nhận diện được gọi là AROWSER của ADMIN, cùng một igin, vì vậy họ không thể gửi một đầu trang chủ đề riêng. Xác thực của chúng là phiên chạy nền tảng. Đặt chúng trước cổng khóa, giữ chúng tránh xa khỏi tất cả dữ liệu ghi âm, và không bao giờ để chúng trở lại một bí mật. Xem trang đặc điểm kết nối.

Chẩn đoán

op=diag, structure only, masked.

Bản đồ vai trò kinh doanh cầu nối
{
  "commerce": {
    "roles": {
      "catalog_search": {"operation":"hotel_catalog_search","transport":"bridge"},
      "quote":          {"operation":"hotel_quote","transport":"bridge"},
      "order_create":   {"operation":"hotel_order_create","transport":"bridge",
                           "recovery":"hotel_order_get"},
      "order_get":      {"operation":"hotel_order_get","transport":"bridge"},
      "record_payment": {"operation":"hotel_record_payment","transport":"bridge",
                           "recovery":"hotel_order_get"}
    },
    "customer_ordering": {
      "enabled":true, "version":1, "mode":"direct_order",
      "audience":"guests_and_clients", "account_flow":"guest_checkout",
      "payment_flow":"opsiq_gateway"
    }
  }
}
💡
Vai trò chính thống điều khiển chuỗi và thẩm quyền; hoạt động cầu giữ cho các chuyến hàng được đánh máy riêng.WHMCSCó thể cần một khách hàng hoặc một hệ thống đăng nhập có tên gọi là SaaS, và một nền tảng Saas có thể đòi hỏi một chu kỳ tính tiền. Core không bao giờ khó khăn mã hóa các lĩnh vực đó.
⚠️
record_payment không phải là cách gõ tắt thanh công cụ. Chấp nhận chỉ bằng chứng nhà cung cấp được chứng nhận máy chủ: thứ tự, thương gia, số lượng, tiền tệ ISO, tài liệu tham khảo nhà cung ứng, nhãn thời gian mới đã xác nhận và chìa khóa vô hạn. Hãy bền bỉ qua tờ hoá đơn của nền tảng.API, sau đó trả lại một lệnh có thẩm quyền hoặc hóa đơn đọc ngược. Một kết quả không rõ phải chạy phục hồi trước khi thử lại.
💡
Một kết nối chỉ đọc không cần thiết phải có danh sách cho phép. Nếu nền tảng của bạn chỉ trả lời các câu hỏi, hãy gửi một cây cầu không có ghi và toàn bộ lớp học về rủi ro viết biến mất. Thêm vào đó, viết khi ai đó hỏi họ.

Kiểm tra trước khi anh lên tàu

Cây cầu từ chối mọi thứ mà không có chìa khóa

Kiểm tra nó. Thay tên hằng số để rỗng và xác nhận mỗi câu trả lời thao tác403.

Comment

hah_equals, và chìa khóa chỉ đọc từ đầu trang.

Name

Và một tên bàn thật với tiền tố sai vẫn còn được giải quyết.

Một cột mật khẩu không bao giờ xuất hiện trong một đọc

Và một văn bản mà tên một bị từ chối với lời giải thích.

Ghi vào bảng bên ngoài danh sách cho phép bị từ chối

Với thông điệp nói cho người điều hành cách mở rộng nó.

Bảng điều khiển tương ứng với tập tin cầu

php công cụ/sync_connector_bridge_snippets. php báo cáo nó trong bước.

Cài đặt lại bộ kết nối là chưa đủ

Nếu gói hàng của bạn gửi một file cầu, một người điều hành nâng cấp kết nối phải quá cần thiết tái phát triển tập tin đó vào trang web gốc.

Trình kết nối

Đang nâng nền tảng của chính mình từ một cây cầu

Một cây cầu chỉ biết đọc SQLMột cây cầu mà CRTES những thứ trên nền tảng (một lệnh đặt chỗ, một danh sách, một hóa đơn được trả lương) phải đi qua một lớp ứng dụng riêng của nền tảng, và khởi động lớp đầu đó là nơi tất cả các thất bại tinh tế trong cuộc sống này. mọi thứ bên dưới được học cách khó khăn trên một sự kết hợp trực tiếp, mỗi quy tắc chống lại một khuyết điểm thực sự không có bất cứ lỗi nào.

Một hàng trong cơ sở dữ liệu không phải là một lệnh

SẼ TRONG LINH TRONG KHI ĐÃ ĐỂ TRONG SẼ

Hàng xuất hiện, quảng cáo danh sách nó, và nó vẫn không phải là một bản ghi âm mà nền tảng tin rằng nó đã tạo: không có số tham khảo bản địa, không có móc mẫu, không sự kiện, không hóa đơn, không email khách hàng, không liên kết lao động khách hàng. Khách hàng trích dẫn một tài liệu tham khảo không bao giờ được phát hành cho nhân viên không thể tìm thấy nó. Tạo ra thông qua dịch vụ của nền tảng; nếu nó chỉ phơi bày một dịch vụ hậu trả tiền, tạo ra biểu đồ nó mong đợi và bàn tay trên biển nó định nghĩa.

Không bao giờ làm tăng số của nền tảng

Hai mẫu của một định dạng tham chiếu làm cho nó trông dễ dàng sinh sản, và tái tạo lại nó là cùng một bóng- ghi xuống một cấp: ngày nền tảng thay đổi chương trình của nó, mỗi một trong các dữ liệu của bạn là sai và không có gì cảnh báo bạn. Gọi điện thoại cho máy phát điện (sự phản xạ tới một cái không tĩnh), và đọc giá trị đã lưu lại hơn là tin vào những gì bạn gửi.

Cột nền giữ cho nền tảng có ý nghĩa

Trước khi bạn lưu trữ bất cứ thứ gì của bạn trong một cột nền tảng, hãy tìm từng độc giả transaction_id Hóa ra là một vật tượng trưng mà khách hàng đã gửi email "xem các giải pháp đặt chỗ" thông qua: một sự tiêu hóa nhân bản được lưu trữ ở đó lặng lẽ phá vỡ mọi liên kết khách hàng. Giữ sổ sách của bạn trong một bảng có tên: UNIEE(điều khiển, idempotency_key) là bảo vệ tua lại, ép buộc từ chối cặp song sinh cùng thời, và việc tìm kiếm phục hồi đọc cùng một bảng do tạo ra. Tạo bảng đó trước khi bắt đầu hành động: MySQL DDL thực hiện một giao dịch hoàn toàn mở.

Sự kiện, thính giả và bẫy email kép

Đọc nguồn tin của dịch vụ trước khi gửi sự kiện

Nếu dịch vụ nền tảng bạn gọi đã gửi thông báo sự kiện, gửi nó cho chính mình hai email xác nhận của khách hàng và tạo ra hai hóa đơn. Nếu không có gì là lắng nghe, gửi đi không. Không có lỗi nào gây ra lỗi. Phản ánh phương pháp, cắt đoạn nguồn, rồi đọc những gì nó thực sự làm: phỏng đoán dựa trên tên và thậm chí một regex trên cơ thể đều đã sai cả trước khi nguồn giải quyết nó.

get Listeners () che giấu sự thật; getRaw Listeners() nói với nó

Laravel bọc thính giả trong các đóng cửa, vì vậy nhận được các báo cáo () [email protected] Lấy tên thật các lớp học. Không bao giờ gửi một sự kiện mà bạn không thể đặt tên cho người nghe.

Nếu không có nghĩa là "chạy sau"

Với hàng đợi=sync (mặc định khi cài đặt nhiều) một người nghe xếp hàng chạy TRONG yêu cầu cây cầu của bạn. ngữ cảnh khởi động là ngữ cảnh vẽ của nó: mọi đăng ký hay URL Gặp lỗi khi khởi động lại trong hộp thư mục của khách. Kiểm tra cấu hình ('queue. Mặc định') trước khi lý luận về nơi có bất cứ điều gì chạy, và tìm kiếm trong công việc/failed_jobs Trước khi cho rằng một công nhân có liên quan.

Bảo vệ các phòng tuyến của chính nền tảng

Một dịch vụ gửi đi một cách vô điều kiện cần phải được gọi chính xác một lần. Dấu hiệu không thể trôi đi là trạng thái ghi của nền tảng (chỉ gọi khi đĩa còn chờ) chứ không phải là một cờ "sai" song song mà có thể không đồng ý với nó.

Đôi giày không đầu không phải là đôi giày web

Đăng ký những gì các khởi động web

Template variables, module settings, filter hooks: platform service providers often register them only on a web request. On the reference integration the email handler substitutes only REGISTERED variables: every value was set correctly and the customer's confirmation still rendered with empty name, phone and link, no error anywhere, because registration lives in a runtime registry the headless boot never filled. Find the platform's registration call (for Botble: EmailHandler::addTemplateSettings with the module's email config) and make it in your boot, exactly as the platform's own provider does.

Pin mỗiURLgốc, không chỉ bộ định vị

Yêu cầu bị bắt được chỉ vào kịch bản cây cầu của bạn, vì vậy, tuyến đường url() và tài sản () tạo site.comCông chúng/ Cộng đồngopsiq-bridge.php/checkout/TOKEN: một liên kết khách hàng thông qua một JSON Điểm cuối. lựcRootUrl (config('app.url') Sửa máy phát điện; đĩa STORAGE có gốc riêng, vì vậy logo đã email vẫn bị hỏng cho đến khi hệ thống tập tin.disks.url cũng được thiết lập (nó quyết định lazily, vì vậy đặt nó tại khởi động làm việc, và chỉ khi trống hoặc văn lệnh: CDN của một nhà điều hành URL không phải là của bạn để ghi đè).

Hãy hứa trước khi giao ra.

Dịch vụ của nền tảng đọc thông qua kết nối của riêng họ và không thể xem giao dịch mở của bạn. gọi trước khi cam kết, một dịch vụ hậu trả tiền tìm thấy không có thanh toán hoàn thành, lặng lẽ để lại bản ghi âm chưa được trả lương, và vẫn còn sa thải các sự kiện của nó, vì vậy khách hàng được gửi email về một hồ sơ mà nền tảng cho rằng là không trả lương. Hãy đính kèm đồ thị, sau đó gọi.

Luật của sự trung thực

Không có bóng râm nào phản chiếu

Nếu đường dẫn bản địa là không thể tới, hãy từ chối với lỗi thử lại trước khi tiền di chuyển. Không bao giờ tạo ra tài liệu tham khảo, không bao giờ tái tạo một trạng thái để làm cho một kỷ lục nửa tích hợp được hoàn thành. Một việc xác nhận trả tiền đã thất bại trong việc xử lý bản địa đi đến sự hòa giải như là một phần của nó needs_attention: Số tiền là thật, bang này thực sự "được trả, chưa được xử lý".

Báo cáo sự việc, không phải lời khai của anh.

Dịch vụ chạy" và "các khách hàng đã được nói với" là các sự kiện khác nhau: sự tích hợp tham khảo vận chuyển một email hoàn toàn có vẻ trống với mỗi trường trong khi chạy-flag nói đúng. trở lại chúng riêng biệt (điều hành hoàn thành, thông báo cố gắng) giữ một mỗi cuộc gọi platform_notified mà ép buộc các OpsIQ Yêu cầu xác nhận hậu phương bất cứ khi nào nền tảng không được xử lý, và không bao giờ đòi hỏi giao hàng: một hộp thư đến không được hiển thị từ máy phục vụ.

Đo rồi ghi

Gửi một bộ thăm dò chỉ đọc trong cây cầu: sự tồn tại lớp, ký hiệu phương pháp, lát mã nguồn của các phương pháp bạn định gọi, thính giả thô, tài xế hàng đợi, và (khi một câu hỏi có thể được trả lời bằng cách gọi một chức năng vô hại) cuộc gọi trực tiếp. Năm lý thuyết về một thư điện tử rỗng đã chết trước khi người dùng giải quyết nó. Một máy thăm dò vòng một bản sao tập tin; một viết sai trên một nền tảng sống mất một khách hàng.

Trình kết nối

Cây cầu trong ngôn ngữ khác và cơ sở dữ liệu khác

Mô hình cầu không phải là mẫu PHP.OpsIQcuộc gọi là điểm kết thúc HTTP, vì vậy tập tin có thể là Node, Python, Go, Ruby, .NET hay Java, và cửa hàng đằng sau nó có thể bất kỳSQLĐộng cơ hayMongoDBHình PHP là đường ống đóng gói, và điều đó buộc bạn phải quyết định làm thế nào cây cầu của bạn đến được người điều hành. đọc phần giao hàng đầu tiên: nó là phần gây ngạc nhiên cho mọi người.

Điều mà bộ kết nối thực sự đòi hỏi

Đây là toàn bộ hợp đồng, không có gì trong đó đặt tên một ngôn ngữ.

Vận chuyển

HTTPS. 1 người nhận yêu cầu 1 cuộc gọi không có xác, không có phương pháp khác

Xác thực

Một bí mật chung trong X-Opsiq-Bridge-Key đầu trang yêu cầu, so sánh với thời gian không đổi. Không phải tham số truy vấn, không phải cookie, không thường xuyên.

Tham số

Đang truy vấn chuỗi. op Tên bề mặt, do Tên chiến dịch, phần còn lại là các đối số của chiến dịch.

Đáp ứng

JSON. {"success":true,"data":{...}} hay {"success":false,"error":"snake_case_reason"}Ứng dụng nội dung/jsonvà không bị đau bụng.

Mã Trạng thái

200 về thành công. 403 Chưa cấu hình hoặc không chìa khóa, 404 Không tìm thấy, 405 sai phương pháp, 400 lập luận tồi tệ, 501 Không được hỗ trợ trong giản đồ này.

Chỉ có vậy thôi.

Không khuôn khổ, không chạy, khôngOpsIQThư viện ở bên cạnh anh, nếu nó có thể làm được điều đó, nó có thê là một cây cầu.

Giao hàng: những gì có thể sống trong cầu/, và những gì không phải

Gói đã được ký bao gồm một danh sách cố định về phần mở rộng tập tin, và một tập tin bên ngoài danh sách đó không còn nằm trong danh sách ZIP.26Tháng Tám2026một tập tin vào bridge/ rằng gói sẽ rơi xuống là một thất bại khó thay đổi, vì vậy gói này từ chối thông qua hơn là cài đặt mà không có cây cầu trong đó.

Làm thế nào để xử lý một cây cầu/ thư mục trong lúc xây dựng
bridge/bridge.php     ->  SHIPPED, and drift-checked against the panel snippet
bridge/server.js      ->  SHIPPED, and drift-checked against the panel snippet
bridge/bridge.py      ->  REFUSED at conformance: "Bridge files are packaged" FAILS
bridge/bridge.rb      ->  REFUSED at conformance
bridge/main.go        ->  REFUSED at conformance
bridge/Bridge.cs      ->  REFUSED at conformance
bridge/Bridge.java    ->  REFUSED at conformance
PHP vàJavaScript— được hỗ trợ hoàn toàn

Các tàu tập tin trong máy ZIP đã được ký, và các verpetifier giữ bảng sao chép theo thứ tự định sẵn cho nó, bất cứ điều gì trong hai tập tin đó. Kiểm tra trôi đi đọc mỗi tập tin bằng cầu /, không chỉ những tập tin PHP, vì vậy một cây cầu nâng cấp với một bản sao cũ bản sao bị lỗi xây dựng trong cả hai ngôn ngữ.

Mọi thứ khác — chỉ gửi qua bảng

Bảng này là đoạn đơn giản không biết nó chứa ngôn ngữ nào, vì vậy nó hoạt động cho bất kỳ chồng nào. Đặt toàn bộ chương trình bằng « knok_help ». snippet_ stlate », tên tập tin trong chia hoá_ file (danh sách) và KHÔNG để lại bản sao trong cầu / — thay vì con tàu rỗng. Hãy nói rõ ràng vào kilô_ help. Người điều khiển sao chép tập tin này thay vì nhận được từ gói.

Nếu bạn thật sự cần một ngôn ngữ khác trong gói

Widen PackageSigner::EXTENSIONS deliberately, then re-sign and re-seed. That is a decision about what executable code Nabtech distributes, so make it on purpose — do not discover it from a missing file.

💡
Tên tập tin vào webhook_help.snippet_filename Đó là cách mà người ta biết cây cầu có một bản sao trên bảng điều khiển thuộc về nó; nếu không có nó, một cặp mơ hồ được báo cáo như một cảnh báo tùy chỉnh và đoạn trích đó bị kiểm soát.
⚠️
Điểm mấu chốt của việc kiểm tra trôi đi là một tập tin cầu và bảng sao chép của nó là hai bản sao của một chương trình và Will sẽ tách ra. php tools/sync_connector_bridge_snippets.php --applyVậy thì ký lại gói hàng.

Cổng thành, trong sáu ngôn ngữ

Cùng một thứ tự kiểm tra: thất bại với không phím, một phương pháp, so sánh thời gian thường xuyên từ đầu trang, rồi kết nối. Cái bẫy thật duy nhất là sự so sánh, và nó là một cái bẫy khác trong mỗi ngôn ngữ.

⚠️
So sánh với...256Tiêu hóa hai phím thay vì chính chìa khóa. nó đúng trong mỗi ngôn ngữ, và nó bước qua một thực tế là nhiều người so sánh thời gian thường xuyên hoặc ném hoặc rò rỉ trên một khoảng thời gian không phù hợp với nhau - thời gian của Node nâng lên kính hiển vi khi các bộ đệm khác nhau chiều dài, mà biến một chìa khóa sai thành một500thay vì a.403.
Nón. js — cổng
// Node.js — no dependencies
const http = require("http"), crypto = require("crypto"), url = require("url");

const BRIDGE_KEY = process.env.OPSIQ_BRIDGE_KEY || "";   // empty = bridge OFF

const sameKey = (a, b) => {
  const ha = crypto.createHash("sha256").update(String(a)).digest();
  const hb = crypto.createHash("sha256").update(String(b)).digest();
  return crypto.timingSafeEqual(ha, hb);                 // equal lengths, always
};
const out = (res, payload, code = 200) => {
  res.writeHead(code, { "Content-Type": "application/json; charset=utf-8",
                        "Cache-Control": "no-store" });
  res.end(JSON.stringify(payload));
};

http.createServer(async (req, res) => {
  if (BRIDGE_KEY.length < 24)         return out(res, { success: false, error: "bridge_not_configured" }, 403);
  if (req.method !== "GET")           return out(res, { success: false, error: "method_not_allowed" }, 405);
  const given = req.headers["x-opsiq-bridge-key"] || "";
  if (!given || !sameKey(BRIDGE_KEY, given))
                                      return out(res, { success: false, error: "forbidden" }, 403);

  const q = url.parse(req.url, true).query;
  // ... dispatch on q.op / q.do exactly as the PHP bridge does
}).listen(process.env.PORT || 8787);
Python — cổng
# Python — Flask
import hashlib, hmac, os
from flask import Flask, request, jsonify

app = Flask(__name__)
BRIDGE_KEY = os.environ.get("OPSIQ_BRIDGE_KEY", "")      # empty = bridge OFF

def same_key(a: str, b: str) -> bool:
    return hmac.compare_digest(
        hashlib.sha256(a.encode()).digest(),
        hashlib.sha256(b.encode()).digest(),
    )

def out(payload, code=200):
    resp = jsonify(payload)
    resp.status_code = code
    resp.headers["Cache-Control"] = "no-store"
    return resp

@app.before_request
def gate():
    if len(BRIDGE_KEY) < 24:
        return out({"success": False, "error": "bridge_not_configured"}, 403)
    if request.method != "GET":
        return out({"success": False, "error": "method_not_allowed"}, 405)
    given = request.headers.get("X-Opsiq-Bridge-Key", "")
    if not given or not same_key(BRIDGE_KEY, given):
        return out({"success": False, "error": "forbidden"}, 403)
Đi đi, Ruby, . NET và Java — cùng một sự so sánh
// Go
func sameKey(a, b string) bool {
    ha := sha256.Sum256([]byte(a))
    hb := sha256.Sum256([]byte(b))
    return subtle.ConstantTimeCompare(ha[:], hb[:]) == 1
}

func gate(next http.HandlerFunc) http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "application/json; charset=utf-8")
        w.Header().Set("Cache-Control", "no-store")
        key := os.Getenv("OPSIQ_BRIDGE_KEY")
        if len(key) < 24 { out(w, 403, "bridge_not_configured"); return }
        if r.Method != http.MethodGet { out(w, 405, "method_not_allowed"); return }
        given := r.Header.Get("X-Opsiq-Bridge-Key")
        if given == "" || !sameKey(key, given) { out(w, 403, "forbidden"); return }
        next(w, r)
    }
}

// Ruby
def same_key?(a, b)
  OpenSSL.secure_compare(Digest::SHA256.digest(a.to_s), Digest::SHA256.digest(b.to_s))
end

// C# / .NET
static bool SameKey(string a, string b) =>
    CryptographicOperations.FixedTimeEquals(
        SHA256.HashData(Encoding.UTF8.GetBytes(a)),
        SHA256.HashData(Encoding.UTF8.GetBytes(b)));

// Java
static boolean sameKey(String a, String b) throws Exception {
    MessageDigest d = MessageDigest.getInstance("SHA-256");
    return MessageDigest.isEqual(d.digest(a.getBytes(UTF_8)), d.digest(b.getBytes(UTF_8)));
}

Đang kiểm tra nhận diện bộ nhạy trên mỗi cơ sở dữ liệu

Tài sản an toàn không thay đổi: cần phải kiểm tra lại tên bảng hay cột mà bộ gọi cung cấp để xem giản đồ thật trước khi nó được cân chỉnh, và mỗi giá trị phải là một tham số hạn chế. Chỉ yêu cầu nội dung, ký tự trích dẫn và điều khoản pating khác nhau.

MySQLvàMariaDB

Bảng: SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = ?Cột: giống nhau chống information_schema.COLUMNSAND TABLE_NAME = ?Trích dẫn với nội dung ngược, gấp đôi bất kỳ kết thúc bên trong. LIMIT n OFFSET m.

PostgreSQL

Cùng thông tin _xem giản đồ, tên chữ thường, WHERE table_schema = $1 (thường là publictrích dẫn có hai câu, nhân đôi bất kỳ trích dẫn nào bên trong. LIMIT n OFFSET mXem quy tắc gấp: bộ nhận diện chưa trích dẫn được gấp vào trường hợp thấp hơn, vì vậy hãy so sánh phân biệt chữ hoa/ thường khi bạn giải quyết tên.

SQLMáy phục vụ

Cùng một quan điểm, trích dẫn với khung vuông, gấp đôi bất kỳ dấu đóng nào bên trong. ORDER BY [id] DESC OFFSET @o ROWS FETCH NEXT @n ROWS ONLY.

SQLite

Bảng: SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%'Cột: SELECT name FROM pragma_table_info(?) - sử dụng hình thức đánh giá bảng, bởi vì trần PRAGMA table_info(x) tuyên bố không thể mất một tham số ràng buộc và mời chuỗi Interpolation có là chính xác lỗ bạn đang cố gắng đóng. trích dẫn với dấu ngoặc kép. Page with LIMIT n OFFSET m.

Nhà tiên tri

Bảng: SELECT TABLE_NAME FROM ALL_TABLES WHERE OWNER = :owner; cột từ ALL_TAB_COLUMNSTrích dẫn có trích dẫn kép, và nhớ một gấp không trích dẫn để nhận diện trường hợp UPPPIS, đối diện vớiPostgreSQLTrang có OFFSET :o ROWS FETCH NEXT :n ROWS ONLY Trên 12c và sau đó.

MongoDB

KhôngSQLVì thế, không có sự xác định và tham số hạn chế — một kỷ luật khác cho cùng mục tiêu.

Comment
-- MySQL / MariaDB
SELECT TABLE_NAME  FROM information_schema.TABLES  WHERE TABLE_SCHEMA = ?;
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?;

-- PostgreSQL
SELECT table_name  FROM information_schema.tables  WHERE table_schema = $1;
SELECT column_name FROM information_schema.columns WHERE table_schema = $1 AND table_name = $2;

-- SQL Server
SELECT TABLE_NAME  FROM INFORMATION_SCHEMA.TABLES  WHERE TABLE_SCHEMA = @schema;
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @schema AND TABLE_NAME = @table;

-- SQLite
SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%';
SELECT name FROM pragma_table_info(?);

-- Oracle
SELECT TABLE_NAME  FROM ALL_TABLES      WHERE OWNER = :owner;
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE OWNER = :owner AND TABLE_NAME = :tbl;
💡
Giải quyết, sau đó sử dụng tên RSOLVED. Không bao giờ đưa chính tả của người gọi qua truy vấn ngay cả sau khi kiểm tra nó — tìm tên thật trong danh sách bạn đọc từ giản đồ và văn phạm mà. nó không tốn gì và đóng khoảng trống giữa "danh này tương ứng với cái gì đó" và "Đây là tên tôi sắp chạy".

MongoDB: cùng một quy tắc, không cóSQL

Không có chuỗi truy vấn cần tiêm vào, vì vậy mọi người giả định không có gì để bảo vệ. Có: tài liệu lọc.JSONThẳng vào find() Hãy để một người gọi gửi {"$ne": null} hay {"$gt": ""} nơi bạn mong đợi một giá trị, và lặng lẽ chọn mỗi tài liệu. hãy tự xây dựng bộ lọc.

MongoDB- thu thập danh sách cho phép, bộ lọc vô hướng, hình chiếu là hành động lại
// Node + the official driver
const names = (await db.listCollections({}, { nameOnly: true }).toArray()).map(c => c.name);

function resolveCollection(given) {
  if (!/^[A-Za-z0-9_.-]+$/.test(given || "")) return null;
  return names.find(n => n.toLowerCase() === String(given).toLowerCase()) || null;
}

const coll = resolveCollection(q.collection);
if (!coll) return out(res, { success: false, error: "unknown_collection" }, 404);

// Build the filter from a validated field and a SCALAR value. Never spread
// caller JSON into it: {"$ne":null} would match every document.
const filter = {};
if (q.where_field) {
  if (!/^[A-Za-z0-9_.]+$/.test(q.where_field))
    return out(res, { success: false, error: "unknown_field: " + q.where_field }, 400);
  filter[q.where_field] = String(q.where_value ?? "");   // String() is the guard
}

// Projection is the redaction allow-list: drop secrets, never return them.
const projection = { password: 0, remember_token: 0, api_key: 0, secret: 0, token: 0 };

const limit = Math.min(Math.max(parseInt(q.limit ?? "25", 10) || 25, 1), 200);
const rows  = await db.collection(coll)
                      .find(filter, { projection })
                      .limit(limit)
                      .skip(Math.max(0, parseInt(q.offset ?? "0", 10) || 0))
                      .toArray();
Các tên tập hợp đến từ danh sách đối chiếu

Hãy giải quyết cách viết của người gọi và dùng tên đã được giải quyết.

Buộc mọi giá trị lọc vào một vô hướng

Một chuỗi () hay một số () xung quanh nó là toàn bộ biện hộ chống lại tiêm máy. Một tài liệu mà bạn mong đợi giá trị tương đương với một trích dẫn sai lầm.

Dự án là quy tắc tái tác

Những trường hình chữ tiết trong dự án nên chúng không bao giờ rời khỏi máy chủ, thay vì xóa chúng khỏi kết quả sau đó.

Xoá( delete)

Xóa 1 với _BAR_không bao giờ xóa nhiều và không bao giờ lọc bộ lọc tác động.

Ghi vẫn còn danh sách cho phép

Cùng lập luận nhưSQL: Hãy đặt tên cho bộ sưu tập có thể chạm đến và từ chối những người còn lại với lời giải thích.

Điểm chấm hết trong các ngôn ngữ khác

Máy dò nhận dạng là nửa còn lại của một cây cầu, và nó cũng là HTTP. khối ký hiệu giống hệt nhau trong mọi ngôn ngữ: cơ sở 64url tải,HMAC-HA256 dây đó, tham gia với một dấu chấm.

Đừng viết điều này từ đầu. Thiết lập « Cổng Hỗ trợ » (một- ngôn ngữ sẵn sàng cho cổng ra vào (một giờ, hai phút). Nơi ở xa, nơi Mạng, mã, C. Nhận diện khách đăng nhập tự động mang phiên bản chat trên mỗi ngôn ngữ (một tờ một giờ cộng với bộ quản lý cập nhật). Lấy bộ ký từ các nhà cung cấp có mùi vị khớp với chồng của bạn.
Thay đổi gì khi bạn sử dụng lại nó

Những trích này đúc một biểu tượng bàn tay ra quan trọng, mà là cố tình nghiêm ngặt hơn: nó mang jti và duy nhất_use: sự thật và cuộc sống về120giây bởi vì nó di chuyển trong mộtURL..một cây cầu hoặc bảng nhận diện ô điều khiển không mang theo cái nào trong đó và dùng phép trừ dài hơn, từ phút này đến giờ khác.

Cái gì còn nguyên như cũ

Trang_key, iat, exp và một xác thực cấp cao: thực, cộng với một quản trị hoặc khách hàng với một ID và tên người dùng hoặc email.

Cả hai hình dáng đều được xác minh

Một phần ba JWT ký hợp đồng với HS256 cũng làm việc, và hai phần cơ sở 64url vũ khí cộng với Hex HMAC Nếu thư viện ngôn ngữ của bạn tạo ra tự nhiên — thư viện JWT thường là đường ngắn hơn bên ngoài PHP.

Không bao giờ được để bạc hà trong trình duyệt

Ký tên khách hàng có nghĩa là gửi bí mật trang web cho mọi khách truy cập.

Chọn lựa, thật đấy.

Nền tảng là kênh PHP

Viết bài _BAR_ vào trong mục PHP . nó được gửi vào gói , kiểm tra độ lệch, và nó có thể khởi động khung của chính nền tảng để đọc một phiên họp trực tiếp cho máy dò nhận dạng. không gì khác cho bạn cả ba thứ đó.

Nền tảng là Node

Một chiếc tàu chở hàng, biển hiệu và được kiểm tra chính xác như một chiếc PHP 1.

Nền tảng là Python, Ruby, Go, . NET hoặc Java

Chuyển qua bảng nháp và nói như vậy trong cơ thể bảng; đừng để tập tin ở cầu/, nơi tùy chỉnh sẽ từ chối gói. Nếu không, kết nối hoàn toàn bình thường: hành động, nhà cung cấp ngữ cảnh, thông tin cá nhân và thông tin khách tất cả đều hoạt động giống nhau, vì không ai quan tâm đến những gì trả lời cuộc gọi HTTP.

Bạn không thể chạy một tiến trình trên máy chủ

Sau đó, mô hình cầu không phải là công cụ đúng. một cây cầu tồn tại để đạt được một nền tảng từ bên trong chủ thể của nó.APILiên kết với bất cứ bề mặt nào nó phơi bày.

⚠️
Một cách khác để thiết lập kế chung quanh: một bộ thăm dò danh tính phải đọc các dữ liệu thoải mái và có thể vẫn còn khó khăn để trả lời các thông tin của cơ sở này. Nếu đó là trường hợp của bạn, thì hệ thống dữ liệu trong ngôn ngữ của bạn và bộ thăm quan của bạn.
Trình kết nối

Cho trợ lý cả hai nửa: hành động và ngữ cảnh

Đây là điều thường xuyên nhất thiếu từ một kết nối mà "công việc nhưng vô ích". Hành động cho phép các AI làm điều. Phần văn bản cho phép nó biết những điều. Một kết nối cần cả hai, và hầu hết câu hỏi một admin hỏi được trả lời bằng ngữ cảnh, không bao giờ bằng hành động. Một tổ chức kết nối với hành động hoàn hảo và không có nhà cung cấp ngữ cảnh nào sẽ thực sự thông báo rằng nó không thể nhìn thấy gì.

Hai nửa

Hành động — Cách AI làm việc

Được tuyên bố bằng hành động.jsonhoặc được trả lại bởi bộ nhớ tạm (). Mô hình chọn một, điền các tham số của nó, vàOpsIQThực hiện nó. Hành động là cho các động từ: hủy bỏ việc đặt chỗ, mở vé, thay đổi trạng thái này.

Các phần văn bản — Làm thế nào AI biết được nhiều điều

Được tập hợp bởi một người bảo vệ văn bản trước khi mô hình chạy. "Có bao nhiêu mệnh lệnh tháng này," những khách hàng mới nhất của tôi, "chúng ta sẽ bán cái gì" tất cả đều giải quyết thông qua một nghiên cứu ngữ cảnh, và không bao giờ chạm vào một hành động nào cả.

⚠️
Triệu chứng của một nhà cung cấp còn thiếu: trợ lý trả lời "Không có kết nối đã cung cấp vùng văn cảnh này" trong khi trình kết nối được cài đặt, bật và vượt qua thử kết nối. Không có gì được ghi lại, không có lỗi gì. Thông điệp đó có nghĩa là chưa có nhà cung ứng nào nhận phần đó.

Từ vựng phần phổ biến

OpsIQCông việc của bạn là quyết định ý nghĩa của mỗi thứ trên nền tảng của bạn và trả lời nó. đặt phòng khách sạn, một căn phòng là những gì khách sạn bán.

Thứ tự/ gọi_ lệnh

Dù một giao dịch là gì trên nền tảng của bạn: đặt hàng, đặt chỗ trước, công việc, lô hàng.

ứng dụng khách

Danh sách khách hàng.

products

Những gì nền tảng bán được: sản phẩm, phòng, kế hoạch, dịch vụ.

thanh

Thu nhập và tổng số tiền có hình dạng, cộng với số lượng theo tiểu bang.

vé, dịch vụ, miền, máy chủ, hoạt động

Đừng ép bạn phải lập bản đồ, phần chưa được giải đáp tốt hơn phần không đúng.

Bất cứ thứ gì khác mà nền tảng của anh có

Một nhà cung cấp tuyên bố các phần: ['licenses's, 'mshipment' đã kết hợp những người này vào danh sách tìm kiếm của vũ trụ, do đó, nền tảng đặc trưng sẽ có sẵn mà không cần thay đổi chính.

Sai lầm đó tốn một ngày

Một nhà cung cấp ngữ cảnh phải thực hiện giao diện. Trình kiểm tra kiểu đăng nhập, vì vậy một lớp chỉ cần lookS bên phải bị bỏ qua — không có lỗi nào, bất cứ nơi nào.

Bản hợp đồng, từ gói tham khảo Botble
use OpsIQ\Platform\ContextProviderInterface;

/* MUST implement ContextProviderInterface: ContextRegistry::collectAll()
 * type-checks it, so a provider that merely LOOKS right is skipped and every
 * section answers "No enabled connector supplied this context section" — the
 * exact symptom, with no error anywhere. */
final class ContextProvider implements ContextProviderInterface
{
    public function slug(): string  { return 'yourplatform_context'; }
    public function label(): string { return 'Your Platform (orders, customers, products)'; }
    public function priority(): int { return 30; }   // lower renders earlier

    /** ADMIN only. The guest surface has its own provider and its own rules. */
    public function surfaces(): array { return ['admin']; }

    /** The universal section names this connector can answer. */
    public function sections(): array
    {
        return ['orders', 'pending_orders', 'clients', 'products', 'billing'];
    }

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '' && trim((string)($s['api_key'] ?? '')) !== '';
        } catch (\Throwable $e) {
            return false;
        }
    }

    public function build(array $ctx): string
    {
        $section = strtolower(trim((string)($ctx['section'] ?? '')));
        $limit   = max(3, min(50, (int)($ctx['limit'] ?? 20)));
        $query   = trim((string)($ctx['query'] ?? ''));
        try {
            switch ($section) {
                case 'orders':
                case 'pending_orders': return $this->orders($limit, $query, $section === 'pending_orders');
                case 'clients':        return $this->customers($limit, $query);
                case 'products':       return $this->products($limit);
                case 'billing':        return $this->billing();
            }
        } catch (\Throwable $e) {
            return '';   // a provider must NEVER break prompt assembly
        }
        return '';
    }
}
Đăng ký nó từ thiết bị kết nối

Tạo ra Interface để gửi lại các nhà cung cấp từ ngữ cảnhProviders (). Lớp kết nối cũng có thể thực hiện IntextProvider Inter Face trực tiếp và được đăng ký với tên chính nó.

Nhập thô vào đâyJSON

Xây dựng () trả lại một khối văn bản được xếp vào dấu nhắc. Viết ra cho độc giả: tiêu đề, rồi một dòng trên mỗi hàng.

Trở về 'hơn là ném'

Hãy tự làm ngoại lệ của mình. nhưng quay lại '' là hợp đồng.

Trình xây dựng không thể ghi phần () cho bạn

Các tàu ContextProvider. php tạo ra các phần (): mảng{ trả lại;} và pháp sư không có đồng ruộng nào.

⚠️
Nhà nước thực sự TOTAL, không phải số hàng bạn đã gửi. một trang không phải là tổng số. một nhà cung cấp mà danh sách hai mươi hàng mà không cần nói vì vậy có được trợ lý trả lời tự tin "bạn có 20 Đặt chỗ" khi nền tảng nắm giữ 669. một loại thuốc giảm đau rẻ tiền và một đường thẳng rõ ràng — "TOTAL on file: 669 (danh sách này hiển thị mới nhất 20 Chỉ có) — toàn bộ sự sửa chữa, và việc đếm sai một cách tự tin thì còn tệ hơn là không tính.
Một khu vực không thể đếm sai được.
$lines = ['YOUR PLATFORM — ORDERS (live, newest first)'];
$lines[] = 'TOTAL orders on file: ' . (int)$total
         . ' (this list shows the newest ' . count($rows) . ' only — never count these rows to answer "how many")'
         . ' | by status: ' . $byStatus;
foreach ($rows as $r) {
    $lines[] = '#' . (int)$r['id'] . ' ' . $r['reference'] . ' | ' . $r['status']
             . ' | amount ' . $r['amount'] . ' | ' . substr((string)$r['created_at'], 0, 16);
}
$lines[] = 'Use yourplatform_get_order (order_id) for the full record.';
return implode("\n", $lines);

Nói tên hành động của bạn như vậyOpsIQcó thể phân biệt chữ viết

OpsIQPhân loại một hành động bởi các từ trong hành động_d, và nó là cố ý bảo thủ: bất cứ điều gì nó không thể nhận ra được xem như là một văn bản và yêu cầu một thẻ chấp thuận.

1
là _tự hủy hoặc yêu cầu _sự xác nhận thắng

Nếu một trong hai được thiết lập, hành động luôn cần được chấp thuận.

2
Viết chữ ở bất cứ đâu trong thẻ căn cước này cũng khiến nó là một văn bản.

Thêm, tạo, mở, cập nhật, chỉnh sửa, sửa đổi, sửa, thay đổi, xoá, hủy bỏ, hủy, hủy diệt, hủy đi, hoàn lại, ngưng, tạm dừng, thôi thúc, phê chuẩn, từ chối, gửi, đánh dấu, bắt đầu, thu hồi, sắp xếp, chuyển đổi, bật lại, tắt, bật lên, tạo ra, tính toán, trả tiền, tăng, nâng cấp, chuyển tải, chuyển hóa, chuyển động, chuyển tiếp, ghi chú, đồng bộ, ấn bản, chạy, khởi động, dừng lại, và thêm một vài thứ nữa.

3
Sau đó, một từ đọc được làm cho nó là một đọc

Lấy danh sách, tìm kiếm, tìm, xem, xem xét, thu thập, đếm, xem lại, xem thử, xem trước, xem qua, xem trắc nghiệm, đánh dấu, vị trí, tóm tắt, chi tiết, lịch sử gần đây, kiểm tra, bản ghi, thông tin cá nhân, thu nhập, báo cáo, cân bằng, sử dụng, hạn chế, hình ảnh, sự hiểu biết, thông báo, giấy tờ, phân loại, đề nghị.

4
Sau đó phương pháp HTTP quyết định

TIẾNG HÊ - SẼ VÀ NHỮNG CÂU CHUYỆN.

5
Nếu không thì đó là một bài viết.

Không nhận ra nghĩa là cần thiết chấp thuận. Mặc định là có chủ đích.

⚠️
Ghi từ được bật trước khi đọc, nên một tên lẫn nhau như « get_ _sync_ Orders » được phân loại là « _traw. Chọn một động từ, đặt nó trước hết, và giữ nó sạch: danh sách_ thứ tự_ khách hàng, tìm_ sách_ sách , hủy bỏ_ sách, đặt_ setatus.

Chỉ tuyên bố bản địa_api nếu nền tảng thực sự có một

The native_api capability registers a generic <slug>_api_call passthrough so the model can reach endpoints your typed actions do not cover. On a platform with no API it is worse than useless: the model keeps reaching for a tool that cannot succeed, instead of using the tools that can.

Người xây dựng quyết định từ dữ liệu-axes của bạn

Say the platform has an API and it declares native_api and emits the passthrough. Say it has none (bridge mode, or the "Platform with no API" profile) and it declares platform_bridge instead and strips native_api, so the two can never both be true. You no longer hand-edit this.

Những gói có quyền hạn vẫn phải làm đúng

Nếu bạn đang viết bản thân bản thân mình, hãy tuyên bố chính xác một trong những người bản địa_api hoặc bridge.APIKết nối.

Giữ tham chiếu ai_ api. md trung thực cách nào

On a connector that declares native_api the admin brain heads that file with a line naming <slug>_api_call. Without native_api it is headed neutrally instead, so a bridge connector no longer advertises a tool it does not have. Describe your real surface — for a bridge, that is your op and do vocabulary, not a REST endpoint table.

Dạy bộ não quản lý về nền tảng của bạn

Declare ai_brain_aware and ship two Markdown files. They are read from the INSTALLED package directory (opsiq/connectors/<slug>/) for ENABLED connectors only, and injected into the admin agent's system prompt.

ai_expertise_admin.md

Cái nền tảng này, dữ liệu của nó được hình thành như thế nào, những vật thể của nó là gì, và những điều kì quặc mà không thì sẽ làm cho trợ lý đoán.

ai_api_reference.md

Với một cầu nối đây là nhiệm vụ của anh và làm từ vựng với các tham số của họ, không phải bàn cuối cùng.

Ngân sách

Gần như6,000Ký tự giữ trên mỗi kết nối, v.v...24,000ký tự cho toàn bộ khối trên mọi kết nối có khả năng. Hơn nắp trên mỗi kết nối tập tin của bạn bị cắt đứt; phải ngắn gọn trước khi có bộ thắt dây.

Trả tiền chính xác

Những tập tin này là sự khác biệt giữa trợ lý sử dụng công cụ bàn toàn cầu của bạn và trả lời từ phần sai vì không có gì cho biết nó đã tồn tại.

💡
Cả hai tập tin phải nằm trong gói nằm trong danh sách nằm ở một cái cây nguồn, không chỉ là những tập tin gói thông thường, nên chúng được bao phủ bởi chữ ký và gửi đi theo ZIP — cũng có nghĩa là sửa lại một cái sau khi ký tên.
Trình kết nối

Nhận diện thông qua một kết nối: Adam, khách hàng, cổng

Một hợp đồng ký với 3 bề mặt.OpsIQcó thể xác minh, và sau đó trình bày đề tài đã được kiểm traOpsIQHình dạng của nó. và chữ ký có thể khẳng định điều đó.

Ba mặt, một dấu hiệu

Quản trị — nhân viên của bạn, bên trong hậu phương

Một đối tượng quản trị. Các thiết bị nạp bên trong bảng điều khiển của nền tảng và mỗi thành viên được tương ứng với riêng của họOpsIQĐặc vụ, đi xuyên qua trang thiết bị điều khiển.

Khách hàng — một khách hàng đã ký tên, trong trò chuyện khách hàng

Đây là những gì cho phép một khách hàng đăng nhập vào tài khoản WHOLE của họ thay vì một kiểm tra vô danh: mọi thứ tự, chi tiết, và bất kỳ hành động phục vụ nào bạn cho phép.

Cổng — một đường dẫn sâu vào cổng hỗ trợ

Các yêu cầu tương tự cộng với jti và đơn_use, với một120- Cuộc sống thứ hai, bởi vì vật tượng trưng di chuyển trong mộtURLvà cần phải sử dụng một lần. Đừng cầm tay vào mục này: Thiết lập Cổng Hỗ trợ mang theo một dấu chấm trên mỗi ngôn ngữ, và nền tảng đúc bạc hà cho bạn khi vùng tài khoản chạy trên máy phục vụ này.

Hợp đồng tải hàng

Đây là những yêu cầu kiểm tra. bất cứ ví dụ nào ở nơi khác có thể gợi ý.

site_key

Cấp cao nhất. hoặc vật tượng trưng bị từ chối.

iat và exp

Những giây tách rời cao nhất, phải ở trong tương lai và sau khi tắm.

Xác thực: đúng

Cấp cao nhất, bên cạnh cấp độ cấp cứu, nền tảng của anh khẳng định rằng một con người thật sự đã được đăng nhập.

Nền

Cấp cao nhất, một con ốc sên ngắn đặt tên nguồn gốc.

mandmin hay khách hàng

Một đối tượng đặt tên đối tượng. Nó phải mang một chứng minh không rỗng, và tên người dùng hoặc email — cổng truy cập vĩnh viễn khớp với đối tượng đó. Bao gồm cả hai khi bạn có cả hai.

Khai thác, nguyên văn từBotbleCầu
$payload = [
    'site_key'      => $cfgSiteKey,
    'iat'           => time(),
    'exp'           => time() + 6 * 3600,
    'authenticated' => true,
    'platform'      => 'yourplatform',
    /* 'admin' or 'customer' — OpsIQ stamps the matching session identity
     * from whichever key is present. */
    $opsiqSubject   => $subjectPayload,
];
$payload64     = rtrim(strtr(base64_encode(json_encode($payload, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
$identityToken = $payload64 . '.' . hash_hmac('sha256', $payload64, $cfgSecret);

Hai người giám định, và thất bại mà họ gây ra

OpsIQcó hai bộ giám định, và chúng không giống hệt nhau. biết điều này giúp bạn tiết kiệm được một buổi chiều, bởi vì triệu chứng không giống nguyên nhân.

Ô điều khiển man có bộ duyệt riêng

opsiqHọ đã kết nối với nhau.

Các verifier chung là nghiêm ngặt hơn

opsiq/Incudes/customer_dentity_ token_leify.p ngồi phía sau dòng chat và lõi AJAXAPILịch sử yêu cầu cờ ở mức TP.

Triệu chứng

Lịch sử và cuộc trò chuyện hoạt động. Mỗi cuộc trò chuyển câu trả lời sang "Bửi đăng nhập Admin" cần thiết. Nó đọc chính xác như lỗi phiên chạy, nhưng không phải: thẻ tín dụng còn thiếu cờ cấp cao.

Những gì lõi hiện tại làm

Bây giờ nó chấp nhận lá cờ ở cấp cao nhất bên trong đối tượng, nên hợp đồng là đồng phục.

Đây là kiểm tra máy. Bất kỳ tập tin nào trong gói của bạn mà các thẻ căn cước bạc hà được tiếp tục quét ngược lại với giao kèo, và một tải về sẽ từ chối tính phù hợp với tập tin và dòng chính xác. Hãy chạy nó: php công cụ/vertification_contracts. p.

Trong cuộc trò chuyện khách hàng đăng nhập

Hai điều phải là sự thật. và người nối máy của anh phải trình bày nó.

1
Cây cầu của bạn hoặc điểm cuối bạc hà một tín hiệu khách hàng

Cùng một người ký tên như người quản lý, với chủ đề khách hàng. Đọc cho khách hàng từ phiên họp của chính nền tảng. Nếu các khách hàng của bạn ký tên trên một vệ sĩ khác từ Adam, hãy đọc người bảo vệ mà bạn muốn và không bao giờ quay lại đối tượng - đó là cách mà khách hàng sẽ được trao một tờ quảng cáo.

2
Mã kim và đóng dấu

Trên một hiệu bài hợp lệ, hãy đóng dấu chủ đề đã được thẩm tra vào phiên chạy. Nhà cung cấp của bạn đọc một bản thể đã chứng minh; nó không bao giờ xác thực quyền.

3
Người bảo vệ nhân cách của bạn trình bày nó

Phát hiện Máy phát hiện () trả lạiOpsIQHình dạng, nó phải thực hiệnOpsIQ\Platform\ Nhận diện Interface, hoặc tiếng tăm âm thầm bỏ qua — cùng cái bẫy với người cung cấp ngữ cảnh.

4
Hành động kính hiển thị khách hàng của bạn chấp nhận một _id

VàOpsIQ@ info/ rich

Nhận diện Người Bảo Vệ.php — đọc nhân dạng đã chứng minh, trình bày nóOpsIQHình
use OpsIQ\Platform\IdentityProviderInterface;

final class IdentityProvider implements IdentityProviderInterface
{
    public function slug(): string  { return 'yourplatform_identity'; }
    public function label(): string { return 'Your Platform identity (bridge-signed identity_token)'; }
    public function priority(): int { return 25; }   // ahead of the generic session provider

    public function isAvailable(): bool
    {
        try {
            $s = \OpsIQ\Connectors\ConnectorRegistry::getSettings('yourplatform') ?: [];
            return trim((string)($s['base_url'] ?? '')) !== '';
        } catch (\Throwable $e) { return false; }
    }

    public function detectAdmin(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_admin_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Admin'),
            'email'    => (string)($row['email'] ?? ''),
            'username' => (string)($row['username'] ?? ''),
            'role'     => (string)($row['role'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    public function detectCustomer(): ?array
    {
        $row = $this->sessionRowFor('_opsiq_customer_identity');
        if (!$row || !$this->isOurs($row)) return null;
        return [
            'id'       => (int)($row['id'] ?? 0),
            'name'     => $this->displayName($row, 'Customer'),
            'email'    => (string)($row['email'] ?? ''),
            'phone'    => (string)($row['phone'] ?? ''),
            'platform' => 'yourplatform',
            'source'   => 'yourplatform_identity_token',
        ];
    }

    /* A session identity stamped by ANOTHER platform's token must not be
     * claimed here. An empty platform is accepted because older bridges did
     * not stamp one, and the site key already scoped the token. */
    private function isOurs(array $row): bool
    {
        $p = strtolower(trim((string)($row['platform'] ?? '')));
        return $p === '' || $p === 'yourplatform' || $p === 'remote';
    }

    private function sessionRowFor(string $key): ?array
    {
        if (session_status() !== PHP_SESSION_ACTIVE) return null;
        $row = $_SESSION[$key] ?? null;
        return (is_array($row) && (int)($row['id'] ?? 0) > 0) ? $row : null;
    }
}

Hành động tự chọn: hai ổ khóa, cả hai đều cần thiết

Mô hình không bao giờ được chọn xem dữ liệu của ai.OpsIQMột khóa là một con bọ thoát khỏi một rò rỉ; hai ổ khóa là hợp đồng.

Khoá1 — OpsIQGhi đè các tham số nhận dạng

Trước khi khách hàng bắt đầu hành động,OpsIQThay thế tất cả các tham số hình nhân dạng khách truy cập VERID: khách hàng_id, khách hàng id, sử dụng iid, du khách id, tài khoản id_id dùng mã số đã xác nhận; trạm khách_ xác nhận,_ bộ nhận diện , tài khoản_ xác định nó là một chuỗi; thư điện tử_ email, thư khách_ khách hàng , email, người dùng_ email kiểm tra email. Bất cứ mô hình nào được đề nghị bị hủy bỏ.

Khoá2--các màn hình của bạn sẽ quay lại mỗi yêu cầu

Lấy thẻ căn cước mà bạn đã nhận và thêm vào mỗi điều khoản của mọi thứ đọc và mọi văn bản trên bề mặt đó. không bao giờ tin vào yêu cầu trong một mình. một khách hàng ký tên hỏi về lệnh của người khác phải trở lại trống rỗng, chứ không bị cấm.

Tên các tham số nên khoá1Có thể tìm thấy chúng.

Gọi nó là máy khách_d, không phải quản lý hay trọng tài.OpsIQkhông nhận ra tham số nên không thể khóa.

⚠️
Cung cấp cho các khách hàng đã ký trong bên ngoài hoạt động tự do của nó, tách biệt với các quảng cáo, ngay cả khiSQLHai bề mặt với những quy luật khác nhau giữ trung thực; một bề mặt bằng lá cờ trở thành lỗ thủng vào ngày có người chỉnh sửa sai chi nhánh.

Dây cáp không trang: bộ dò kết nối- declared

You can spare the operator all page wiring. Add an admin_identity_probe_url setting (https only) pointing at your identity endpoint. The plain admin-widget loader from Remote Sites, Codes then works with no page attributes at all: the widget discovers the endpoint through the connector, calls it with the site key and widget token, and authenticates each admin individually. A page can still override with a data-identity-endpoint attribute or window.OpsIQAdminIdentityEndpoint.

thiết lập.json— thiết lập thăm dò
{
  "key": "admin_identity_probe_url",
  "label": "Admin identity probe URL",
  "type": "text",
  "placeholder": "https://your-site.com/opsiq-yourplatform-bridge.php?op=admin_identity",
  "help": "Set this to your bridge admin_identity endpoint and the plain admin-widget loader works with NO page wiring: the widget probes this URL by itself, the bridge answers with the signed identity of the CURRENTLY logged-in admin, and every admin is matched to their own OpsIQ agent. Leave empty to keep the admin embed off."
}
Máy dò được gọi là trình duyệt

Cùng một kiểu, nên nó không thể mang tiêu đề riêng. Xác thực là phiên chạy nền tảng. Đặt nó AHD của cổng chỉ huy cầu, giữ nó tránh xa dữ liệu ghi âm, và không trả lại gì cho khách truy cập.

Nó trả lời một hình dạng cố định

{"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} — and {"success":false,"authenticated":false,"error":"..."} when nobody is signed in.

Không có bí mật lâu dài nào trong nguồn tin trang

Chỉ có tờ hiệu đã được ký, mới được bán.

Việc thực hiện toàn bộ điểm kết thúc cho Laravel,WordPress, WHMCSSymfeny và PHP, cộng với chi tiết khó-won Laravel và thứ tự bắn rắc rối, nằm trên trang thiết bị điều khiển của Adam.

Trình kết nối

Xuất bản:

Cách thông thường nhất để mất một buổi chiều là chỉnh sửa một liên kết dưới các ô điều khiển thị trường/, cài đặt lại nó, và không tìm thấy gì thay đổi. Cài đặt không đọc thư mục đó. Chúng lấy một tập lệnh đã ký từ danh mục thị trường. Xuất bản là chuỗi thay đổi của bạn vào đó ZIP.

Tại sao việc biên tập không làm gì

marketplace_connectors/<slug>/ is the SOURCE

Đó là nơi anh làm việc, không có gì được cài đặt từ đó.

Mục lục có chữ ký của ZIP

Một cài đặt tải về mà ZIP, xác nhận chữ ký và giải nén nó.

Trình xây dựng kết nối xuất bản ở nơi khác

It writes into /connectors/<slug>/ on this install. That is a local connector, not a marketplace release. The two paths do not overlap.

Dãy giải thoát

1
Bup phiên bản trong 2 tập tin

thiết lập.jsonvà kết nối.jsonSự phối hợp so sánh và thất bại nếu viên đạn, phiên bản hoặc khả năng không đồng ý.

2
Name

php tools/sync_connector_bridge_snippets.php --apply — only relevant if your package ships bridge/*.php, and mandatory if it does. Skipping it means the panel hands operators the previous bridge.

3
Ký lại mỗi gói

php công cụ/re sign_ all_connectp — tập tin bao gồm chữ ký đã được hhes, vì vậy bất kỳ sửa đổi nào cũng có hiệu lực. Ký kết thúc, sau mỗi tập tin là cuối.

4
Xuất khóa ký, rồi hạt giống

Người xem ký hiệu mỗi gói khi nó xây dựng ZIP, và chạy trong một bối cảnh mà không thể đọc được từ thiết lập — vì vậy nó phải đến từ môi trường.

5
Làm lại hồ sơ cầu, nếu bạn gửi một

Cài đặt lại kết nối cập nhật gói. Không để nó chạm vào bản sao đang nằm trong trang mạng của người điều khiển. Nói với họ, trên bảng điều khiển và trong bản ghi thay đổi.

Tất cả đều được giải thoát theo thứ tự.
# 2 — hold the panel copy identical to the shipped bridge
php tools/sync_connector_bridge_snippets.php --apply

# 3 — re-sign (do this last, after every file is final)
php tools/resign_all_connectors.php

# 4 — the seeder reads the signing key from the ENVIRONMENT only
export OPSIQ_CONNECTOR_SIGNING_KEY="$(php -r 'require "bootstrap/init.php"; echo opsiq_setting("connector_signing_key","");')"
php saas/scripts/maint/seed_marketplace_free.php --apply --only=<slug>

# verify before and after
php tools/verify_identity_contracts.php
php vendor/bin/phpunit tests/phpunit/Unit/Connectors
⚠️
Tại sao xuất khẩu không phải là tùy chọn: người ký tự tìm phím trong OPSIQ_CONCTOR_SGNING_SQP trước tiên và chức năng kết nối_ mật khẩu_ mật mã_key thiết lập thứ hai. Người xem chạy trên bẫy khởi động SaaS và công cụ/ ký hiệu_ dấu chấm phẩy .p khởi động không có gì cả, vì vậy trong cả hai thiết lập đều không tồn tại — không có biến số không có môi trường nào, và bạn nhận được « Không có chìa khóa » hay mọi gói được thông báo là có khả năng ký tên. Chỉ có công cụ / dấu_ ký_ dấu_BAR_ dấu .OpsIQvà có thể tự tìm ra chìa khóa.

Cái gì thực sự có thể vận chuyển

Chỉ tập tin các bao gồm chữ ký

Trình ZIP được xây dựng từ danh sách tập tin của người ký, vì vậy một tập tin bị lạc trong thư mục gói của bạn không được vận chuyển. Điều này có chủ tâm: một tập hồ sơ chưa ký dùng để đi cùng với khách hàng.

Phần mở rộng đã bao

Php,jsonJs,css, Md, Chớm,html, sh, svg, png, jpg, jpeg, gif, webp, ico, yml, khoai lang — đệ quy — bao gồm cầu/ và các thử nghiệm /.jsonChính nó bị loại trừ khỏi hậu cung và sau đó thêm vào ZIP để có thể xác minh.

Có báo cáo nào khác chưa được đóng gói

Người xem đặt tên cho mỗi tập tin còn lại. Hãy đọc danh sách đó, một tập tin bạn mong muốn sẽ được gửi đến có nghĩa là mở rộng sai địa điểm — không phải là một thành công im lặng.

Sửa chữa bất kỳ tập tin bị che đậy nào phá vỡ dấu ấn

Bao gồm cả một tập tin Markdown.

Cần thiết tập tin trong một gói không thể phân giải

connector.php

Phải trả lại một ví dụ về Mặt đối mặt kết nối.

settings.json

Hiển thị: sên, tên, phiên bản, danh sách phiên bản v. d., khả năng tương thích, kết nối_ ác khẩu_nhịu , thiết lập

connector_contract.json

Hợp đồng đọc được của máy, ốc sên, phiên bản và khả năng của nó phải giống hệt với thiết lập.json.

ĐỌC. md, DEVELOPER. mD, CHANGELOG. med

Cả ba đều được kiểm tra để tìm sự tồn tại và kích cỡ tối thiểu.

Một tập tin cho mỗi khả năng được công bố

Mỗi khả năng đặt tên tập tin là nó cần thiết — ContextProvider. p for text, IDProvinder. php for ID, Guest LookupProvier. phpp for khách_ lookup, v. v... — trừ khi kết nối thực hiện khả năng trực tiếp.

Không có gì giống như một sự ủy nhiệm.

Sự hình thành quét 3 tập tin đánh dấu cho giá trị hình dạng bí mật và phím riêng, và thất bại trong một cú hit.

Kiểm tra trước khi chuyển nó đi.

Bộ đồ tự chọn là cùng một bộ chạy cài đặt. kiểm tra danh sách các hợp đồng chính thống, thời gian chạy và các khả năng hiển thị đồng ý rằng mỗi khả năng đã tuyên bố có tập tin và phương pháp của nó, hợp đồng nhân dạng trong mọi tập tin đúc kết, kết nối cầu, xem xét khách hàng cho phép vệ sinh hành động độc đáo, an toàn hành động và xác nhận, và ký hiệu gói.

Chạy cả bốn trước mỗi lần phóng
# conformance for every marketplace package
php tools/test_marketplace_connector_conformance.php

# the identity-token contract, statically, with file:line on failure
php tools/verify_identity_contracts.php

# the connector unit suite
php vendor/bin/phpunit tests/phpunit/Unit/Connectors

# the release gate
php tools/release_gate_connectors.php
💡
Một lỗi được dự đoán và không phải là vấn đề: việc kiểm tra ký hiệu gói báo cáo một cảnh báo khi bạn vẫn còn đang sửa đổi. Nó làm rõ thời điểm bạn ký lại. Mỗi lỗi khác là thật.
Trình kết nối

Kết nối gói và tham chiếu vòng đời

Đây là hợp đồng cấp nguồn để xây dựng một kết nối mà OpsIQ có thể khám phá, cấu hình, xác thực, hiệu lực, thực hiện, thử nghiệm, ký hiệu và phân phối.

Giới thiệu nhà phát triển
Gói kết nốiMột gói kết nối có một danh sách cần thiết để thực hiện và thực hiện, với hành động tùy chọn, công thức, kiến thức, tài sản và siêu dữ liệu chữ ký.Gói kết nốideveloperMANIFESTv1KINH NGHIỆMĐã quản lýCÔNG VIỆCĐã co dãnQUAN ĐIỂM CÔNG VIỆC SỐNGconnector.phpKết nối & máy inCần thiếtsettings.jsonHiển thị và Thiết lậpCần thiếtactions.jsonĐịnh nghĩa hành độngTùy chọnsignature.jsonSiêu dữ liệu chữ ký góiBản phát hành1DECLAREHiển thị và khả năng2IMPLEMENTXe đạp cứu sinh và nhà cung cấp3ĐÃ XÁC NHẬNThử, ký, gói
Một gói kết nối có một danh sách cần thiết để thực hiện và thực hiện, với hành động tùy chọn, công thức, kiến thức, tài sản và siêu dữ liệu chữ ký.

Gói tối thiểu

connectors/example_platform/
├── connector.php          # connector implementation / entry point
├── settings.json          # manifest + configuration schema
├── actions.json           # optional action catalogue
├── README.md              # setup, scopes, webhooks and limits
├── workflow_recipes.json  # optional reusable recipes
├── knowledge.json         # optional provider knowledge
├── profile.json           # optional connector profile
├── src/                   # optional client/provider classes
├── assets/                # optional admin assets
└── signature.json         # signed release metadata

Giao kèo chứng thực

settings.json sử dụng phiên bản danh sách 1Bộ tạo tác vụ cần một kiểu sên, tên, phiên bản, hiển thị/ chuyển đổi, tương thích, mô tả và khả năng tương thích. opsiq_minopsiq_maxTình trạng phóng thích là một trong số sản xuất, beta, xem thử hay mẫu; khả năng thành thục dùng cấp L1–L6. Gói di sản có thể được thường xuyên với cảnh báo, nhưng một gói mới nên đi qua mà không cần cảnh báo.

Giao diện kết nối lõi

  • Nhận diện và sắp đặt: slug(), name(), description(), capabilities(), settingsSchema(), testConnection().
  • Xe đạp sống: onEnable()onDisable()Tắt máy phải không gây phá hủy; thanh lọc dữ liệu là một hoạt động có chủ tâm riêng biệt.
  • Trong giới hạn/ đồng nhất: handleWebhook(), poll(), backfill(). Poll xử lý công việc tăng cường; nhập lịch sử vào lại và phải được an toàn để lặp lại.
  • Hỗ trợ: pushReply() Nơi mà bục chấp nhận trả lời.
  • Hành động: registerActions() cung cấp các giao kèo hành động thực hiện được.
  • Bảo mật: securityCapabilities(), syncBlockedIp(), removeBlockedIp(), testSecuritySync().

Cơ sở trừu tượng cũng đưa ra các trang web được ghép ngược tùy chọn, danh sách khách hàng, kiểm tra email-acreation, đăng ký, quảng cáo quản lý/Dearer, hóa đơn/tiểu đồ/thư mục/vô định, thu hồi trả lời, thử lại HTTP, JSON- Truy cập bằng đường bộ, xếp hạng và trợ lý hậu cần.

Khả năng và sự xác thực

Những cái tên có khả năng được hỗ trợ bao gồm hành động, kích hoạt, ngữ cảnh, danh tính, doanh thu, hóa đơn, inbound_ticket, outbound_reply, sync_users, sync_departments, security_events, customer_import, security_native_block, promo_audience, promo_feed, email_mailbox, native_api, ai_brain_aware và ai_ticketsCông trình xây dựng cung cấp API Chìa khóa, người mang chìa khóa, cơ bản, HMAC, OAuth 2 Thông tin khách hàng, OAuth 2 Mã cho phép và mẫu tự chọn.

Xe đạp sống ghi danh

  1. Khám phá chất hàng và xác nhận bản kê khai.
  2. Cấu hình được lưu trong không gian làm việc; các bí mật được mã hóa.
  3. Kiểm tra kết nối chứng minh ủy nhiệm mà không cho phép kết nối.
  4. Bật gọi onEnable(), đồng bộ hoá định nghĩa hành động và có thể bắt đầu lại từ đầu.
  5. Việc thực hiện ô ô ô nhiễm/chúng tabok/conseseker luôn mang theo ngữ cảnh không gian làm việc.
  6. Tắt cuộc gọi onDisable() và dừng hoạt động mà không xóa dữ liệu nhập khẩu.
  7. Thanh trừng là một hoạt động riêng biệt.

Chính xác quy tắc

  • Dùng chìa khóa vùng làm việc/không gian riêng trong mọi việc đọc, ghi, khoá bộ nhớ tạm, chìa khóa tự động và tra cứu kiểu web.
  • Làm lại, ăn trộm và viết hành động là vô hạn. Ghi lại ID/sự kiện bên ngoài nơi mà nền tảng cung cấp.
  • Cho những hệ thống từ xa, sử dụng chúng API; không bao giờ giả sử các bảng cơ sở dữ liệu của họ tồn tại trong OpsIQ kết nối.
  • Không bao giờ tiết lộ bí mật, nhà cung cấp thô dấu vết hay sự tồn tại của một không gian làm việc khác.
  • Chỉ công bố khả năng của gói thực sự thực hiện. An actions.json Mục lục không làm cho việc sử dụng được cho đến khi bộ kết nối được cài đặt, bật, cấu hình và kết nối của nó là hợp lệ.

Thử ra và nhả

Chạy PHP lint, xác thực biểu diễn, thử nghiệm kết nối, thách thức kiểu mẫu hành động, thăm dò ký/đọc lại webhook, thẻ bài-không gian làm việc, thước đo lặp lại-lấp đầy, thăng bằng-tự động và thử thách thất bại/thử lại. Một gói thị trường sau đó nên được ký và xác nhận, bao gồm tài liệu cài đặt/quyền hạn/webhook, và nói ra trạng thái phát hành thật của nó. Gạch kết nắn và biểu hiện là tín hiệu có sẵn chính thức.

Trình kết nối

Công thức & trình lọc

Công thức từng bước một cho các thiết lập kết nối chung.

P- x- tô- ni- a
Công thức & nốiA Shopify công thức thiết lập như một danh sách kiểm tra: tạo ứng dụng, kính hiển thị, nhãn hiệu và thử nghiệm, cho phép kết nối webhook, đặt thứ tự kiểm tra.Công thức & nốiShopifySố đảo # 2 Shopify có móc câuTạo một ứng dụng tự chọn Shopify mandminPhạm vi cung cấp: Đọc_ thứ tự , đọc_ khách hàng...Dán miền cửa hàng + tín hiệu, nhấn vào thử raBật đồng bộ lưỡi cắm Mạng (tiểu lệnh tự động- sêster)Đặt thứ tự thử ra→xuất hiện ở Sales trong30s1STEP BY STEPCông thức dán2REAL PLATFORMSShopify · WHMCS · Stripe· GBP3KẾT QUẢThứ tự thử ra 30s
Mỗi công thức là một danh sách kiểm tra bạn theo dõi từ trên xuống dưới, ở đây, Shopify với các lệnh truy nã trực thời gian, được kiểm tra bằng lệnh kiểm tra.

Số đảo: Shopify với các móc cắm thời gian thực

Tình huống:
Mục tiêu: Kết nối Shopify có lệnh tự động đồng bộ và GDPR Tuân lệnh.
Làm sao bây giờ?

1. Create a custom app in Shopify admin (Settings > Apps > Develop apps). 2. Grant scopes: read_orders, read_customers, read_products, write_customers. 3. Copy the Admin API access token. 4. In OpsIQ Connectors > Shopify, enter store domain and token. 5. Click Test Connection. 6. Enable Webhook sync, OpsIQ registers order/customer webhooks automatically. 7. GDPR webhooks register automatically (data_request, customers/redact, shop/redact). 8. Verify: place a test order, check it appears in OpsIQ Sales within 30 seconds.

Số đảo: WHMCS Sự kết hợp

Tình huống:
Mục tiêu: Kết nối WHMCS Để AI có thể tìm kiếm khách hàng, dịch vụ, vé và hóa đơn.
Làm sao bây giờ?

1. In WHMCS admin, Setup > Staff Management > Manage API Credentials. Create a key. 2. In OpsIQ Connectors > WHMCS, enter URL, API identifier, and secret. 3. Click Test Connection. 4. Install the WHMCS module addon for ticket relay. 5. Verify: ask the admin AI "Find client [email protected]". WHMCS data should appear.

Số đảo:Stripethanh công cụ

Tình huống:
Mục tiêu: Theo dõiStripethanh toán và để Al tìm kiếm các giao dịch.
Làm sao bây giờ?

1. In Stripe Dashboard > Developers > API keys, create a restricted key (read: Customers, Charges, Invoices, Subscriptions). 2. In OpsIQ Connectors > Stripe, enter the restricted key. 3. Test Connection. 4. Add webhook endpoint in Stripe: copy the webhook URL shown on the connector's own settings page. It carries a per-connector token and looks like https://your-domain.com/api/connectors.php?slug=stripe&token=THE_TOKEN A URL without the token is rejected with "Missing slug or token". 5. Select events: charge.succeeded, invoice.paid, customer.subscription.updated. 6. Copy the webhook signing secret to OpsIQ. 7. Verify: make a test payment, check it in OpsIQ Sales.

Công cụ & dịch vụ: Google Business profile

Tình huống:
Mục tiêu: Kết nối GBP để quản lý, đăng ký và tìm hiểu.
Làm sao bây giờ?

1. Create a Google Cloud project, enable Business Profile API. 2. Create OAuth 2.0 credentials (Web application). 3. Set redirect URI: copy it from the connector's own settings page. Google and Microsoft connectors share one slug-less callback: https://your-domain.com/connectors.php?oauth=callback Everything else uses https://your-domain.com/connectors.php?slug=<slug>&oauth=callback OAuth redirect URIs must match EXACTLY, and a URI missing oauth=callback is read as a webhook and answered with "Missing slug or token". 4. In OpsIQ, enter Client ID and Client Secret. 5. Click Authorize, sign in, grant access. 6. Select your business location. 7. Verify: reviews, posts, and insights should appear.

Trình kết nối

Mở rộng CRM& Tình báo Nơi Mạng

OpsIQHệ thống con mở rộng. Một kết nối có thể cắm một khả năng mới vào CRM hay Tình báo Nơi Mạng không thay đổiOpsIQlõi, thông qua danh sách khả năng nền tảng (\OpsIQ\Platform\ Sự chấp nhận khả năng). Hãy công bố khả năng, thực hiện phương pháp nhỏ của nó, hãy gửi kết nối,OpsIQPhát hiện nó và chuyển nó vào UI, khách hàng360Thời gian và các dấu nhắc cài đặt.

Mở rộng CRM& SI
Khả năng nền tảngMột bộ kết nối trên các xe buýt có khả năng ăn trái (CRM, Site Intels, phân tích) được phát hiện bởi Cơ quan Kiểm Soát Khả năng Đồng Hành.Khả năng nền tảngMiền làm việcĐường kết nối của anh.Phát hành khả năngCRMLịch · Làm giàu thêm eign e· thanh toán e· mailThông minh định sẵn_danh sách cục bộ_· st thứ_dataPhân tích_Các phân tích mạng _· báo cáo & nuốtCapabilityRegistryPhát hiện nó & dây dẫn i + dòng thời gian1DECLAREKhả năng, không phải bản chỉnh sửa2PLUG INCRM· SI · Phân tích xe buýt3AUTO-WIREDUI, dòng thời gian, dấu nhắc
Một bộ kết nối phát hành khả năng (cendar, phong phú, dữ liệu cấp bậc, phân tích...) vàOpsIQTự động kết nối chúng vào CRM Và Máy tình báo Site, không có thay đổi cốt lõi.

Khả năng khai báo

Định nghĩa ( dàn xếp.json)

Thêm <domain>_capabilities Bảng, tốt nhất cho các kết nối không mã/ nhãn crm, site_intelligence.

Trong mã (cắt nối. php)

Thi hành crmCapabilities() / siCapabilities() Trả lại cùng một tờ giấy.

Công bố một nhà cung cấp lịch CRM ( dàn xếp.json)

Tình huống:
Mục tiêu: làm cho một máy kết nối lịch xuất hiện trong bảng chọn lọc CRM.
Làm sao bây giờ?

"crm_capabilities": [ { "type": "calendar", "label": "Calendar (Acme)", "actions": ["createEvent","listEvents","freeBusy"], "requires_auth": true } ]

Thông báo một nhà cung cấp tình báo trên đất (P.json)

Tình huống:
Mục tiêu: đưa dữ liệu địa phương vào hệ thống tình báo Site.
Làm sao bây giờ?

"site_intelligence_capabilities": [ { "type": "local_listing", "actions": ["listLocations","listReviews","getInsights"], "requires_auth": true } ]

Xe buýt có thể sử dụng và bề mặt phương pháp của họ

crm / lịch

createEvent($settings,$params) →{succes, event_id, html_link, meet_link}; listEvents; freeBusy. lái xe bởi . .OpsIQ\CRM\ChalendarBridge.

crm / rich

enrich($settings,$params) →Được rồi, được rồi.OpsIQ\CRM\ EnrichmentBridge (cũng chạy tự động trên công ty tạo khi có kết nối).

crm / e sign

sendForSignature($settings,$params) →Được rồi, được rồi.OpsIQ\CRM\EignBridge.

nơi_lổ địa chỉ / danh sách_ cục bộ

listLocations, listReviews, getInsightsCác tàu vận chuyển qua đường dây hồ sơ công ty Google.

_Sự phân tách địa chỉ Mạng/ st_data

keywordRanks($settings,$params) →Được rồi, được rồi.OpsIQ\ Tình báoite\ RankDataBridge. Tàu: liên kết SerpApi

phân tích / web_ than

report($settings,$params) (Tiếng đặc biệt/tiểu đơn) + ingest($settings,$events) Lái xe bởi\OpsIQ\Analytics\WebAlyicsBridge: Google Analytics (GA4 Dữ liệu kết nối API Đối với các báo cáo, giao thức đo lường cho nhập khẩu. phân tích là mở cho các kết nối như CRM + Tình báo Nơi Mạng analytics / analytics_capabilities).

thanh toán/ thanh toán_ provider

listPayments, customerPayments, createPaymentLink. lái xe bởi . .OpsIQ\ Chi trả\ Thanh toán Bridge. Hiển thị thanh toán của khách hàng CRM Dòng thời gian + gửi một liên kết thanh toán trong một thỏa thuận.StripeLiên kết chi trả, miền. payments / payments_capabilities.

Hộp thư / email_sync

listMessages + sendMessage. lái xe bởi . .OpsIQ\Mailbox\MalboxBridge. Một thư điện tử của khách hàng trên bộ xem 360 Dòng thời gian + gửi thư từ một giao dịch. Các con tàu: Gmail + Outlose/Microsoft 365 Liên kết, miền mailbox / mailbox_capabilities.

Đã chia sẻ OAuth ứng dụng + 1 chuyển tiếp

Tất cả các kết nối Google chia sẻ 1 ứng dụng thông qua\OpsIQ\OAuth\SharedGoogle App. set google_oauth_client_id/_secret Một lần và lịch sử, phân tích, hồ sơ kinh doanh + Gmail tất cả các công việc (các trường trên mỗi kết nối) đều bị ghi đè. URI, <site>/connectors.php?oauth=callback (không phải là một con ốc sên, bởi vì Google phơi bày không API để thêm URI vào ứng dụng; OpsIQ Thu hồi kết nối từ máy đã được ký OAuth state Đăng ký đơn URI Một lần và mỗi kết nối Google (hiện tại và tương lai) cho phép không có thêm thiết lập bàn điều khiển. Hãy trở lại. SharedGoogleApp::resolve(...)‘ Của ’ redirect_uri từ oauthParams(); không bao giờ khó mã hoá/slug. Microsoft Connections làm điều tương tự thông qua\OpsIQ\OAuth\SharedMicrosoft Appmicrosoft_oauth_*).

Nhập các nút được quản lý khả năng

Hạt Nhập Và rồi... Nhập khách Nút hiển thị chỉ cho các kết nối thực sự thực hiện chúng, phát hiện bằng cách phản ánh, vì vậy không có cờ để tuyên bố. backfill() hay backfillChunk() để giành được nút Nhập; ghi đè listCustomers() (rạp chí) để kiếm khách hàng nhập khẩu. AbstractConnector không được mở nút, nên UI không bao giờ đề nghị nhập khẩu một kết nối không thể thực hiện.

AI băng qua xe buýt

Đặc vụ CRM đề nghị và các cuộc họp sách không có tín hiệu thỏa thuận (\OpsIQ\CRM\ © năm 2006- 2007 của Hội nghị địa hạt→Lịch Bridge, và các tài khoản mới được gia tăng tự động, “AI điều hành vòng quay CRM, thực hiện qua các xe buýt kết nối.

Kiểm tra vé khách hàng (fetchTicket())

Hai phần, không có thay đổi lõi

Khi một khách truy cập vào một số vé trong cuộc trò chuyện khách hàng ("Tình trạng của T--000123?"), OpsIQ Giải quyết bằng hai dây. Tier1 đọc phần chia sẻ OpsIQ Cửa hàng vé, mọi kết nối inbound_ticket Những tấm gương của nó ở đó, vậy nên vé được đồng bộ chỉ hoạt động cho tất cả các kết nối với mã không trên mỗi kết nối. Tier2 là một sự phản bội trực tiếp cho vé phạt của OD mà không bao giờ được phản ánh: gọi từ chính xác fetchTicket() trên mỗi kết nối có khả năng thực hiện nó. duck-typed (bị phát hiện bởi method_exists()Kiểu như contextProviders()/audienceCatalog()), vậy chữ ký ConnectorInterface là không động đến và kết nối mà không cần (các nguồn email/chat tạo vé một cách bản xứ) đơn giản là loại bỏ nó.

⚠️
Sở hữu là bắt buộc và của anh phải thi hành. fetchTicket() Nhận được danh tính khách thăm VERID trong $ctx (client_id + client_emailCũng cùng một danh tính đã xác nhận mà khách hàng đã dùng chat AI. Giải quyết các ứng dụng khách từ danh tính đó và chỉ yêu cầu vé của khách hàng đó, sau đó kiểm tra lại quyền sở hữu của mình trên hồ sơ chi tiết. Hãy trở lại. null trên bất kỳ bỏ lỡ, không phù hợp hay lỗi, không bao giờ dữ liệu của khách hàng khác. null Thật là lịch sự khi nói "không thể tìm thấy cái vé đó".
kết nối.p, giao kèo lấy địa chỉ () (liên hệ: kết nối/whmcs và kết nối
<?php
// connector.php — OPTIONAL universal client-chat ticket resolver (Tier 2).
// Only add it if your platform keeps its OWN ticket store that may hold tickets
// not yet mirrored into OpsIQ. Return the normalised array below, or null.
//
// $ref      = ['mode' => 'id'|'tid', 'value' => string]  (from extract_ticket_ref)
// $ctx      = ['client_id' => int, 'client_email' => string]  (VERIFIED visitor)
// $settings = your connector settings
public function fetchTicket(array $ref, array $ctx, array $settings): ?array
{
    try {
        $email = trim((string)($ctx['client_email'] ?? ''));
        $cid   = (int)($ctx['client_id'] ?? 0);
        if ($cid <= 0 && $email === '') return null;            // no verified identity → refuse

        // 1) Resolve THIS visitor on your platform (by verified email/id).
        // 2) List ONLY their tickets and match $ref against the ticket number/id.
        // 3) Re-confirm ownership on the detail record before returning.
        //    On any miss/mismatch/error → return null (never leak).

        return [
            'tid'        => 'T-000123',     // the customer-facing reference
            'id'         => 123,            // your internal id
            'status'     => 'open',
            'subject'    => '…',
            'department' => 'Billing',     // '' if your platform has none
            'priority'   => 'high',
            'opened_at'  => '2026-06-29 10:00:00',
            'last_reply' => '2026-06-29 12:00:00',
            'message'    => 'opening message text',
            'replies'    => [               // oldest → newest; opening message may be first
                ['who' => 'You',   'date' => '…', 'message' => '…'],
                ['who' => 'Staff', 'date' => '…', 'message' => '…'],
            ],
        ];
    } catch (\Throwable $e) {
        error_log('[yourslug][fetchTicket] ' . $e->getMessage());
        return null;                                             // graceful degrade
    }
}

Cách mà nền tảng sử dụng nó

Khám phá

CapabilityRegistry::providers($domain,$type) Liệt kê nhà cung cấp có trạng thái/ thẩm tra (phụ thuộc hệ thống tập tin; chỉ DB cho cờ đã bật).

Vùng chọn

CapabilityRegistry::active($domain,$type) trả lại nhà cung cấp sẵn sàng đầu tiên với bộ nối và thiết lập đã nạp. Cầu gọi điều này thay vì các viên đạn có khả năng làm việc cứng.

Thông báo- đến- cài đặt

Khi tính năng cần một khả năng chưa kết nối, UI hiển thị một dấu chấm phẩy kết nối/Install, không bao giờ là mất kiểm soát.

Hướng dẫn đầy đủ

Xem connectors/PLATFORM_CONNECTORS.md (C CRM + Stee Intel) và connectors/CRM_CONNECTORS.md trong cái gói.

Trình kết nối

Tự hỏi xem lại & dịch vụ phục vụ dịch vụ dịch Vụ cá nhân (Xây dựng lại kết nối cho trò chuyện khách hàng)

Các khách hàng đã ký vào có thể hỏi thăm AI về tài khoản riêng của họ, "của tôi", "đã được hỗ trợ trả vé" và, nếu doanh nghiệp cho phép nó, yêu cầu hoàn trả lại. Tất cả đều được cung cấp bởi tuyên bố của bạn: không. OpsIQ Các thay đổi chính, không có nền tảng cứng. AI gọi tra cứu của bạn là công cụ bản xứ (không thể phát minh ra một), danh tính bị khóa ở bên cạnh máy chủ đã xác nhận, và kết quả được tự động cắt cho AI.

Thông báo cửa sổ của khách hàng

Trong actions.jsonMột hành động chỉ đọc được trở thành khách hàng gọi với tất cả 3 người: "scope":"client", "requires_confirmation":false, "is_destructive":falseDùng "scope":"both" Khi cùng một cách nhìn, đội của bạn trong Admin Al cũng nên gọi. admin, client, bothsystem (system Không thể tới AI —APIvà chỉ đường dẫn kiểu webk. Bất cứ điều gì khác bị từ chối hoàn toàn: việc hợp lệ hóa gói bị lỗi và hành động không được cài đặt. Không có gì writing Phạm vi — trợ lý ghi được phục vụ admin hành động đã được thiết lập.

Quy tắc nhận diện (ngu thích)

Tên tham số ID của bạn từ tập hợp chuẩn. Bị khóa vào ID số đã xác nhận: client_id, clientid, customer_id, user_id, userid, account_id.. bị khóa vào đó id như một chuỗi: client_identifier, customer_identifier, account_identifier. bị khóa vào email đã kiểm tra: email, client_email, customer_email, user_email. OpsIQ khoá và tự động điền vào nó từ khách hàng đã ký tên; AI không bao giờ nhìn thấy hay chọn danh tính. Một tên không chuẩn không đóng lại (được xác định, không bao giờ rò rỉ).

Điều gì phải duy trì sự quản lý của nhà tù

Bất cứ thứ gì không được kiểm tra bởi danh tính đó: lấy từng bare-id (D)order_id/ticket_id riêng), danh sách toàn cửa hàng, tìm kiếm văn bản miễn phí. Đó là những rò rỉ xuyên biên tập trên bất kỳ nền tảng nào. Giữ chúng lại. "scope":"admin".

Hình kết quả (dấu hiệu ngược)

Kết quả tìm kiếm được cắt tỉa cẩn thận trước khi chúng đạt AI: phím hình bí mật được thả, chuỗi dài và danh sách được bao bọc, các trường trống bị cắt giảm, và một bản đồ phẳng rộng hơn nắp chìa khóa giữ nó Phím giữ lời giải đáp trướcTiềncredit, balance, amount, total, due, paid), danh tính (email, *name, phone, company), trạng thái (status, active, expir*, renew*), ngày tháng, kế hoạch/ sản phẩm/ Dịch vụ/ phụ thuộc/ thứ tự/tải/tách_iổ tay, tiền tệ, tính và stats/summary/totalsTrước khi có bất kỳ chỗ ngồi nào còn lại đi đến các phím giá trị nhỏ nhất. hướng dẫn thực tế: nêu tên các lĩnh vực của bạn với từ vựng chuẩn đó và trả lời các lĩnh vực mà trả lời câu hỏi của khách hàng thay vì một thô100Một lĩnh vực được đặt tên bên ngoài các từ vựng cạnh tranh cho những ghế còn lại và có thể được cắt giảm từ các kho hàng rất rộng.

Gỡ bỏ * * kết nối cung cấp gì

Hai ca phẫu thuật thô, không có chính sách:1) Đọc được mã hóa thanh công cụ theo danh tính và tham chiếu giao dịch (của bạn API phải và bộ lọc), e.g. whmcs_get_transactions; (2) Hành động hoàn trả lại (scope:"admin", requires_confirmation:true, is_destructive:trueKhông bao giờ được khách hàng mời. whmcs_refund_orderCông việc chọn cả hai chìa khóa trong Thiết lập→Khách hàng trò chuyện;OpsIQThay đổi kích thước của máy phục vụ bên trả tiền, áp dụng lại hộp chính sách của doanh nghiệp (một gắn kết nắp, cửa sổ lứa tuổi, giới hạn hàng tháng), vấn đề bên trong hộp, và tập tin một vé xem xét cho mọi thứ khác.

Không mã hoá

Trình biên tập hành động của Người xây dựng hệ thống có cùng một điều khiển: đặt "Ai có thể sử dụng nó" để ký vào khách hàng, để lại cả hai hộp kiểm tra lẫn tên thông thường.

Thực hiện tham khảo

Mục nhập "Customer tự động làm việc" trong connectors/whmcs/actions.json, woocommerce/actions.json, oscommerce/actions.json; toàn bộ hợp đồng connectors/README.md §8.1–8.2 và ConnectorInterface::registerActions().

Trình kết nối

Xem xét khách — hãy để cho du khách lần theo một cuộc hẹn, lô hàng hoặc trật tự mà không có ký tên (tiếng cười)

Khách sạn, người đưa thư và nhiều cơ sở thương mại phục vụ khách hàng đang tổ chức một cuộc tham khảo nhưng không đăng nhập: khách hàng có xác nhận đặt chỗ, một người nhận với số hiệu theo dõi. guest_lookup Khả năng (máy chủ giao thông, chế độ: tạo) cho phép bộ kết nối phục vụ khách truy cập của khách truy vấn trên hệ thống AI — khôngOpsIQCác thay đổi cốt lõi, không có nền tảng cứng nhắc.OpsIQBắt buộc công tắc, bộ điều khiển và đồng phục từ chối.

Người mẫu tín nhiệm

Tài liệu tham khảo + chứng minh, không bao giờ nhận dạng

Khách truy cập cung cấp tài liệu tham khảo (được so sánh bởi các tuyên bố trong regex) cộng với bằng chứng bạn chọn — thông thường email trên đĩa. hành động lấy của bạn lấy lại kỷ lục SER-SIDE bằng cách tham khảo;OpsIQNhà cung cấp tạo của 'So sánh bằng chứng chống lại kỷ lục FETCHD. đầu vào của khách truy cập không bao giờ được tin tưởng, và không có danh tính xác thực được tạo: các kết quả cho phép khách truy vấn để một trong các lĩnh vực được cho phép đăng nhập, không có gì khác.

Từ chối đồng bộ (không có lời bói toán)

Không tìm thấy và so sánh bằng chứng tạo ra một câu trả lời giống hệt nhau. AI được chỉ thị rõ ràng là không bao giờ xác nhận xem một tài liệu tham khảo có tồn tại hay không và chưa bao giờ phát minh ra chi tiết ghi âm. Những nỗ lực được giới hạn theo tỷ lệ trên mỗi cuộc trò chuyện +IPbằng lõi trước khi kết nối của bạn được tham khảo ý kiến.

2 lần tối ưu, cả hai mặc định off

Không có gì phục vụ khách cho đến khi kinh doanh hiệu lực công tắc lẫn nhau: kiểm soát toàn bộ không gian làm việc trong Thiết lập→Bảo mật→"Guest tra cứu kỷ lục trong trò chuyện với khách hàng" (tiểu thức mật khẩu và luôn xác nhận mật khẩu, ngay cả khi tùy chọn bước lên là tắt), và kết nối của riêng bạn guest_lookup_enabled thiết lập bật lên. Cài đặt hay hiệu lực chỉ kết nối thôi thì không bao giờ mở bề mặt khách.

Bề mặt khách mời tận tâm

Các nhà cung cấp tạo ra đăng ký trên các guest Bề mặt văn cảnh — tách rời cấu trúc admincustomerCác nhà cung cấp ngữ cảnh tồn tại không bao giờ được tham khảo ý kiến cho khách truy cập nặc danh, và nhà cung ứng khách khách không bao giờ tham khảo đối với những người đã ký tên. ctx nó nhận được mang thông điệp chat, chỉ là ID và khách truy vấn xác nhận (không xác nhận) email trước khi kết quả — không có tính cách nhận dạng cá nhân.

Công bố trong người xây dựng

1
Định nghĩa hành động đi

Theo bước hành động, thêm một hành động chỉ đọc mà trả lại 1 kỷ lục bằng cách tham khảo (v. g. GET /bookings/{booking_number}và vẽ bản đồ các trường đáp ứng với bí danh: trạng thái, sự xuất hiện, khởi hành, phòng_kiểu, thư điện tử...

2
Đánh dấu « Tìm kiếm thứ nhất »

Khi có khả năng, hãy bật guest_lookup. Một bảng đã đóng xuất hiện: chọn hành động lấy, tên tham số tham số, cung cấp mẫu tham chiếu (một cơ quan regex như \bBK-[0-9]{4,10}\b), tên mục ghi (được đặt) và chọn chứng cớ — email trên đĩa (được chọn) hoặc không có (chỉ tham khảo thôi, để theo dõi hệ thống gửi trạng thái).

3
Cho phép sử dụng các trường nhìn thấy

Đánh dấu các trường một khách có thể xem. Mọi thứ khác là DROPPD — không bao giờ được viết lại. Người xây dựng từ chối trường hình PII (mail, điện thoại, địa chỉ, trả tiền...) trong danh sách cho phép, và bộ khung tùy chỉnh tự động lại tương tự trước khi xuất bản. Ghi chú rằng thiết lập thời gian bao gồm biểu đồ và ký hiệu, chạy dãy thích hợp trước khi bạn lên tàu. Trường chứng minh bản thân mình không bao giờ hiển thị.

4
Xuất bản và bật

Người thợ phát ra GuestLookupProvider.php — chính sách thực hiện, giống hệt nhau cho mỗi gói tạo ra — và thêm guest_lookup_enabled bật/tắt thiết lập kết nối của bạn. Trang bị kinh doanh hai công tắc và chat AI bắt đầu tìm kiếm khi khách truy cập yêu cầu kiểu đĩa hát của bạn

Quy tắc hợp tác

Chỉ trường hình trạng thái

Hãy nghĩ đến "điều gì sẽ được in trên trang mạng theo dõi công cộng": trạng thái, ngày tháng, phòng hoặc hạng mục dịch vụ. Tên, chi tiết liên lạc, địa chỉ đường phố, dữ liệu thanh toán và ghi chú tự do không có chỗ trong một cuộc trò chuyện vô danh — cả hai đều từ chối.

AI chỉ trả lời từ khu nhà

Nhà cung cấp tạo kết thúc kết quả của nó với chỉ dẫn để trả lời từ các trường liệt kê và để cung cấp một vé cho bất cứ điều gì khác. Chi tiết không phải trong danh sách cho phép là "không có trong chat" — bằng thiết kế.

Tiếp tục theo dõi

Nhà cung cấp lấy lại tham chiếu từ các tin nhắn gần đây của người truy cập trong cùng một cuộc trò chuyện, vì vậy "và khi nào là kiểm tra?" hoạt động mà không cần nhập lại tham khảo. Thư điện tử tham chiết và chứng minh được ghi nhớ trên chuỗi nói chuyện như CANDIDATES, do đó những người tiếp theo không hỏi lại. Chúng chỉ là ứng cử viên: mỗi lượt vẫn lấy lại ghi chú bên máy chủ và so sánh lại bằng chứng trước khi giải phóng một trường duy nhất.

Các gói có quyền hạn

Một gói hàng chợ có thể tự vận chuyển GuestLookupProvider.php implementing ContextProviderInterfacesurfaces(): ['guest']. theo đúng hợp đồng tạo ra mẫu - lấy bằng cách tham khảo, khớp với máy chủ, từ chối đồng phục, cho phép- duy nhất xuất - và tuyên bố guest_lookup in capabilities.. sự cấu tạo xác minh bề mặt khách và quét danh sách cho phép PII.

💡
Các chương trình tìm kiếm khách mời chỉ được đọc trong bối cảnh của trò chuyện AI. Họ không bao giờ thực hiện hành động, không tạo ra danh tính, và không bao giờ mở khóa đường dẫn hành động của khách hàng ở trên -- con đường đó vẫn yêu cầu một khách hàng đã ký tên.
Trình kết nối

Khán giả xúc động đang nhắm mục tiêu (promo_autic)

Hãy để cho phòng thu Promotion vận động tranh cử bởi khách hàng sống và tình trạng hóa đơn từ nền tảng của bạn: "đã có một hóa đơn chưa thanh toán", "chờ đợi lệnh", "bị hủy bỏ." Bất kỳ kết nối (trước khi cài đặt, thị trường, hoặc một trong những bạn xây dựng bản thân) tham gia bằng hai phương pháp nhỏ. OpsIQ Các thay đổi chính, không có nền tảng cứng: kết nối của bạn xuất hiện như một nền tảng trong thanh mục tiêu studio với sự giảm dần các dữ liệu riêng của nó, và một số kết nối có thể được kích hoạt bên cạnh nhau.

Trình nghe nhạc Promo
Mục tiêu của khán giả xúc độngMột danh tính đã được xác nhận được truyền tới một cuộc gọi kết nối của khán giả Flags tạo ra các sự kiện mà điều khiển một quy tắc mục tiêu, với một ghi chú bị lỗi.Mục tiêu của khán giả xúc độngMiền làm việcĐăng nhậpXác nhận danh tínhKhán giảFlags ()kết nốiSỰ THẬTunpaid_invoices = 2QUY ĐỊNHchưa thanh toán_ hóa đơn 1Hiện ảnhLỗi đóng: chưa rõ ứng dụng khách hay lỗi nào→Chiến dịch vẫn còn ẩn danh.1TWO METHODSTrình nghe nhạc + Cờ2LIVE STATEKhông trả lương, chờ đợi, địa vị3FAIL-SAFEKhông bao giờ được cho người xấu biết
Máy kết nối trả lời các chi phiếu trực tiếp cho khách truy cập; mục tiêu phòng thu trên họ, và không đóng cửa để một dự luật không bao giờ đến được người sai.

Nó hoạt động thế nào?

1
Hãy công bố sự thật của bạn

Trình đọc tập tin cập nhật cơ sở dữ liệu () trên lớp học kết nối của bạn. Nó trả về một nhãn và danh sách các phím mà nền tảng của bạn có thể trả lời. Mỗi phím xuất hiện trong studio thả xuống dưới tên nền tảng.

2
Đáp ứng cho một khách hàng

Implement audienceFlags(array $identity). OpsIQ calls it at delivery time with the VERIFIED logged-in visitor identity (from the widget identity token, the same identity the client chat AI uses). Return a flat key => value map.

3
Hoàn tất

Bật trình kết nối. Thẻ Promotion Studio Targeting tăng lên một phần "Client & Billing" liệt kê nền tảng của bạn; admins xây dựng các quy tắc như "không thanh toán" > = 1"; mọi sự kiện cũng trở thành một biến số cá nhân như {unpaid_invoices}.

Kết nối. p, hợp đồng giữa các phiên bản hoàn chỉnh
public function audienceCatalog(): array
{
    return ['label' => 'My Billing Platform', 'keys' => [
        ['key' => 'unpaid_invoices', 'label' => 'Unpaid invoices (count)', 'type' => 'number'],
        ['key' => 'pending_orders',  'label' => 'Pending orders (count)',  'type' => 'number'],
        ['key' => 'client_status',   'label' => 'Client status',           'type' => 'text'],
    ]];
}

public function audienceFlags(array $identity): array
{
    // $identity = verified token payload: ['email' => ..., 'id' => ..., 'name' => ...]
    $email = strtolower(trim((string)($identity['email'] ?? '')));
    if ($email === '') return [];
    $client = $this->api('GetClient', ['email' => $email]); // your platform call
    if (!$client) return []; // unknown client -> return [] (fails CLOSED)
    return [
        'unpaid_invoices' => (int)$client['unpaid_count'],
        'pending_orders'  => (int)$client['pending_orders'],
        'client_status'   => (string)$client['status'],
    ];
}

Quy tắc hợp tác

Quảng cáo khả năng

Thêm 'promo_audience' tới nhà hàng của bạn capabilities() Các trang web như vậy các nền tảng và thị trường liệt kê nó như là khán giả-có thể (trích dẫn cũng hoạt động từ phương pháp hiện diện, nhưng tuyên bố nó là tín hiệu sạch.) connectors/whmcs Kết nối là toàn bộ tham chiếu thực hiện.

Tên phím

Chữ thường, 2-60 Các ký tự, tương ứng ^ [a-z0-9_]+$. Kiểu: số, văn bản, bool. Chưa công bố các phím chưa được trả lại bởi khán giảFlag() vẫn có thể sử dụng theo quy tắc, nhưng tuyên bố mọi thứ bạn ủng hộ để Adam có thể thấy nó.

Xác nhận danh tính

The $identity array comes from the signed widget identity token issued by the customer site at login, never from client-supplied fields. If your platform cannot resolve the identity, return an empty array.

& Luôn luôn

Bất kỳ lỗi nào (API Một quy tắc mà sự thật còn thiếu làm cho chiến dịch này không xuất hiện. OpsIQ Cũng áp đặt điều này trong luật trùng khớp.

Hiệu suất

Khán giả Phiên tòa gọi hầu hết một lần cho mỗi ô xem trên trang, và chỉ khi một chiến dịch được công bố sử dụng các quy tắc của nền tảng. 1-2 API cuộc gọi; OpsIQ Ghi nhớ trong yêu cầu.

Người điều hành được cung cấp miễn phí

Quản trị kết hợp phím của bạn với =,!=, >, >=, <, < =, chứa, đã đặt, là trống, bạn chỉ cung cấp giá trị.

Những vật trưng bày cá nhân

Mỗi sự kiện nhân đôi như một biến số trong chiến dịch sao chép: {unpaid_invoices}, {client_status}, cộng với các phòng xây dựng {first_name} và {client_email}.. Giá trị được giữ kín trước khi vẽ.

Không mã hoá các liên kết thị trường

Sự kiện tự động

Độ phân giải (JSON-Chỉ có) kết nối thị trường nhận được promo_autic cho tự do: nếu kết nối của bạn tuyên bố khách hàng/người mua, hóa đơn, mệnh lệnh hoặc đăng ký tài nguyên, OpsIQ Lấy danh sách khách_ đến bởi một dịch vụ khác, không thanh toán_ hóa đơn , số tiền_ due, chờ_ dòng lệnh, hoạt động_ phục vụ và đăng ký_Status từ các hành động tìm kiếm hiện có. Không có mã số nào.

Danh mục riêng (đặt khung.json)

Thêm một đối tượng "các khả năng" (của tôi) vào đó có thể kiểm soát chính xác những sự kiện nào và nhãn: [{" open_carts", " labels" (hàng hóa) xuất hiện trong các tập tin thả xuống.

Thử ra nhà cung cấp

1
Bật bộ kết nối

Kết nối > kết nối > Bật. Sau đó mở thanh mục tiêu của chiến dịch nào. Nền tảng của bạn phải xuất hiện dưới « Tính năng & hoá đơn (các liên kết).

2
Hãy xây dựng một quy tắc

Thêm: Nền tảng · a key · >= e· 1 Và đặt "Chỉ khách hàng bị lừa" để lưu và xuất bản.

3
Kiểm tra cả hai hướng

Đăng nhập vào nền tảng của bạn với tư cách là một khách hàng thích hợp với quy tắc (dân chủ phải hiển thị) và như một người không (công bố phải ẩn). Ghi lưu các vị khách không bao giờ khớp với các quy tắc đăng nhập.

Khởi động chiến dịch từ bộ luật của chính bạn (thường là kích hoạt)

Tại sao

Bên cạnh các kích hoạt có sẵn (tiếng máy, cuộn, thoát ra, bấm, xem trang, / đăng nhập vé), bạn có thể sa thải một chiến dịch từ bất cứ nơi nào trong trang web của bạn hoặc kết nối trước cửa hàng, sau khi một bước kiểm tra thành công, khi một chiếc xe đẩy bị bỏ hoang, khi bạn thay đổi tuyến đường SPA, vv.

Làm thế nào

Đặt chiến dịch gây ra Tự chọn với tên sự kiện (v. d. checkout_failed), sau đó gọi toàn cầu móc từ trang của bạn:

nơi Mạng/ kết nối tới máy chủ Nhật/ Hàn
// Any campaign whose Custom trigger event matches will be evaluated
// (it still respects targeting, frequency caps and audience rules).
window.OpsIQPromo && window.OpsIQPromo.fire('checkout_failed');
💡
Thực hiện một sự kiện không bao giờ vượt quá tầm ngắm hoặc tần số, nhưng chỉ giải phóng “khi nào thì hệ thống này được thông qua, thì chiến dịch vẫn phải thông qua mọi quy tắc (geo, khán giả, đồng ý, đội trưởng) trước khi nó được trình bày.
Hướng dẫn đầy đủ như thế nào để sử dụng ( thiết kế, khối, phân tích, A/B, xuất bản) sống trong Trung tâm trợ giúp bổ trợ bên dưới Tấn công→Phòng thu PromotionKhả năng này được phát hiện tự động từ bất kỳ kết nối EnableD nào trong các hệ thống kết nối/ hoặc thị trường . Không có gì để đăng ký.
Trình kết nối

Khả năng kết nối khảo sát ( biện pháp kết nối 2.2)

Hạt survey Khả năng cho phép bất kỳ nền tảng cung cấp cung cấp chứng minh danh tính khách hàng, sự kiện khán giả, biến an toàn và nhận ứng viên đến Phòng nghiên cứu. promo_audience và không cung cấp một kết nối chủ sở hữu của khảo sát, phản ứng, phân tích hoặc gửi email.

💡
Trạng thái thay đổi. Tác quyền là hoàn tất và có ích ngày hôm nay: Hợp đồng kết nối 2.2, SurveyConnectorInterface, bảng công cụ xây dựng tận tụy, tạo ra SurveyProvider.phpTất cả các tàu siêu dữ liệu và sự cô lập tùy chọn. SurveyConnectorRegistry được thực hiện và kiểm tra, nhưng không có khảo sát thời gian chạy gọi nó, do đó, sức khỏe nhà cung cấp không xuất hiện trong quảng cáo UI và không có gói kết nối đã xuất bản tuyên bố khả năng.CRM Sản xuất vật chất vượt quá và bản đồ nhà cung cấp vận chuyển đầu tiên vẫn còn các giai đoạn riêng biệt. xây dựng chống lại hợp đồng này ngay bây giờ; mong đợi thời gian chạy sẽ bắt đầu tiêu thụ nó sau đó phát hành.

Người cung cấp trách nhiệm

Số liệu và danh mục khán giả

Thông báo các sự kiện chính xác và các giá trị giải quyết chỉ cho một đối tượng không gian máy chủ được bảo mật, đã đóng kết nối với nhau. Sự kiện điển hình bao gồm thứ tự « đếm », thứ tự_ cuối cùng_ ttatus, bị hủy bỏ_ thu_ mid_ ra, khách hàng_ tạo_ ra_at , hoạt động_ rescription_ tag_ due_ imice_ dick_tiet_ contet_ Count.

Mục lục và giá trị thay đổi

Tuyên bố khách hàng, tài khoản, đơn đặt hàng, đăng ký và hỗ trợ biến với kiểu, nhạy cảm và ngữ cảnh được phép. Bản sao khảo sát yêu cầu fallbacks và output- context escaping.

Ghi đè người dùng

Ứng cử viên có tùy chọn CRM Vượt ra ngoài với ID bên ngoài ổn định, trang bị ràng buộc, xác định con trỏ và siêu dữ liệu liên quan đến sự đồng ý.

Nhận diện

Chấp nhận thông tin nhận căn cước từ cổng tìm kiếm sau khi ký hiệu, ngoại lệ, mục đích, kết nối và xác thực vùng làm việc. email, ID, thẻ hay hóa đơn không bao giờ có thẩm quyền.

Sức khỏe

Chương trình khảo sát ConnationsRegisry được thiết kế để báo cáo tương thích, bị chặn và không có nhà cung cấp mà không phơi bày thiết lập, đường đi, danh tính thô hoặc thông điệp ngoại lệ, và một nhà cung ứng bị chặn không bao giờ gọi được. Bề mặt báo cáo chưa được phơi bày trong quảng cáo nền UI: ngày nay một nhà Cung cấp bị chặn đơn giản là inertt.

Những quy tắc bị thất bại

Các phím chưa được công bố, kiểu sai, giá trị quá cỡ, đối tượng không khớp, kết nối và danh tính không được chấp nhận. Một quy tắc mục đích cần thiết một thực tế không khớp. Trang trí bị chặn và kiểm toán. Giá trị cảm ứng không bao giờ xuất hiện trong xem thử hay bản ghi công cộng.

Người xây giải thoát cổng

Hợp đồng 2.2 Tàu con thoi các mục đăng nhập có khả năng, giao diện, bảng điều khiển bản đồ khảo sát, tạo ra SurveyProvider.phpPhiên bản khả năng, readyME/develover fixtures và workance fixation. Tra đổi, helpdesk, SaaS Bridge và hồ sơ PHP cục bộ bao gồm nó; Standard API Kết nối được chọn. Cổng tĩnh từ chối một nhà cung cấp khảo sát gọi là không gian tên, bảng hoặc khả năng.

💡
Bản sao từ Promotion là chỉ nhập khẩu: Xây dựng có thể dịch các bản đồ Promotion một lần, tiết kiệm được bản sao và bản ghi chép đầy đủ. xoá hoặc thay đổi bản đồ cảm biến không phải thay đổi ứng xử khảo sát.
Trình kết nối

Khả năng phản hồi trả lời 2.2)

Hạt reply_feedback Khả năng phản ánh tỷ lệ đánh giá hàng đầu của một nền tảng OpsIQ Một ngôi sao một khách hàng cung cấp cho một câu trả lời nhân viên bên trong WHMCS Khu vực khách hàng hạ cánh trên câu trả lời tương tự trong OpsIQ sợi chỉ đơn giản, cùng với chip, tín dụng tác vụ, mục nhập trang phản hồi và đội & toán tính toán như một đánh giá được đưa ra OpsIQ Một cái vé mở cổng, một con chip, một đường ống; cái kết nối chỉ dịch.

Người viết đường

Có chính xác hai lối vào và một sự thật. OpsIQ Vé cổng viết một cách tự nhiên. Các vé máy tính chạy qua các kết nối, và lõi hạ cánh xuống mỗi sự kiện thông qua ReplyFeedback::recordMirrored(): cùng cột, quy tắc chỉ nhân viên, một chiều-nhân vật-tiểu-tì mới nhất, tem không gian làm việc và tiếng nói của người tùy biến chỉ mục các cổng sử dụng. Một kết nối không bao giờ viết hàng phản hồi.

Đang cấu hình (bốn tập tin, rồi ký lại)

1
connector_contract.json

Thêm mục nhập có khả năng.rep_ fedback: phiên bản 1.0..các câu trả lời được trả lời của FeedConnations Interface, các phương pháp trả lờiFeedbackCatalog và pullReplyFedback, ngụ ý về mục nhập vào .tiet.

2
settings.json

Thêm trả lời_ ngược vào danh sách khả năng. Đây là những gì phát hiện kết nối.

3
spec.json

Phát âm trả lời_ ngược. modes (tách và/hoặc webok) và tỷ lệ đánh giá của nền tảng. Đây là những gì cổng phù hợp đọc.

4
Hạng thời gian chạy

Hoàn thiện giao diện, danh sách trả lời_ ngược lại khả năng (), rồi ký lại gói.

Người cung cấp trách nhiệm

Catalogue

Chế độ khai báo, tỷ lệ đánh giá của nền tảng (tự chọn bình thường cho người bản xứ 1-5.) và bất cứ biểu hiện phản ứng nào.json.

& Ngắt tại câu kế

Kéo replyFedback events _BAR_là: _DBIS, nền tảng ID, đánh giá, phản ứng/ cấu hình tùy chọn, gửi thời gian và sự kiện_d ổn định. Nó đọc và dịch. Nó không bao giờ viết.

Bất lực

sự kiện_d là ổn định theo mỗi tiểu bang thông tin phản hồi, vì vậy một sự kiện được lặp lại là không có kết quả và đánh giá thay đổi ghi đè (tiểu đồ thắng cuộc, như cổng).

Sửa con trỏ

Trang bị giới hạn và xác định; con chạy không tiến tới kết thúc.

Bảo vệ cá heo

Không có cấu hình, hãy trả lại một trang rỗng thay vì ném. Các bộ điều tra sự tác động không đồng bộ với các đối số trống.

Độ phân giải đóng thất bại

Bộ lõi giải quyết mỗi sự kiện để trả lời cục bộ bằng cách đánh dấu gương đã đóng tem (<slug>:<ticket>:reply:<reply>Một sự kiện không thể giải quyết được sẽ bị bỏ qua, không bao giờ đoán được; phản hồi chỉ gắn vào các nhân viên trả lời; và tín dụng tác vụ luôn đến từ tác giả trả lời có sẵn. Việc đánh giá viết không bao giờ thay đổi quyền tác giả. Đó là lý do tại sao khả năng đòi hỏi khả năng này đòi hỏi người dùng phải có khả năng ghi lại. inbound_ticket hay ticket_mirror.

Ví dụ làm việc: WHMCS

WHMCS cửa hàng khách hàng-rea per-ply đánh giá các ngôi sao trong tblticketreplies.ratingThe... WHMCS kết nối tuyên bố chế độ thăm dò với một 1-5 Kích thước, tàu a ticket_reply_ratings Chuyển lệnh trong tập tin cầu của nó, và dịch mỗi hàng thành một sự kiện có ID phù hợp với whmcs:<ticket>:reply:<reply> Đánh dấu gương vé của nó đã đóng dấu sau khi nâng cấp bộ kết nối, sao chép lại tập tin cầu WHMCS máy phục vụ vì vậy lệnh mới tồn tại ở đó.

💡
Hợp đồng phát triển đầy đủ với giao diện, hình sự kiện, quy tắc làm bình thường và danh sách các phép tính: doc/contracts/TICKET_REPLY_FEEDBACK_CAPABILITY.md trong OpsIQ gói. Chấp nhận: đánh giá trả lời bên trong nền tảng, đợi cuộc thăm dò hàng giờ, và cùng trả lời trong OpsIQ hiển thị con chip, các trang Reviback liệt kê nó, và một sự kiện được lặp lại không thay đổi gì.
Trình kết nối

Khả năng trộn bảng chọn (giao diện 2.4)

Hạt ticket_merge Khả năng tạo ra một tấm vé hợp nhất OpsIQ Một sự kết hợp trên mỗi nền tảng của vé đã được kết nối. bắt đầu với mỗi lời nhắn mở của vé nhập thay vì vé máy tính chỉ đóng cửa.

Tại sao nó tồn tại

Name OpsIQ Di chuyển mọi thông điệp của các vé đã nhập vào vé giữ và gỡ bỏ các vé nhập khẩu trước khi hợp đồng 2.4 chỉ một kết nối nghe được ticket.deleted cho mỗi vé nhập. WHMCS đóng cái vé đó lại WHMCS Vé không bao giờ nhận được những gì khách hàng viết đầu tiên: đối tượng cho thấy [MERGED] và nội dung bị mất.

Nhân nào gửi

vé. mered (theo mỗi sự nhập)

ticket_id, ticket_number, subject and external_ref of the KEPT ticket; native_table (opsiq_tickets); site_key; sources, the merged tickets oldest first, each with ticket_id, ticket_number, subject, external_ref, client_name, client_email, created_at and messages [{reply_id, author_type, author_name, created_at, body}]; merged_by; merged_at. Messages are the customer-visible conversation, captured before the move. Internal notes are never included.

vé. đã xóa ( vé nhập)

Vẫn còn cháy, bây giờ với merged_into {ticket_id, ticket_number, external_refCái lõi không đưa nó cho một dây nối tuyên bố ticket_merge; những người tiêu dùng khác có thể phân biệt sự trộn lẫn từ một loại.

Các móc cắm bị chặn

Vé.mered là một sự kiện có thể giải quyết được. Một điểm kết thúc của SaaS webhook đã đăng ký để có vé. bị đánh dấu cũng nhận vé.merled, do đó một sự tích hợp được xây dựng trước khi 2.4 Nghe thấy tiếng hòa nhập.

Những gì bộ kết nối của bạn làm

Khai báo

List ticket_merge in capabilities() and settings.json, and implement TicketMergeConnectorInterface::mergeTickets(array $merge, array $settings). Required on Contract 2.4 for any package that declares ticket_mirror or handles ticket.deleted; conformance fails it otherwise.

Nhập bản địa khi bạn có thể

When the kept ticket and a merged ticket both have a copy on your platform (TicketMergeContract::twins() resolves them from external_ref), call the platform's own merge.

Nếu không hãy thêm một lời nhắn riêng tư

A merged ticket with no copy on your platform: add TicketMergeContract::transcript() to the kept platform ticket as a PRIVATE note. Never a public reply, which would email the customer their own old messages.

Báo cáo những gì không hợp nhất

Trả về{ok, chế độ, nhập, ghi chú, không được gõ, lỗi}. Mỗi bản sao đã nhập không thể nhập vào được, và lõi áp dụng cách xử lý thông thường ( gần hay xoá bằng mirror_deletesĐể chính xác những điều này. Chế độ trở lại không được hỗ trợ chỉ khi nền tảng không có sự trộn lẫn và không có thông báo riêng. Một việc vận chuyển hay thất bại khiếm thính là OK= sai với lý do đó; nó được ghi chép trong Chẩn đoán.

Hãy tôn trọng những thay đổi của bạn

Cũng cùng thiết lập gương cổng mà cánh cổng kia phản chiếu lại các cổng đang hợp nhất.

Hợp nhất bắt đầu trên nền tảng của bạn

Resolve the platform ids and call TicketMergeContract::applyInbound(['<prefix>'], $keptId, $mergedIds). OpsIQ merges its copies with _origin=mirror, so nothing is pushed back to you.

Những cuộc hành hình được vận chuyển

WHMCS

Bộ nhớ trộn (tietid = vé giữ, ghép bộ lọc = vé nhập) khi cả hai cùng ở trong WHMCS; Thêm Định dạng với các bản ghi khác OpsIQ sao chép khi nhân viên nhập vào WHMCS.

Zendesk

PST /api/v2/tickets/{id}/merge.json với bình luận hợp nhất tư nhân (đến năm vé một cuộc gọi), cộng với bản ghi chú như một bình luận cá nhân trên vé giữ, bởi vì Zendesk Đóng các vé đã nhập mà không di chuyển bình luận.

OpsIQ Cầu SaaS

PST /v1/tickets/{id}/merge có source_idsĐiều này khiến cánh cổng trả lời và đính kèm; một câu trả lời nội bộ mang theo bản ghi chép vé mà không bao giờ có trên cánh cổng /manage Hợp nhất các phần tử OpsIQ Bản sao.

Trình tạo Kết nối

ticket_merge được lấy, không bao giờ được chọn: một gói tạo ra tuyên bố nó khi liên kết các ứng dụng nền tảng nó tạo (một vé. Tạo ra đã đăng ký với vé liên kết vào), xử lý vé. deleted, hoặc tuyên bố ticket_mirrorTheo bước bảng chọn, bên dưới TrộnChọn hành động hợp nhất của nền tảng.target_remote_idvà hợp nhất.source_remote_ids hay hợp nhất.source_remote_id) và một hành động ghi chú riêng (ghi chú bản đồ.remote_id và ghi chú.body. tạo ra bộ nhớ trộn () sử dụng cả hai. không, người xây dựng cảnh báo rằng tin nhắn của vé sẽ không đến được nền tảng.

💡
Hợp đồng đầy đủ: doc/contracts/CONNECTOR_CONTRACT.mdCho phép nhập hai vé vào OpsIQ và cả hai đều tồn tại trên bục, sau đó mở tấm vé tiếp theo trên bục.
Trình kết nối

Thị trường Nối

Thị trường cho phép bạn khám phá, cài đặt và xuất bản các kết nối được xây dựng bởi cộng đồng.

Khu chợ
Thị trường NốiMột mạng lưới tìm kiếm của các thẻ kết nối cộng đồng với các phân loại, cài đặt nút và đánh giá các ngôi sao.Thị trường NốiMiền làm việcTìm kết nối...LịchKế hoạchCài đặt★ 4.8HubSpotCRMCài đặt★ 4.6Thư điện tửThư điện tửCài đặt★ 4.7QuickBooksKế toánCài đặt★ 4.5ĐóngTrình gửi/ nhận tin nhắnNameCài đặt★ 4.9Ghi chúTài liệuCài đặt★ 4.41DISCOVERKết nối cộng đồng2CÀIMột click3PUBLISHKý tên
Duyệt kết nối cộng đồng, cài đặt trong một cú click chuột, hoặc ký hiệu và xuất bản của riêng bạn, được cài đặt trước và các dây chuyền thị trường đều có thể tìm kiếm.

Tìm và cài đặt các kết nối

1
Duyệt

Tới « Kết nối » > Market place. Tìm kiếm theo tên, loại hoặc nền tảng.

2
ôn lại

Kiểm tra mô tả, hành động được hỗ trợ và đánh giá.

3
Cài đặt

Nhấn vào Cài đặt. Gói kết nối tải về và cài đặt vào các cửa sổ_ kết nối/.

4
Cấu hình

Bật nó trong kết nối, nhập API Thông tin, và kiểm tra.

Xuất bản một kết nối

1
Xây dựng và thử nghiệm

Dùng bộ xây dựng kết nối. Kiểm tra mọi hành động hoạt động hoạt động.

2
Gói

Tạo hồ sơ.json Hành động.json kiến thức.json và hồ sơ của PHP.

3

Run php tools/sign_connector.php <slug> to sign ONE package (it also accepts a path). It does not boot OpsIQ, so give it the key: either --key=<secret> or the OPSIQ_CONNECTOR_SIGNING_KEY environment variable, otherwise it stops with "No signing key available". tools/resign_all_connectors.php re-signs EVERY package on the install and reads the key from settings by itself, but it can also mint a NEW install-wide signing key, so reach for it only when that is what you want.

4
Gởi

Tải lên qua thị trường để xem xét.

Hai dây nối

Kết nối/ — những gì thực sự chạy

Tất cả mọi thứ ở đây là trực tiếp: các kết nối con tàu vớiOpsIQ, bất cứ thứ gì được cài đặt từ chợ, và bất cứ điều gì Người xây dựng liên kết xuất bản trên cài đặt này.

_Gỡ bỏ/ — nơi tạo gói

Xuất bản SOURCE cho các gói thị trường đầu tiên. Nó không phải là một nguồn phát hiện: không có gì ở đây sống cho đến khi nó được đóng gói, ký tên, được cấy vào danh mục và cài đặt, tại đó một bản sao đất trong kết nối/.

💡
Hãy tìm trong cả hai nơi. Một gói mà bạn đã tạo ra dưới các liên kết thị trường/ không phải là bản sao — cài đặt nó vào các kết nối/, và chỉ được phát hiện vào lúc chạy.Stripe, BigCommerce, Magento2, PrestaShop, OpenCart, Amazon SES, Postmark và resend là tất cả các gói thị trường: cài đặt một trước khi mong đợi tìm thấy nó trong các liên kết.
Nhà phát triển

API và thợ xây dựng Kết nối

Hạt API và Trình xây dựng cây máy móc cho phép bạn tạo tùy chỉnh API kết thúc điểm và thính giả kết nối bên trong OpsIQ Mà không cần phải viết bằng thuốc chống trầm cảm.

API Người xây dựng
API và thợ xây dựng Kết nốiNgười xây dựng chọn kiểu kích hoạt (vô hạn webhook, lịch trình, sự kiện, sổ tay) mà đưa vào một hành động có thể cấu hình được.API Trình xây & dựng móc câuMiền làm việcTRỞ LINHWebhook vàoLịch (cron)OpsIQ sự kiệnThủ côngHành độngÁnh xạ các trường gửi tới→tạo vé/ thông báo/ cuộc gọi APILưu điểm kết thúc1SỐ NGƯỜI HIỆN TRỞWebhook · lịch trình · sự kiện · hướng dẫn2NO RAW PHPĐược xây dựng ở UI3LùiCác trường bản đồ, rồi chạy
Xây các điểm cuối không có mục đích pHP sống: hãy chọn một bộ phận kích hoạt (trong trang web, lịch trình, sự kiện hay hướng dẫn), rồi vẽ các trường bản đồ cho hành động.

Trình kích hoạt

Sự kiện

Chạy khi có gì đó xảy ra OpsIQ hoặc khi hệ thống bên ngoài đăng một sự kiện tương ứng với móc kéo mạng của bạn URL Nhập tên sự kiện, ví dụ vé. Tạo ra.

Lịch

Dùng một trong những sự kiện có sẵn như tên của sự kiện: cron. phút, khoảng 1 giờ hoặc cron (một ngày). màn hình hành động và kích hoạt có nút cho những cái này, vì vậy bạn không cần phải nhớ chúng.

Đoạn văn

Chạy khi một quản trị viên yêu cầu AI cho nó bằng ngôn ngữ thông thường. Thêm đoạn văn khớp, chẳng hạn tìm khách hàng.

Webhook vào

Một hệ thống bên ngoài gửi một thư điện tử HTTP cho bạn OpsIQ móc câu URL Bất cứ cái cò nào nghe thấy tiếng súng.

Chỉ chạy nó đôi khi: điều kiện

Một sự kiện gây ra có thể mang điều kiện, nên nó chỉ hoạt động khi dữ liệu đến.

Tìm kiếm

Một đường dẫn vào dữ liệu sự kiện. Dùng chấm cho giá trị tổ, ví dụ cho khách hàng. email.

Khớp tất cả hay nào

Chọn xem mọi quy tắc phải phù hợp, hay chỉ là một trong số chúng.

Thử văn bản

bằng, không bằng, bao gồm, không chứa, bắt đầu với, là một trong những, không phải là một của.

Thử số

Số liệu được viết ra với tên viết như là văn bản vẫn so sánh chính xác.

Thử ra sự hiện diện

hiện tại, thiếu vắng, trống rỗng, không rỗng tuếch.

Chỉ cần nhắn cho kỹ sư trực điện thoại để có vé khẩn cấp

Tình huống:
Vé sự kiện. Tạo ra, với một quy tắc: ưu tiên là khẩn cấp.
Làm sao bây giờ?

Hành động chạy cho vé khẩn cấp và bị bỏ qua cho mọi thứ khác. Không cần lọc tại kết thúc.

💡
Nếu bạn để trống các quy tắc kích hoạt chạy trên mỗi sự kiện phù hợp, đó là cùng hành vi như trước khi điều kiện tồn tại.

Hành động

Gởi móc câu mạng

Gửi thư điện tử HTTP đến bên ngoài URL với một chuyến hàng tùy chỉnh.

Tạo & vé

Hãy tạo một vé hỗ trợ với bộ phận, chủ đề và thông điệp đã được chỉ định.

Gửi thư

Gửi một email có mẫu riêng.

Cập nhật mục ghi

Cập nhật cho khách hàng, vé hoặc CRM Ghi chép.

Chạy hành động kết nối

Thực hiện một hành động đã đăng ký từ một bộ kết nối có khả năng kết nối và các quy tắc xác nhận.

Chạy OpsIQ Chung API hành động

Tìm kiếm toàn bộ tên Tướng quân API Danh mục. lĩnh vực, phạm vi, quyền hạn, xác nhận, sự hỗ trợ vô hạn và sự khô chạy đến từ giao thức hành động sống; dòng chảy công việc thực hiện bên trong không gian làm việc và ngữ cảnh nhà quản trị đã lưu.

Name API yêu cầu

Dùng bản địa kết nối API Đọc hoặc xác nhận bản địa API Ghi hành động khi nhà cung cấp cuối điểm không có chức năng quản lý. Các dấu hiệu vẫn còn bên trong đường dẫn và chỉ các đường dẫn tương đối được chấp nhận.

Những hành động và những người xây dựng, /api/v1.php, OpenAPI và Postman sử dụng cùng một hành động ContractRegisry, do đó, một hành vi có thể chọn được không thể bị trôi dạt khỏi tài liệu thời gian chạy.
Nhà phát triển

Kích hoạt Sổ tay nấu ăn

Chuẩn bị sử dụng công thức kích hoạt cho các tự động phổ biến.

Nó hoạt động thế nào?
Kích hoạt Sổ tay nấu ănMột công thức làm việc: cập nhật thời gian. xuống webok chuyền một bộ lọc sản xuất, rồi quạt ra để tạo một vé khẩn cấp và thông báo cho Slack.uptime.downTrình quản lý kết nối mạngNamenếu giáo sưfilterTạo vé khẩn cấpThông báo Slack #ops
Kích hoạt Sổ tay nấu ăn

Tự động tạo vé từ việc theo dõi

Tình huống:
Theo dõi hệ thống gửi PST khi máy phục vụ bị tắt.
Làm sao bây giờ?

Trigger: Inbound webhook Condition: payload.status = "down" Action: Create ticket · Dept: Technical, Subject: "Server {{payload.hostname}} down", Priority: Urgent

Slackthông báo về các lệnh lớn

Tình huống:
SlackThông điệp mỗi khi một khách hàng đặt một mệnh lệnh trên$100.
Làm sao bây giờ?

Trigger: Event (order.completed) Condition: order.amount > 100 Action: Send webhook to Slack incoming webhook URL with order details

Thư điện tử tiêu hóa hàng tuần

Tình huống:
Tóm tắt email tới quản lý mỗi thứ hai lúc 9 giờ sáng.
Làm sao bây giờ?

Trigger: Schedule (Monday 09:00) Action: Send email with last week's stats pulled from the REST API

Vé số cũ Escalate

Tình huống:
Nếu một tấm vé không có câu trả lời cho 24 giờ, chỉ định đội lãnh đạo.
Làm sao bây giờ?

Trigger: Schedule (every hour) Condition: ticket.status = "Open" AND ticket.last_reply_age > 86400 Action: Assign to team-lead, add internal note

Nhà phát triển

Xây dựng hành động đầu tiên của bạn

Việc đi qua này tạo ra một hoạt động kết nối đơn giản từ vết xước.

Đang xây dựng hành động
Xây dựng một hành độngMột dạng hành động- phân giải: tên lookup_ thứ tự, một yêu cầu nhận được /orders/{id}, một tham số id gõ và đi qua 200 Kiểm tra.Hành động mớiMiền làm việcHành động mớiTênlookup_orderYêu cầuGET/orders/{id}Mẫuid_ * chuỗi200 Tìm thấy · thứ tự1DEFINETên, phương pháp, điểm kết thúc2PARAMSNhập dạng3TIẾNGSống 200 kết quả
Xây dựng một hành động từ đầu. Tên, thiết lập phương pháp và điểm kết thúc, tuyên bố gõ các tham số, và thử nghiệm nó để sống 200.

Hai loại hành động

Trước khi bắt đầu, hãy quyết định bạn cần cái nào.

Gọi bên ngoài. API

Hành động gửi yêu cầu HTTP tới nền tảng của bạn. Hãy chọn điều này khi OpsIQ Cần phải vươn tới và làm gì đó ở bên cạnh.

Chạy hành động kết nối

Hành động chạy một cái gì đó đã cài đặt kết nối cung cấp. Hãy chọn điều này khi công việc sẵn sàng và bạn chỉ muốn kích hoạt nó. Bạn chọn hành động kết nối từ danh sách, vì vậy không có gì để nối lên.

Lựa chọn thứ hai là làm thế nào bạn sử dụng lại mọi thứ mà các máy kết nối của bạn có thể làm mà không cần xây dựng lại nó một lần nữa: đọc một sợi vé, tìm kiếm một khách hàng, liên lạc nhập khẩu, v. v. Hãy chọn hành động kết nối từ thả xuống và bạn sẽ xong.
1
Lên kế hoạch hành động

Ví dụ: "Tìm kiếm sản phẩm" Tìm một sản phẩm có tên, trả lại giá, cổ phiếu và mô tả.

2
Định nghĩa hành động.json

Thêm định nghĩa hành động:

hành động.json— hình dạng thật
{
  "actions": [
    {
      "action_id": "lookup_product",
      "label": "Look up a product",
      "category": "Catalogue",
      "description": "Find a product by name and return price, stock and description.",
      "scope": "admin",
      "requires_confirmation": false,
      "is_destructive": false,
      "delivery_type": "http",
      "http_method": "GET",
      "http_url": "/api/products/search",
      "parameters": [
        { "name": "name", "type": "string", "required": true, "in": "query",
          "description": "Product name to search for" }
      ],
      "returns": [
        { "alias": "id",          "path": "data.id",             "type": "string" },
        { "alias": "name",        "path": "data.name",           "type": "string" },
        { "alias": "price",       "path": "data.price",          "type": "number" },
        { "alias": "stock",       "path": "data.stock_quantity", "type": "number" }
      ]
    }
  ]
}
⚠️
Ba điều mà làm cho một hành động không thể đăng ký ở tất cả. hành động id được xây dựng và phải được2phải100ký tự chữ thường, chữ số và lời nhấn mạnh — một mục không có chữ cái nào bị từ chối hoàn toàn. Danh sách này là đối tượng có « hành động » chứ không phải bản đồ được đánh dấu bằng tên hành động. Và bản đồ trả lời là « Quay lại » với đường dẫn kiểu DOTTED (data.id, không phải JSONPath ($. datata). — không có "responsse_ repmpping", "end" hay "params" trong nhà in.
3
Thử ra với chạy mau

Trong bước xem lại của Thợ xây, hãy bấm nút sấy khô chạy danh sách các phiên chạy tùy chỉnh đầy đủ trên gói của bạn và khi bạn đã cung cấp thông tin xác thực, làm cho một thử nghiệm kết nối thật sự. Nó không sử dụng dữ liệu mẫu.

4
Kiểm tra cách sử dụng Al

Hỏi Quản trị Quản trị Nhân sự: "Hãy tìm công ty điều khiển sản phẩm Pro." AI nên tìm và thực hiện hành động.

⚠️
Thêm hành động.jsonkhông tạo đường dẫn AJAX nên không có gì cần tái tạo. Hành động kết nối được đồng bộ vàoOpsIQKhi bộ kết nối được bật, hoặc thiết lập lại: bật/tắt kết nối và hành động mới xuất hiện. Công cụ/gen_rogisry.php bao gồm văn lệnh AJAX và không có liên quan đến hành động kết nối.
Nhà phát triển

Điểm kết thúc sự kiện

Các điểm kết thúc đã được ký. JSON Từ một hệ thống khác và biến nó thành những hoạt động liên lạc phức tạp có thể nuôi dưỡng dòng thời gian, ghi điểm và làm việc.

Màn hình sản xuất
Điểm kết thúcMỗi nguồn cung đều có nguồn riêng. URL Bí mật, bản đồ và hoạt động gần đây.Điểm kết thúcMiền làm việcNguồn5ACCEPTED12.4kREJECTED18QUAN ĐIỂM CÔNG VIỆC SỐNGNền tảng hoá đơnSự kiện đăng kýKhỏe mạnhỨng dụng sản xuấtsự kiện đăng ký và sử dụngKhỏe mạnhID sự kiệnprovider_event_idDỡ bỏ bản saoChữ kýX-OpsIQ-Inbound-SignatureHMAC1CREATE SOURCEURL và bí mật2MAP PAYLOADThư điện tử, sự kiện và ID3KẾT QUẢHMAC sau đó nuốt
Mỗi nguồn cung đều có nguồn riêng. URL Bí mật, bản đồ và hoạt động gần đây.

Tạo ra một nguồn cho mỗi hệ thống gửi. OpsIQ tạo ra a URL Hãy gửi cho chúng tôi một bí mật. JSON có Content-Type: application/json Và ký vào cơ thể sống chính xác sử dụng HMAC-SHA256:

X-OpsIQ-Inbound-Signature: sha256=<hex hmac>

Bản đồ JSON Đường dẫn cho thư điện tử liên lạc, tên sự kiện và ID sự kiện tùy chọn. ID sự việc là chìa khóa tự ghi rõ. Chấp nhận hoạt động đã nhập vào dòng thời gian liên lạc và có thể ảnh hưởng đến dấu chấm câu chì, phân đoạn, quy tắc vòng đời và luồng công việc.

Từ chối chữ ký không hợp lệ trước khi phân tích dữ liệu công việc. Xoay một bí mật bằng cách cập nhật cả hai bên trong cửa sổ kiểm soát; đừng ghi lại bí mệnh đó.

Nhà phát triển

Hoạt động webhook ra

Chính quyền điều hành mạng lưới ngoài kia tạo ra những tờ đăng ký có chữ ký, các điểm thử nghiệm và giám sát sản phẩm không liền mạch và sức khỏe thử lại.

Màn hình sản xuất
Các móc cắm bị chặnTrang web ngoài cùng liệt kê điểm cuối HTTPS, số lần đăng ký sự kiện, sức khỏe giao hàng và một bài kiểm tra có chữ ký.Các móc cắm bị chặnMiền làm việcENDPOINTS7SUCCESS99.2%XÂY LINH4QUAN ĐIỂM CÔNG VIỆC SỐNGGương CRMliên lạc. và thỏa thuận.Khỏe mạnhXe buýt hỗ trợvé. và tán gẫu.Khỏe mạnhKho dữ liệu*Đang thử lạiGiao hàng thử raTải mẫu ký hiệuChào.1SUBSCRIBEHTTPS URL và sự kiện2AUTHENTICATEKý hiệu HMAC3OBSERVEĐường ray vận chuyển và thử lại
Trang web ngoài cùng liệt kê điểm cuối HTTPS, số lần đăng ký sự kiện, sức khỏe giao hàng và một bài kiểm tra có chữ ký.

Toàn bộ nhà quản trị tạo một điểm kết thúc HTTPS, chọn các sự kiện cụ thể hoặc các thẻ đại diện, lưu bí mật một cách an toàn và gửi một kiểm tra. OpsIQ kí hiệu cho việc nạp đạn thô với HMAC-SHA256:

X-OpsIQ-Signature: sha256=<hex hmac>

Kiểm tra chữ ký trước khi gỡ bỏ hay hành động. Giao hàng là không đều và tự động rectried sau khoảng 1 minute, 5 minutes, 30 minutes, 2 hours and 12 hoursDùng đường ray gần đây để kiểm tra tình trạng, mã phản hồi và số lần cố gắng.

Người nhận của bạn phải bình thường vì bất kỳ hệ thống phân chia đều có thể tái tạo.

Nhà phát triển

Webhooks

Các móc kéo cho phép thông báo hệ thống bên ngoài OpsIQ Khi một cái gì đó xảy ra (vô hạn) và để OpsIQ Thông báo cho các hệ thống bên ngoài khi có gì đó xảy ra bên trong (bên ngoài).

Webhooks
Các móc cắm bị chặnMàn hình kết nối web: một bảng kết thúc với tên, các sự kiện đã đăng ký, các chấm giao hàng gần đây, và một nút " Gởi thử".Các móc cắm bị chặnMiền làm việcĐiểm kết thúc+ Lưu điểm kết thúcTÊNBÀI HỌCNHỮNG LỜI TRANGSlack #sales-Alertshttps://hooks.slack.com/…crmLý tưởng.won, trật tựThửGương CRMhttps://api.acme.com/hookliên lạc. *, vé. TạoThửZapierhttps://hooks.zapier.com/…chat.startedThử1ENDPOINTSTên, sự kiện, URL2SIGNEDHMAC + tự động-retried3SEND TESTKiểm tra giao hàng
Màn hình kéo câu thật sự: mỗi điểm kết thúc với các sự kiện của nó, sức khỏe mang hàng hóa gần đây, và một bài kiểm tra gửi 1 cú nhấn chuột, đã ký và tái kết hợp.

Các móc cắm bị chặn

Đang đăng ký

Tới thiết lập > Các nút Mạng. Thêm một điểm kết thúc URL và chọn các sự kiện cần nhận.

Sự kiện

Đăng ký vào các sự kiện cụ thể, hoặc để ["*"] Danh sách đầy đủ cho cài đặt của bạn nằm dưới đây, và webhooks.events.list trả lại nó nhưJSON.

Thử lại

Việc giao thất bại thử lại với số nhân ngược lại. Sau khi 15 Thất bại liên tiếp, điểm cuối được tự động giải quyết.

Mọi giao hàng đều đã được ký. X-OpsIQ-Signature carries v2=<hex>Và chuỗi đã ký tên là version.timestamp.delivery_id.body Hãy xem những ví dụ dưới đây: “Hãy luôn xác nhận và luôn luôn xây dựng lại sợi dây.

Bảo vệ SSRF

OpsIQ sẽ không gửi tới thư mục cá nhân/ nội bộ IPs (127.x, 10.x, 172.16.x, 192.168.x, 169.254.169.254).

Một loại hàng mang tính đặc biệt

Các móc nối được gửi qua hàng đợi công việc, không bị chặn OpsIQ Hoạt động.

ID sự kiện ổn định

Mỗi sự kiện có một sự kiện đặc biệt mà vẫn còn trong quá trình tái tạo.

Chuyện gì xảy ra với mọi giao hàng

X-OpsIQ-Event

Tên sự kiện, ví dụ ticket.created.

X-OpsIQ-Delivery

Giấy tờ giao hàng, nó vẫn giữ nguyên như cũ, dùng để làm ngơ.

X-OpsIQ-Timestamp

Hãy rời khỏi đây trong thời gian ký. Từ chối bất cứ thứ gì cũ hơn 5 phút.

X-OpsIQ-Signature

Chữ ký là v2=<hex>Chia ra =: phía bên trái là phiên bản, bên phải là giá trị bạn so sánh.

X-OpsIQ-Signature-Version

Bộ màu đang được dùng, hiện thời v2Đọc nó từ đầu trang chứ không phải là khó khăn để ghi lại, và mã của bạn vẫn hoạt động nếu có thêm một v3.

⚠️
Chuỗi đã được ký version.timestamp.delivery_id.bodyChỉ việc chỉ làm nhục thân thể là lý do thông thường nhất để xác nhận lỗi — mỗi lần sinh nở chân thật bị từ chối và điểm cuối có vẻ như bị hỏng.

Kiểm tra giao hàng

PHP_ * Xác nhận mộtOpsIQmóc câu
<?php
// Read the raw body BEFORE any framework parses it — the signature covers
// the exact bytes we sent, so a re-encoded array will not match.
$raw      = file_get_contents("php://input");
$sigHeader= $_SERVER["HTTP_X_OPSIQ_SIGNATURE"] ?? "";   // "v2=<hex>"
$ts       = (string)($_SERVER["HTTP_X_OPSIQ_TIMESTAMP"] ?? "");
$delivery = (string)($_SERVER["HTTP_X_OPSIQ_DELIVERY"] ?? "");
$secret   = "your endpoint signing secret";   // shown once when you add the endpoint

// 1. Refuse a stale delivery. This is what stops a captured request being replayed.
if ($ts === "" || abs(time() - (int)$ts) > 300) {
    http_response_code(401);
    exit(json_encode(["error" => "Stale delivery"]));
}

// 2. The header names its own version: "v2=<hex>".
[$version, $received] = array_pad(explode("=", $sigHeader, 2), 2, "");

// 3. Rebuild exactly what OpsIQ signed.
$canonical = $version . "." . $ts . "." . $delivery . "." . $raw;
$expected  = hash_hmac("sha256", $canonical, $secret);

// 4. Constant-time compare, so a timing attack cannot reveal the secret.
if ($received === "" || !hash_equals($expected, $received)) {
    http_response_code(401);
    exit(json_encode(["error" => "Invalid signature"]));
}

// 5. Accept. Deliveries retry, so treat a delivery id you have already
//    processed as a success and do the work only once.
$event = json_decode($raw, true);
// ... your handling ...

http_response_code(200);
echo json_encode(["received" => true]);
Node.js .. xác nhận mộtOpsIQmóc câu
const crypto = require("crypto");

// express.raw gives you the exact bytes OpsIQ signed. express.json() does not.
app.post("/opsiq-webhook", express.raw({ type: "application/json" }), (req, res) => {
  const raw      = req.body;                                  // Buffer
  const sig      = req.headers["x-opsiq-signature"]  || "";   // "v2=<hex>"
  const ts       = req.headers["x-opsiq-timestamp"]  || "";
  const delivery = req.headers["x-opsiq-delivery"]   || "";
  const secret   = process.env.OPSIQ_WEBHOOK_SECRET;

  // 1. Reject stale deliveries (replay protection).
  if (!ts || Math.abs(Date.now() / 1000 - Number(ts)) > 300) {
    return res.status(401).json({ error: "Stale delivery" });
  }

  // 2. Split "v2=<hex>" into its version and its value.
  const [version, received] = sig.split("=", 2);

  // 3. Rebuild what OpsIQ signed: version.timestamp.delivery_id.body
  const canonical = Buffer.concat([
    Buffer.from(`${version}.${ts}.${delivery}.`),
    raw,
  ]);
  const expected = crypto.createHmac("sha256", secret).update(canonical).digest("hex");

  // 4. Constant-time compare. Lengths must match first or timingSafeEqual throws.
  const a = Buffer.from(expected), b = Buffer.from(received || "");
  if (a.length !== b.length || !crypto.timingSafeEqual(a, b)) {
    return res.status(401).json({ error: "Invalid signature" });
  }

  // 5. Accept, and make the work idempotent on the delivery id.
  const event = JSON.parse(raw.toString("utf8"));
  res.json({ received: true });
});

Mỗi sự kiện cài đặt này có thể gửi

Tạo ra từ những công trình đang chạy, nên nó luôn khớp với phiên bản bạn đang dùng.

52 events can be delivered to a webhook endpoint on this install. Subscribe with ["*"] for all of them, or name the ones you want. The General API action webhooks.events.list trả lại danh sách này cùng mộtJSONĐể mật mã của anh không bao giờ phải khó lập trình.

phân tích (1)

analytics.anomaly

Fired by PHASE_ANOMALY_ALERTS when a daily KPI (sessions, pageviews, conversions, revenue) deviates from its same-weekday 4-week baseline beyond the configured threshold. Payload: day (required), title, site_key, anomalies.

Thương mại (2)

commerce.order.created

Fired the moment a chat-confirmed order lands on the merchant platform (connector or custom-actions integration) - before payment. Subscribe to sync carts, reserve stock, or notify fulfilment systems. Payload: reference (required), connector, amount_minor, currency, customer_email, thread_id, occurred_at.

commerce.payment.confirmed

Fired exactly once per order when the gateway actively verifies the payment (amount and currency exact). This is the settlement signal - it rides the same claim that prevents duplicate receipts, so it can never double-fire. Payload: reference (required), connector, occurred_at.

liên lạc (6)

contact.conversion

Fired by OpsIQ.

contact.erased

Fired by OpsIQ.

contact.lifecycle_changed

Fired by OpsIQ.

contact.status_changed

Fired by OpsIQ.

contact.tag_added

Fired by OpsIQ.

opsiq.contact.upsert

Fired by OpsIQ.

conversation (5)

conversation.assigned

Fired when a conversation is assigned to an agent or unassigned. Payload: thread_id (required), site_key, assigned_admin_id, by_admin_id, occurred_at.

conversation.created

Fired when a new Client Chat conversation (thread) is opened. Payload: thread_id (required), site_key, channel, client_email, client_name, visitor_id, created_at.

conversation.message.created

Fired when a visible message is written to a conversation by the visitor, an agent, the AI or the system. Internal notes do not fire. Payload: thread_id (required), message_id (required), site_key, sender_type, admin_id, message, has_attachment, created_at.

conversation.rated

Fired when the visitor rates a conversation (1-5 stars). Payload: thread_id (required), site_key, stars, comment, trigger, admin_id, occurred_at.

conversation.resolved

Fired when an agent resolves a conversation and hands it back to the AI. Payload: thread_id (required), site_key, by_admin_id, occurred_at.

crm (6)

crm.company.created

Fired when a CRM company/account is created. Payload: company_id (required), name.

crm.deal.created

Fired when a CRM deal/opportunity is created (by an order, the capture agent, or a human). Payload: deal_id (required), title, amount, currency, scope.

crm.deal.lost

Fired when a deal is moved to a Lost stage (closed-lost). Payload: deal_id (required), stage, amount.

crm.deal.stage_changed

Fired when a deal moves to a different pipeline stage. Payload: deal_id (required), stage, amount.

crm.deal.won

Fired when a deal is moved to a Won stage (closed-won). Payload: deal_id (required), stage, amount.

crm.task.created

Fired when a CRM task is created (incl. AI-suggested next-step / renewal tasks). Payload: task_id (required), title.

Thư điện tử (2)

email.bounced

Fired by OpsIQ.

email.replied

Fired by OpsIQ.

feedback (13)

feedback.analysis.completed

Fired when a Voice-of-Customer analysis run completes. Payload: analysis_run_id (required), workspace_key, sample_count, model_version.

feedback.detractor.detected

Fired when a newly indexed response meets its metric-specific detractor rule. Payload: feedback_item_id (required), workspace_key, source_kind, metric_kind, classification.

feedback.follow_up.completed

Fired when a Feedback follow-up is completed. Payload: feedback_item_id (required), workspace_key, actor_admin_id, outcome_code.

feedback.item.assigned

Fired when Feedback ownership changes. Payload: feedback_item_id (required), workspace_key, assignee_admin_id, team_id, actor_admin_id.

feedback.item.indexed

Fired when a source record is added to or refreshed in the canonical Feedback index. Payload: feedback_item_id (required), source_kind, source_id, workspace_key, metric_kind, classification.

feedback.item.redacted

Fired when source deletion or redaction removes Feedback content from the index. Payload: feedback_item_id (required), workspace_key, source_kind.

feedback.item.status_changed

Fired when the Feedback workflow state changes. Payload: feedback_item_id (required), workspace_key, state, actor_admin_id.

feedback.item.tagged

Fired when a tag is added to or removed from Feedback. Payload: feedback_item_id (required), workspace_key, tag, operation.

feedback.item.updated

Fired when a canonical Feedback item changes. Payload: feedback_item_id (required), workspace_key, change.

feedback.source.failed

Fired when a Feedback source replay or incremental index operation fails. Payload: workspace_key, source_kind (required), error_code, checkpoint.

feedback.source.lagging

Fired when a Feedback source checkpoint is behind its expected freshness window. Payload: workspace_key, source_kind (required), lag_seconds, last_success_at.

feedback.theme.detected

Fired when a canonical topic or theme signal is attached to Feedback. Payload: feedback_item_id (required), workspace_key, theme_key, confidence.

feedback.urgent.detected

Fired when an urgent Feedback signal is detected. Payload: feedback_item_id (required), workspace_key, source_kind, signal_key.

invoice (3)

invoice.created

Fired when an invoice is generated. Payload: invoice_id (required), customer_id, customer_email, amount, currency, due_date, items.

invoice.overdue

Fired when an invoice passes its due date unpaid. Payload: invoice_id (required), customer_id, customer_email, amount, currency, days_overdue.

invoice.paid

Fired when an invoice is paid in full. Payload: invoice_id (required), customer_id, customer_email, amount, currency, paid_at.

order (1)

order.created

Fired when a new order is placed. Payload: order_id (required), customer_id, customer_email, amount, currency, items, status, source.

thanh (3)

payment.completed

Fired when a payment succeeds. Payload: order_id (required), payment_id, provider_ref, customer_id, customer_email, amount, amount_minor, currency, gateway, invoice_id, items, paid_at.

payment.failed

Fired when a payment attempt fails. Payload: order_id, customer_id, customer_email, amount, currency, gateway, reason.

payment.refunded

Fired when a refund is issued. Payload: order_id, refund_id, customer_id, customer_email, amount, currency, reason.

Bảo mật (1)

security.alert

Fired by PHASE_SECURITY_ALERTS when a security rule trips: failed-login wave, new automatic IP blocks, or a tamper-evidence (audit/consent hash chain) verification failure. Payload: rule (required), title, site_key, count, blocks, errors.

subscription (3)

subscription.cancelled

Fired when a subscription is cancelled. Payload: subscription_id (required), plan_name, customer_id, customer_email, cancel_reason, cancelled_at, ends_at.

subscription.created

Fired when a subscription is started. Payload: subscription_id (required), plan_id, plan_name, customer_id, customer_email, amount, currency, interval, trial_ends_at, next_billing_at.

subscription.renewed

Fired when a subscription renews successfully. Payload: subscription_id (required), plan_name, customer_id, customer_email, amount, currency, next_billing_at.

(5)

ticket.closed

Fired when a ticket is closed or resolved. Payload: ticket_id (required), resolution, closed_by_type, closed_by_id.

ticket.created

Fired when a new support ticket is opened. Payload: ticket_id (required), ticket_number, subject, department_id, department_name, customer_id, customer_email, priority, message, author_type, author_id, author_name.

ticket.merged

Fired when one or more tickets are merged into another ticket. Payload: ticket_id (required), ticket_number, subject, external_ref, native_table, site_key, sources, merged_by, merged_at.

ticket.renumbered

Fired when a connector mirror adopts the remote platform's ticket number for an OpsIQ ticket. Payload: ticket_id (required), old_number (required), ticket_number (required), connector, external_ref.

ticket.replied

Fired when a reply is posted to a ticket. Payload: ticket_id (required), reply_id, author_type, author_id, author_name, message.

user (1)

user.registered

Fired when a new user/customer account is created. Payload: user_id (required), email, firstname, lastname, company, country, source.

Làm sao để thử ra mạng weboks ở địa phương?+

Dùng ngrok để phơi bày máy phục vụ cục bộ. Đặt điểm kết thúc web là ngrork URL.

Nếu điểm cuối của tôi tạm thời bị cắt?+

OpsIQ Nếu điểm kết thúc phục hồi trong cửa sổ thử lại, không có sự kiện nào bị mất.

Nhà phát triển

Khóa API

API Yêu cầu xác thực khóa OpsIQ RORT API Mỗi chìa khóa đã được kiểm duyệt quyền hạn.

Khóa API
Khóa APIHạt API Màn hình khoá: một bảng phát hành với mức độ truy cập và các chip phạm vi, bên cạnh danh sách các phím đeo mặt nạ đã có với các nút thu hồi.Khóa APIMiền làm việcĐưa ra một phímTruy cậpChỉ đọcĐã hạn chếPhạm vịcontacts.readtickets.readevents.writePhím xuấtChìa khóa của bạnSự kết hợp của máy tính xách tayopq_••••4f2aThu hồiỨng dụng Di độngopq_••••91c7Thu hồiXuất phân tíchopq_••••2db0Thu hồi1SCOPEDChỉ đọc hay bị hạn chế2PER-ACTIONChọn phạm vi chính xác3REVOCABLEXoay bất cứ lúc nào
Thật. API Màn hình khóa: cung cấp một khoá có bán kính, chỉ đọc hay bị hạn chế bằng cách chọn phạm vi chính xác, và thu hồi bất kỳ phím nào bất cứ lúc nào.

Tạo ra một API Khóa

1
Tới thiết lập > API Phím

Chuyển tới API Quản lý chìa khóa.

2
Nhấn vào để tạo phím

Cho nó một cái tên mô tả.

3
Chọn phạm vi

Đưa chìa khóa chỉ những gì nó cần. để cho phép đọc và không có gì khác.

Phạm vi sẵn sàng

Chọn bộ hẹp nhất để làm việc. admin Làm thỏa mãn mọi phạm vi dưới đây, vì vậy chỉ dùng nó khi bạn thật sự cần truy cập rộng rãi.

crm. read / crmm. Write

Liên lạc, công ty, thương lượng, hoạt động, phân đoạn, tiếp cận, chuyển đổi, xe đạp sống và CRM Móc câu.

vé. đọc/ vé.

Liệt kê và đọc vé và tin nhắn; trả lời, cập nhật, mở và chạy rất nhiều hoạt động xếp hàng.

Cuộc trò chuyện, đọc, trò chuyện. Viết

Đọc các cuộc trò chuyện trực tiếp và lịch sử thông điệp; gửi tin nhắn, chỉ định và thay đổi trạng thái.

kb. read / kb

Mục nhập kiến thức cơ bản.

Tán gẫu. Đọc/ trò chuyện. Ghi chép

Lưu các mẫu trả lời.

connectors.read

Xem những thiết bị kết nối nào được cài đặt, họ có thể làm gì, và kiểm tra giấy ủy nhiệm của họ.

automations.read

Hãy xem hành động, kích hoạt và lịch sử chạy của họ.

departments.read

Sở có thể định tuyến.

notifications.read

Thông báo cho một người điều hành.

analytics.read

Các phần báo cáo, CSV xuất khẩu và định nghĩa báo cáo.

site_intelligence.read

Theo dõi địa điểm và các trang của chúng SEO Báo cáo.

files.read

Đã ký kết nối tải về cho các đính kèm.

status.write

Trạng thái trang thành phần và sự cố.

ghi

Trình trợ lý viết AI: www, tóm tắt, dịch, viết lại, soạn thảo, phân tích.

mandmin

Mọi thứ, bao gồm một số nhỏ hành động nhạy cảm mà không thể tiếp cận được bởi bất kỳ phạm vi hẹp nào: xóa bỏ liên lạc, thay đổi thiết lập riêng tư, và đọc nhật ký truy cập.

💡
Gọi các siêu hành động với chìa khóa để xem chính xác những hành động nào nó có thể chạy trên cài đặt. Điều đó luôn đáng tin cậy hơn việc làm việc từ danh sách.

Cấp truy cập

Tất cả

Chìa khóa có thể gọi bất cứ thứ gì trong phạm vi của nó.

Chỉ đọc

Mọi văn bản đều bị từ chối, bất kể phạm vi nào cho thấy sự lựa chọn an toàn nhất để báo cáo, bảng điều khiển và bất cứ thứ gì không bao giờ thay đổi dữ liệu.

Đã hạn chế

Bạn liệt kê các hành động chính xác mà chìa khóa có thể gọi. Bất cứ điều gì khác bị từ chối, ngay cả trong phạm vi được phép.

4
Chép phím

Bắt đầu với "opq_" lưu lại an toàn.

🚫
Không bao giờ chia sẻ API chìa khóa trong mã công cộng, bên khách JavaScript Dùng biến môi trường.
Nhà phát triển

Kết nối trang web của bạn

Hạt OpsIQ Ô điều khiển là một JavaScript Phần mềm bạn thêm vào trang web của bạn để theo dõi, tán gẫu, tạo ra vé và nhận diện khách hàng.

Nó hoạt động thế nào?
Kết nối trang web của bạnMột thẻ văn lệnh một dòng bên trái và, ở bên phải, một trang web với OpsIQ Bóng cửa trò chuyện xuất hiện ở góc.<!-- paste before </body> --><script src="https://cdn.opsiq.io/w.js" data-site="ws_8a2f" async></script>
Kết nối trang web của bạn

Cài đặt Cơ bản

Mảnh đồ họa cơ bản
<script src="https://your-opsiq-domain.com/widget.php"
  data-site-key="site_abc123"
  async></script>

Paste before the closing </body> tag. The script loads asynchronously and does not block page rendering.

Thuộc tính cấu hình

data-site-key

Yêu cầu, chìa khóa vị trí của anh từ khu vực kết nối.

data-mode

Tùy chọn. "chat" (mặc định), "tách" hay "cả hai".

data-position

Tùy chọn. "bên phải- dưới" (mặc định) hay "bên trái".

data-color

Mã số mã màu chính của hệ trực thăng.

data-greeting

Tin nhắn chào hỏi đầu tiên.

data-language

Ngôn ngữ "en", "es", "fr", "de", "pt", "ar", "ar", v. v...

data-identity-token

Chứng minh máy chủ đã ký tên.

Hỗ trợ SPA

Theo dõi lộ trình SPA thủ công
// Manually notify OpsIQ of a route change (for custom routers)
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["pageview", {
  url: window.location.href,
  title: document.title,
}]);

Quy tắc CSP

Các quy tắc hệ thống phụ thuộc vào thiết bị điều khiển
script-src 'self' https://your-opsiq-domain.com;
connect-src 'self' https://your-opsiq-domain.com;
frame-src https://your-opsiq-domain.com;
Các thiết bị có làm chậm website của tôi không?+

Không. 15 KB Gzched, nạp một định kỳ sau nội dung trang.

Tôi có thể tùy chỉnh sự xuất hiện không?+

Dùng màu dữ liệu cho màu chính. Hỗ trợ liên lạc cho CSS Tùy chọn ghi đè.

Nhà phát triển

Công thức cài đặt Ô điều khiển

Hướng dẫn cài đặt đặc trưng cho nền tảng.

Nó hoạt động thế nào?
Công thức cài đặt Ô điều khiểnNền tảng cài đặt bài cho WordPress, Shopify và Google Tag Manager, mỗi câu thêm ô điều khiển vào đâu .WPWordPressCài đặt bổ sung, nhập- Chìa khóa trang web của anh, lưu.Tiệm bánShopifyDán các mảnh vụn vàosắc thái.liquid trước đó /body.GTMBộ quản lý thẻTự chọn HTML tất cả các trang.
Cài đặt Công thức

WordPress

Tình huống:
Thêm vào mọi trang của một WordPress trang web.
Làm sao bây giờ?

Option 1: Edit theme footer.php, paste snippet before </body>. Option 2: Use "Insert Headers and Footers" plugin > Scripts in Footer. Option 3: Use a child theme footer.php to survive theme updates.

Shopify

Tình huống:
Thêm vào Shopify ở đâu?
Làm sao bây giờ?

Online Store > Themes > Edit Code > Layout > theme.liquid. Paste before </body>. Save.

Phản ứng/ Tiếp theo. js

Tình huống:
Thêm vào ứng dụng phản ứng hoặc tiếp theo. js.
Làm sao bây giờ?

In Next.js, use next/script in app/layout.tsx: import Script from "next/script"; <Script src="https://your-opsiq.com/widget.php" data-site-key="site_abc" strategy="lazyOnload" />

WHMCS

Tình huống:
Thêm vào WHMCS Khu vực khách hàng.
Làm sao bây giờ?

Thiết lập > Chung > Khác > Nội dung Toàn cục. Dán đoạn trích. Hoặc sửa đổi chân trang mẫu. tpl.

Google Tag Manager

Tình huống:
Thêm vào đó là GTM.
Làm sao bây giờ?

Tạo tự chọn HTML thẻ, dán mảnh vụn, kích hoạt: Mọi trang, xuất bản.

Nhà phát triển

Ô điều khiển Quản trị ở phía sau (một hợp đồng, bất kỳ nền tảng nào)

Nhổ vào OpsIQ Trợ lý quản trị đàn ông — nói chuyện với Adam, vé inbox và AlPing — bên trong bảng quảng cáo của bạn, vì vậy đội của bạn không bao giờ để lại công cụ của họ SSOĐây là một hợp đồng chung được thực hiện trong15 dòng của mã máy chủ của bạn — cùng một mẫu Zendesk, Intercom và Bài giảng được dùng cho SSO. Không có phần bổ sung per- platform cần chờ: bất kỳ chồng nào có thể tính một HMAC Hôm nay có thể làm được.

Step1- dòng liên tục

Từ Nơi ở từ xa→nơi Mạng của bạn→Mã, sao chép dòng tải và thêm nó vào trang của bảng điều khiển quảng cáo (cơ quan gồm có chân, mẫu bố trí, hoặc hộp kiểu Admin-Chỉ-JS):

Một dòng
<script async src="https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=SITE_KEY&identity_token=TOKEN_FROM_STEP_2"></script>

Step2- NóiOpsIQAi được đăng nhập (dấu máy chủ)

Chỉ có ứng dụng của TRONG đó có tên quản trị nào được ký vào — không phải là ngắn, mà là mô hình bảo mật. Máy chủ của bạn tạo ra một biểu tượng chữ ký ngắn hạn từ phiên chạy riêng của bạn, giống như bảng căn cước khách truy cập, ký cùng với bí mật trang web:

PHP_ 2 ký tên vào quảng cáo từ phiên chạy của bạn
<?php
$secret  = "opsiq_whsec_your_site_secret";   // Remote Sites → Codes
$payload = json_encode([
    "site_key"      => "SITE_KEY",
    "iat"           => time(),
    "exp"           => time() + 6 * 3600,
    "authenticated" => true,          // REQUIRED, top level — see note below
    "platform"      => "your-platform",
    "admin"    => [
        "id"            => (string)$admin->id,      // from YOUR session
        "name"          => $admin->name,
        "username"      => $admin->username,
        "email"         => $admin->email,
        "role"          => $admin->role,
        "authenticated" => true,
    ],
]);
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$identityToken = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);
// Put $identityToken into the embed line (identity_token=…), or expose it as
// window.OpsIQAdminIdentityToken before the loader script.
Truy cập đơn admin, tự động

Mọi quảng cáo đăng nhập vào nền tảng của bạn đều khớp với từng cá nhân:OpsIQCổng truy cập của per-admin giải quyết các hiệu bài tên người dùng + email chống lại mộtOpsIQĐặc vụ (Tem page; sử dụng danh sách các đại diện khi có email khác nhau) và áp dụng không gian làm việc của đại lý đó, bộ phận và quyền truy cập hộp.OpsIQ; không có sự thay đổi.

Vai diễn đi cùng

Bất kể chuỗi vai trò của bạn gửi được hiển thị trên nền tảngOpsIQBên cho cáo buộc, quyền ủy quyền luôn đến từOpsIQHồ sơ đặc vụ, không bao giờ từ vai diễn xác nhận.

Sao không đọc cookie đăng nhập của chúng tôi?

Các trình duyệt không bao giờ gửi cookie quản lý của bạn cho nguồn gốc khác — không nhà cung cấp nào có thể chỉ cần "tìm thấy" bạn đăng nhập từ xa. Mỗi sản phẩm quan trọng giải quyết điều này theo cùng một cách: phiếu máy chủ, ký tên. Đó là toàn bộ hợp đồng.

Không có chế độ chia sẻ trên trang Mạng riêng của bạn

Ngoài OpsIQ máy không có chế độ không ký hoặc tương ứng: bộ tải vẫn còn ẩn cho đến khi một tờ ủy nhiệm đã ký tên đến. Giá trị «... » trong bộ tải mã là một chìa khóa chỉ xác định nơi Mạng; nó không bao giờ có thể ký tên ai vào.

Hạt authenticated Cờ — hãy để ở mức TP

Lá cờ này là của bạn máy chủ xác nhận rằng một con người thực sự được đăng nhập, vàOpsIQTừ chối bất cứ vật kỷ niệm nào mà không có nó. "authenticated" => true beside site_key/iat/expKhông chỉ bên trong admin đối tượng. Hiện tạiOpsIQChấp nhận nó ở cả hai vị trí, nhưng người lớn tuổi chỉ đọc được cấp cao nhất — và thất bại là lừa dối: danh sách đối thoại, lịch sử và không đọc tất cả các xác thực trong khi mỗi cuộc trò chuyện chuyển sang câu trả lời "cần đăng nhập Admin"là một lỗi phiên chạy không phải. Nếu bạn thấy chính xác chỗ này, hãy kiểm tra lại lá cờ này trước.

Vệ sinh bị cạn kiệt

Ký trên máy phục vụ chỉ, không bao giờ trong trình duyệtJavaScript. Giữ exp ngắn ( phút đến giờ);OpsIQtừ chối đã hết hạn và các vật kỷ niệm trong tương lai, và chữ ký sẽ đóng dấu vào chìa khóa trang web của bạn.

Thực hiện tham khảo

HạtWHMCSmodule tự động làm điều này từ cácWHMCSPhiên chạy phát âm; tập tin cầu nối khách sạn Botble làm điều đó từ phiên chạy Laravel (op=admin_distity). Cả hai đều chỉ là hợp đồng này trong ngôn ngữ nền tảng của họ — sao chép bất cứ điều gì đọc gần nhất với chồng của bạn.

Dây cáp không trang ( do thám từ xa)

Khi bạnOpsIQKết nối lưu danh tính của bạn vào nó admin_identity_probe_url thiết lập, dòng tải PLAIN là tất cả các trang nền của bạn: các ô điều khiển phát hiện người thăm dò từ kết nối, gọi nó bằng phím nơi Mạng + bảng điều khiển và xác thực tự động quảng cáo. Trang này vẫn có thể ghi đè lên một phím. data-identity-endpoint thuộc tính hay window.OpsIQAdminIdentityEndpoint.

💡
Bí mật ký tặng đã được điền đầy đủ cho anh. Ở những chỗ ở xa, trang web của bạn, mã hóa, tùy chọn 3Ký vào nhân viên của bạn, mỗi ví dụ đã chứa bí mật riêng của trang này, vì vậy mã này hoạt động như cũ: không có gì để sao chép hoặc cấu hình. Ví dụ trên trang này hiển thị opsiq_whsec_YOUR_SITE_SECRET Mỗi ví dụ được tìm thấy OPSIQ_SITE_SECRET (hoặc cài đặt khung của riêng bạn, được đặt theo tên các ghi chú của nó) trên máy phục vụ trước và sử dụng nó khi nó được thiết lập, để bạn có thể di chuyển bí mật ra khỏi tập tin bất cứ khi nào bạn muốn, ví dụ để xoay nó mà không cần sửa đổi mã. Cách nào tập tin chạy trên máy chủ của bạn: không bao giờ dán nó vào trang Mạng hay trình duyệt JavaScriptvà không bao giờ cam kết nó vào kho công cộng, bởi vì bất cứ ai nắm giữ bí mật có thể ký tên như bất kỳ khách hàng hay nhân viên nào của bạn. WHMCS và Botble Không cần gì cả: WHMCS móc câu đến với bí mật được lấp đầy, và Botble Bảng kết nối sẽ lấp đầy nó vào cầu.

Toàn bộ mã, nền tảng theo nền tảng

Mỗi ví dụ in thẻ Amin Chat chỉ cho thành viên hội viên đã ký tên, với thẻ đã ký thêm, và trả lời phần cập nhật của máy móc (không có gì thay đổi).?opsiq_identity_refresh=1&role=admin) với {"success":true,"identity_token":"…"} hay 401Nơi ở từ xa, trang web, mã hóa, tùy chọn 3Ký tên vào nhân viên của anh in cùng mã với chìa khóa trang web và bí mật được điền vào.

⚠️
The admin token is the two-part form: base64url(payload), a dot, then the hex HMAC-SHA256 of that base64url text. It is not a JWT, and a JWT is refused. The admin object needs id and email, and exp must be within 24 hours.

WHMCS

Nothing to add: the WHMCS hook in Option 1 already signs your logged-in staff into Admin Chat and refreshes the token. Do not paste the Option 3 loader as well.
1

Install the Option 1 hook as includes/hooks/opsiq_tracker.php.

2

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

includes/hooks/opsiq_tracker.php
/* WHMCS: no extra code. Option 1 (the All-in-One WHMCS Hook) signs the logged-in
 * admin into Admin Chat on every admin page and answers ?opsiq_identity_refresh=1&role=admin. */

Botble (connector bridge)

Nothing to add: the Botble bridge signs your logged-in admins. Copy the bridge from the Botble connector panel (it arrives with OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET filled in), then put its one admin_embed line in Botble's admin Custom JS.
1

In Botble admin → Custom JS, add: <script async src="https://YOUR-BOTBLE-SITE/opsiq-botble-bridge.php?op=admin_embed"></script>

2

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

public/opsiq-botble-bridge.php
<!-- Botble admin → Custom JS. The bridge signs the logged-in admin; nothing secret is in the page. -->
<script async src="https://YOUR-BOTBLE-SITE/opsiq-botble-bridge.php?op=admin_embed"></script>

PHP (no dependencies)

1

Save as opsiq-admin-chat.php. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

At the very top of every ADMIN page, before any output: require 'opsiq-admin-chat.php'; opsiq_admin_chat_refresh(); and before </body>: <?= opsiq_admin_chat_tag() ?> (it replaces the Option 3 loader).

3

Replace opsiq_admin_chat_user() with your signed-in staff member. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq-admin-chat.php
<?php
/* opsiq-admin-chat.php — sign your logged-in staff into OpsIQ Admin Chat. */

// WHO IS SIGNED IN AS STAFF — replace the body. Return null for anyone who is not staff.
function opsiq_admin_chat_user(): ?array
{
    $u = $_SESSION['admin'] ?? null;    // e.g. ['id' => 3, 'email' => '…', 'username' => '…', 'name' => '…', 'role' => 'Owner']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
}

// The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT.
function opsiq_admin_chat_token(array $u): string
{
    $secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
    if ($secret === '') return '';                           // fail closed: no Admin Chat
    $now = time();
    $payload = rtrim(strtr(base64_encode(json_encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,                      // at most 24 hours
        'authenticated' => true,
        'platform'      => 'php',
        'admin'         => [
            'id'       => (string) $u['id'],                 // REQUIRED
            'email'    => (string) $u['email'],              // REQUIRED
            'username' => (string) ($u['username'] ?? ''),
            'name'     => (string) ($u['name'] ?? ''),
            'role'     => (string) ($u['role'] ?? ''),
        ],
    ], JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
    return $payload . '.' . hash_hmac('sha256', $payload, $secret);
}

// Call at the top of every admin page, before any output.
function opsiq_admin_chat_refresh(): void
{
    if (empty($_GET['opsiq_identity_refresh'])) return;
    header('Content-Type: application/json; charset=utf-8');
    header('Cache-Control: no-store');
    $u = opsiq_admin_chat_user();
    $t = $u ? opsiq_admin_chat_token($u) : '';
    if ($t === '') { http_response_code(401); echo json_encode(['success' => false, 'login_required' => true]); exit; }
    echo json_encode(['success' => true, 'role' => 'admin', 'identity_token' => $t]);
    exit;
}

// Print before </body> on admin pages. Prints nothing for anyone who is not staff.
function opsiq_admin_chat_tag(): string
{
    $u = opsiq_admin_chat_user();
    $t = $u ? opsiq_admin_chat_token($u) : '';
    if ($t === '') return '';
    $src = 'https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t);
    return '<script async src="' . htmlspecialchars($src, ENT_QUOTES) . '" data-opsiq-widget="admin-chat"></script>';
}

Laravel

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Save the class as app/Support/OpsiqAdminChat.php; adjust isStaff() to your admin guard or role. Add the refresh middleware from the bottom of the code to your admin routes.

3

In your admin Blade layout before </body>: {!! \App\Support\OpsiqAdminChat::tag() !!}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

app/Support/OpsiqAdminChat.php
<?php
// app/Support/OpsiqAdminChat.php — no packages needed.
namespace App\Support;

final class OpsiqAdminChat
{
    /** WHO IS STAFF — adjust to your admin guard, role or gate. */
    private static function staff()
    {
        $user = auth('web')->user();                    // or auth('admin')->user()
        return ($user && $user->can('access-admin')) ? $user : null;
    }

    /** The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT. */
    public static function token(): string
    {
        $user = self::staff();
        $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
        if (!$user || $secret === '') return '';
        $now = time();
        $payload = rtrim(strtr(base64_encode(json_encode([
            'site_key'      => 'YOUR_SITE_KEY',
            'iat'           => $now,
            'exp'           => $now + 3600,
            'authenticated' => true,
            'platform'      => 'laravel',
            'admin'         => [
                'id'       => (string) $user->id,           // REQUIRED
                'email'    => (string) $user->email,        // REQUIRED
                'username' => (string) ($user->username ?? $user->email),
                'name'     => (string) $user->name,
                'role'     => 'Admin',
            ],
        ], JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
        return $payload . '.' . hash_hmac('sha256', $payload, $secret);
    }

    /** For the admin Blade layout, before </body>. Prints nothing for non-staff. */
    public static function tag(): string
    {
        $t = self::token();
        if ($t === '') return '';
        return '<script async src="' . e('https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t)) . '" data-opsiq-widget="admin-chat"></script>';
    }
}

/* Refresh — Admin Chat asks ?opsiq_identity_refresh=1&role=admin on the admin page it is on.
 * app/Http/Middleware/OpsiqAdminChatRefresh.php, added to your admin route group:
 *
 *   public function handle($request, \Closure $next) {
 *       if (!$request->query('opsiq_identity_refresh')) return $next($request);
 *       $t = \App\Support\OpsiqAdminChat::token();
 *       return $t === ''
 *           ? response()->json(['success' => false, 'login_required' => true], 401)->header('Cache-Control', 'no-store')
 *           : response()->json(['success' => true, 'role' => 'admin', 'identity_token' => $t])->header('Cache-Control', 'no-store');
 *   }
 */

WordPress / WooCommerce

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste into your theme's functions.php or a small plugin. It shows Admin Chat inside wp-admin to users who can manage_options; change the capability to suit your team.

3

Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

functions.php
/* functions.php or a small plugin — OpsIQ Admin Chat inside wp-admin. */

if (!defined('OPSIQ_SITE_SECRET')) define('OPSIQ_SITE_SECRET', 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; wp-config.php wins when set

function opsiq_admin_chat_token(): string {
    if (!is_user_logged_in() || !current_user_can('manage_options')) return '';     // who counts as staff
    if (!defined('OPSIQ_SITE_SECRET') || OPSIQ_SITE_SECRET === '') return '';
    $u   = wp_get_current_user();
    $now = time();
    // The admin token is base64url(payload) . '.' . hex HMAC — NOT a JWT.
    $payload = rtrim(strtr(base64_encode(wp_json_encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,
        'authenticated' => true,
        'platform'      => 'wordpress',
        'admin'         => [
            'id'       => (string) $u->ID,                   // REQUIRED
            'email'    => (string) $u->user_email,           // REQUIRED
            'username' => (string) $u->user_login,
            'name'     => (string) $u->display_name,
            'role'     => (string) (reset($u->roles) ?: 'administrator'),
        ],
    ])), '+/', '-_'), '=');
    return $payload . '.' . hash_hmac('sha256', $payload, OPSIQ_SITE_SECRET);
}

// Refresh: Admin Chat asks ?opsiq_identity_refresh=1&role=admin on the admin page it is on.
add_action('admin_init', function () {
    if (empty($_GET['opsiq_identity_refresh'])) return;
    nocache_headers();
    $t = opsiq_admin_chat_token();
    if ($t === '') wp_send_json(['success' => false, 'login_required' => true], 401);
    wp_send_json(['success' => true, 'role' => 'admin', 'identity_token' => $t]);
});

// The loader, on every wp-admin page, for staff only.
add_action('admin_footer', function () {
    $t = opsiq_admin_chat_token();
    if ($t === '') return;
    echo '<script async src="' . esc_url('https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=' . rawurlencode($t)) . '" data-opsiq-widget="admin-chat"></script>';
});

Node.js / Express

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

adminRouter.use(opsiqAdminChat) on your ADMIN routes, after your session middleware; adjust isStaff(). It answers the refresh and sets res.locals.opsiqAdminChatTag.

3

Print res.locals.opsiqAdminChatTag (unescaped) before </body> in your admin layout. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq-admin-chat.js
// opsiq-admin-chat.js — no packages needed.
const crypto = require("crypto");

const isStaff = (user) => !!(user && user.isAdmin);        // WHO IS STAFF — adjust

// The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
function opsiqAdminChatToken(user) {
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!isStaff(user) || !secret) return "";
  const now = Math.floor(Date.now() / 1000);
  const payload = Buffer.from(JSON.stringify({
    site_key: "YOUR_SITE_KEY",
    iat: now,
    exp: now + 3600,                                        // at most 24 hours
    authenticated: true,
    platform: "node",
    admin: { id: String(user.id), email: user.email, username: user.username || user.email, name: user.name || "", role: user.role || "Admin" },  // id + email REQUIRED
  })).toString("base64url");
  return payload + "." + crypto.createHmac("sha256", secret).update(payload).digest("hex");
}

// adminRouter.use(opsiqAdminChat)
function opsiqAdminChat(req, res, next) {
  const token = opsiqAdminChatToken(req.user);
  if (req.query.opsiq_identity_refresh) {
    res.set("Cache-Control", "no-store");
    return token
      ? res.json({ success: true, role: "admin", identity_token: token })
      : res.status(401).json({ success: false, login_required: true });
  }
  res.locals.opsiqAdminChatTag = token
    ? '<script async src="' + ("https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + encodeURIComponent(token)).replace(/"/g, """) + '" data-opsiq-widget="admin-chat"></script>'
    : "";
  next();
}

module.exports = { opsiqAdminChat };

Python (Flask)

1

No packages beyond Flask and flask-login. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Call init_opsiq_admin_chat(app) where you create the app, and adjust is_staff().

3

In your admin base template before </body>: {{ opsiq_admin_chat_tag }}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.py
# opsiq_admin_chat.py — Flask + flask-login, no other packages.
import base64, hashlib, hmac, json, os, time, urllib.parse
from flask import request, jsonify
from flask_login import current_user
from markupsafe import Markup, escape

def is_staff(user):                                           # WHO IS STAFF — adjust
    return user.is_authenticated and getattr(user, "is_admin", False)

def opsiq_admin_chat_token():
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret or not is_staff(current_user):
        return ""
    now = int(time.time())
    # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    payload = base64.urlsafe_b64encode(json.dumps({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "python",
        "admin": {"id": str(current_user.id), "email": current_user.email,           # REQUIRED
                  "username": getattr(current_user, "username", current_user.email),
                  "name": getattr(current_user, "name", ""), "role": "Admin"},
    }, separators=(",", ":")).encode()).decode().rstrip("=")
    return payload + "." + hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

def init_opsiq_admin_chat(app):
    @app.before_request
    def _opsiq_admin_refresh():
        if request.args.get("opsiq_identity_refresh"):
            t = opsiq_admin_chat_token()
            if t:
                resp = jsonify({"success": True, "role": "admin", "identity_token": t})
            else:
                resp = jsonify({"success": False, "login_required": True})
                resp.status_code = 401
            resp.headers["Cache-Control"] = "no-store"
            return resp

    @app.context_processor
    def _opsiq_admin_tag():
        t = opsiq_admin_chat_token()
        if not t:
            return {"opsiq_admin_chat_tag": ""}
        src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + urllib.parse.quote(t, safe="")
        return {"opsiq_admin_chat_tag": Markup('<script async src="%s" data-opsiq-widget="admin-chat"></script>' % escape(src))}

Django

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Add "yourapp.opsiq_admin_chat.OpsiqAdminChatMiddleware" to MIDDLEWARE (after AuthenticationMiddleware) and "yourapp.opsiq_admin_chat.opsiq_admin_chat" to TEMPLATES context_processors. Staff = user.is_staff.

3

In your admin base template before </body>: {{ opsiq_admin_chat_tag }}. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.py
# yourapp/opsiq_admin_chat.py — no packages needed.
import base64, hashlib, hmac, json, time, urllib.parse
from django.conf import settings
from django.http import JsonResponse
from django.utils.html import format_html

def opsiq_admin_chat_token(user):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret or not user.is_authenticated or not user.is_staff:
        return ""
    now = int(time.time())
    # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    payload = base64.urlsafe_b64encode(json.dumps({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "django",
        "admin": {"id": str(user.pk), "email": user.email, "username": user.get_username(),   # id + email REQUIRED
                  "name": user.get_full_name(), "role": "Superuser" if user.is_superuser else "Staff"},
    }, separators=(",", ":")).encode()).decode().rstrip("=")
    return payload + "." + hmac.new(secret.encode(), payload.encode(), hashlib.sha256).hexdigest()

class OpsiqAdminChatMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request):
        if request.GET.get("opsiq_identity_refresh"):
            t = opsiq_admin_chat_token(request.user)
            resp = (JsonResponse({"success": True, "role": "admin", "identity_token": t}) if t
                    else JsonResponse({"success": False, "login_required": True}, status=401))
            resp["Cache-Control"] = "no-store"
            return resp
        return self.get_response(request)

def opsiq_admin_chat(request):
    t = opsiq_admin_chat_token(request.user)
    if not t:
        return {"opsiq_admin_chat_tag": ""}
    src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + urllib.parse.quote(t, safe="")
    return {"opsiq_admin_chat_tag": format_html('<script async src="{}" data-opsiq-widget="admin-chat"></script>', src)}

.NET / C#

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

In Program.cs after app.UseAuthentication(): app.Use(OpsiqAdminChat.Refresh); staff = users in the "Admin" role (adjust).

3

In your admin layout before </body>: @Html.Raw(OpsiqAdminChat.Tag(Context)). Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

OpsiqAdminChat.cs
// OpsiqAdminChat.cs — no packages needed.
using System.Net;
using System.Security.Claims;
using System.Security.Cryptography;
using System.Text;
using System.Text.Json;

public static class OpsiqAdminChat
{
    // The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    public static string Token(HttpContext ctx)
    {
        var secret = ctx.RequestServices.GetRequiredService<IConfiguration>()["OpsIQ:SiteSecret"];
        if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
        if (string.IsNullOrEmpty(secret) || !ctx.User.IsInRole("Admin")) return "";      // WHO IS STAFF — adjust
        var now = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
        var json = JsonSerializer.Serialize(new Dictionary<string, object> {
            ["site_key"] = "YOUR_SITE_KEY", ["iat"] = now, ["exp"] = now + 3600,
            ["authenticated"] = true, ["platform"] = "dotnet",
            ["admin"] = new Dictionary<string, string> {
                ["id"] = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "",      // REQUIRED
                ["email"] = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "",            // REQUIRED
                ["username"] = ctx.User.Identity?.Name ?? "", ["name"] = ctx.User.Identity?.Name ?? "", ["role"] = "Admin" },
        });
        var payload = Convert.ToBase64String(Encoding.UTF8.GetBytes(json)).TrimEnd('=').Replace('+', '-').Replace('/', '_');
        using var h = new HMACSHA256(Encoding.UTF8.GetBytes(secret));
        return payload + "." + Convert.ToHexString(h.ComputeHash(Encoding.UTF8.GetBytes(payload))).ToLowerInvariant();
    }

    // app.Use(OpsiqAdminChat.Refresh)
    public static async Task Refresh(HttpContext ctx, Func<Task> next)
    {
        if (string.IsNullOrEmpty(ctx.Request.Query["opsiq_identity_refresh"])) { await next(); return; }
        ctx.Response.Headers["Cache-Control"] = "no-store";
        var t = Token(ctx);
        if (t == "") { ctx.Response.StatusCode = 401; await ctx.Response.WriteAsJsonAsync(new { success = false, login_required = true }); return; }
        await ctx.Response.WriteAsJsonAsync(new { success = true, role = "admin", identity_token = t });
    }

    public static string Tag(HttpContext ctx)
    {
        var t = Token(ctx);
        if (t == "") return "";
        return "<script async src=\"" + WebUtility.HtmlEncode("https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + Uri.EscapeDataString(t)) + "\" data-opsiq-widget=\"admin-chat\"></script>";
    }
}

Ruby on Rails

1

No gems needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

include OpsiqAdminChat in your admin base controller; adjust opsiq_staff.

3

In your admin layout before </body>: <%= opsiq_admin_chat_tag %>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

app/controllers/concerns/opsiq_admin_chat.rb
# app/controllers/concerns/opsiq_admin_chat.rb — no gems needed.
require "base64"
require "cgi"
require "json"
require "openssl"

module OpsiqAdminChat
  extend ActiveSupport::Concern

  included do
    before_action :opsiq_admin_identity_refresh
    helper_method :opsiq_admin_chat_tag
  end

  private

  def opsiq_staff                                        # WHO IS STAFF — adjust
    current_user if respond_to?(:current_user, true) && current_user&.try(:admin?)
  end

  # The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
  def opsiq_admin_chat_token
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    staff = opsiq_staff
    return "" if secret.blank? || staff.nil?
    now = Time.now.to_i
    payload = Base64.urlsafe_encode64({
      site_key: "YOUR_SITE_KEY", iat: now, exp: now + 3600,
      authenticated: true, platform: "rails",
      admin: { id: staff.id.to_s, email: staff.email,              # REQUIRED
               username: staff.try(:username).to_s, name: staff.try(:name).to_s, role: "Admin" }
    }.to_json, padding: false)
    payload + "." + OpenSSL::HMAC.hexdigest("SHA256", secret, payload)
  end

  def opsiq_admin_identity_refresh
    return unless params[:opsiq_identity_refresh].present?
    response.headers["Cache-Control"] = "no-store"
    t = opsiq_admin_chat_token
    return render(json: { success: false, login_required: true }, status: :unauthorized) if t.blank?
    render json: { success: true, role: "admin", identity_token: t }
  end

  def opsiq_admin_chat_tag
    t = opsiq_admin_chat_token
    return "" if t.blank?
    helpers.tag.script(nil, async: true, src: "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=#{CGI.escape(t)}", data: { opsiq_widget: "admin-chat" })
  end
end

Java (Spring Boot)

1

No libraries needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace staff() with your admin lookup. The filter answers the refresh; @ControllerAdvice exposes opsiqAdminChatTag to views.

3

Admin Thymeleaf layout before </body>: <th:block th:utext="${opsiqAdminChatTag}"/>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

OpsiqAdminChat.java
// OpsiqAdminChat.java — no libraries needed.
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.util.HtmlUtils;

@Component
@ControllerAdvice
public class OpsiqAdminChat implements Filter {
    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS STAFF — replace: id, email, username, name, role. Null for anyone else. */
    private Map<String, String> staff(HttpServletRequest req) {
        if (req.getUserPrincipal() == null || !req.isUserInRole("ADMIN")) return null;
        String n = req.getUserPrincipal().getName();
        return Map.of("id", n, "email", n, "username", n, "name", n, "role", "Admin");
    }

    // The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
    String token(HttpServletRequest req) {
        Map<String, String> u = staff(req);
        if (u == null || secret.isEmpty()) return "";
        try {
            long now = System.currentTimeMillis() / 1000;
            Map<String, Object> claims = new LinkedHashMap<>();
            claims.put("site_key", "YOUR_SITE_KEY"); claims.put("iat", now); claims.put("exp", now + 3600);
            claims.put("authenticated", true); claims.put("platform", "java"); claims.put("admin", u);   // id + email REQUIRED
            String payload = Base64.getUrlEncoder().withoutPadding().encodeToString(new ObjectMapper().writeValueAsBytes(claims));
            Mac mac = Mac.getInstance("HmacSHA256");
            mac.init(new SecretKeySpec(secret.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
            return payload + "." + HexFormat.of().formatHex(mac.doFinal(payload.getBytes(StandardCharsets.UTF_8)));
        } catch (Exception e) { return ""; }
    }

    @Override // Admin Chat refreshing on the admin page it is on
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        if (req.getParameter("opsiq_identity_refresh") == null) { chain.doFilter(request, response); return; }
        HttpServletResponse res = (HttpServletResponse) response;
        res.setHeader("Cache-Control", "no-store");
        res.setContentType("application/json");
        String t = token(req);
        if (t.isEmpty()) { res.setStatus(401); res.getWriter().write("{\"success\":false,\"login_required\":true}"); return; }
        res.getWriter().write("{\"success\":true,\"role\":\"admin\",\"identity_token\":\"" + t + "\"}");
    }

    @ModelAttribute("opsiqAdminChatTag")
    public String tag(HttpServletRequest req) {
        String t = token(req);
        if (t.isEmpty()) return "";
        String src = "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + URLEncoder.encode(t, StandardCharsets.UTF_8);
        return "<script async src=\"" + HtmlUtils.htmlEscape(src) + "\" data-opsiq-widget=\"admin-chat\"></script>";
    }
}

Go

1

No modules needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace staff() with your session lookup and wrap your admin router: OpsiqAdminChatRefresh(adminMux).

3

Pass OpsiqAdminChatTag(r) to your admin layout and print it before </body>. Each staff member needs an OpsIQ agent account with the same email (or username): that is how their own permissions apply.

opsiq_admin_chat.go
// opsiq_admin_chat.go — standard library only.
package main

import (
    "crypto/hmac"
    "crypto/sha256"
    "encoding/base64"
    "encoding/hex"
    "encoding/json"
    "html"
    "html/template"
    "net/http"
    "net/url"
    "os"
    "time"
)

type OpsiqStaff struct{ ID, Email, Username, Name, Role string }

// WHO IS STAFF — replace with your session lookup. Return nil for anyone who is not staff.
func staff(r *http.Request) *OpsiqStaff { return nil }

// The admin token is base64url(payload) + "." + hex HMAC — NOT a JWT.
func opsiqAdminChatToken(r *http.Request) string {
    u, secret := staff(r), os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if u == nil || secret == "" {
        return ""
    }
    now := time.Now().Unix()
    body, _ := json.Marshal(map[string]any{
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": true, "platform": "go",
        "admin": map[string]string{"id": u.ID, "email": u.Email, "username": u.Username, "name": u.Name, "role": u.Role}, // id + email REQUIRED
    })
    payload := base64.RawURLEncoding.EncodeToString(body)
    mac := hmac.New(sha256.New, []byte(secret))
    mac.Write([]byte(payload))
    return payload + "." + hex.EncodeToString(mac.Sum(nil))
}

// OpsiqAdminChatRefresh answers Admin Chat's ?opsiq_identity_refresh=1&role=admin.
func OpsiqAdminChatRefresh(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        if r.URL.Query().Get("opsiq_identity_refresh") == "" {
            next.ServeHTTP(w, r)
            return
        }
        w.Header().Set("Cache-Control", "no-store")
        w.Header().Set("Content-Type", "application/json")
        if t := opsiqAdminChatToken(r); t != "" {
            json.NewEncoder(w).Encode(map[string]any{"success": true, "role": "admin", "identity_token": t})
            return
        }
        w.WriteHeader(http.StatusUnauthorized)
        json.NewEncoder(w).Encode(map[string]any{"success": false, "login_required": true})
    })
}

// OpsiqAdminChatTag prints the loader for staff only.
func OpsiqAdminChatTag(r *http.Request) template.HTML {
    t := opsiqAdminChatToken(r)
    if t == "" {
        return ""
    }
    src := "https://YOUR-OPSIQ/opsiq/embed/admin_widget.php?site_key=YOUR_SITE_KEY&identity_token=" + url.QueryEscape(t)
    return template.HTML(`<script async src="` + html.EscapeString(src) + `" data-opsiq-widget="admin-chat"></script>`)
}

Đang hoàn thiện điểm danh trên Laravel ( Ghi chú khó-won)

Nếu nền tảng của bạn là Laravel (Botble, Bagisto, ứng dụng tùy chỉnh) và điểm cuối của bạn sẽ khởi động khung để đọc bảng điều hành đăng nhập, ba chi tiết cụ thể sẽ tiết kiệm cho bạn giờ — mỗi cái tạo ra một thất bại thật sự trước khi được học:

Trói yêu cầu trước khi khởi động

Các nhà cung cấp dịch vụ có thể giải quyết request Xe đạp cứu hộ của Laravel kết nối yêu cầu bị bắt đầu tiên là ở trong xe Kernel::handle() - Hãy phản ánh mệnh lệnh đó: $app->instance('request', Request::capture()) Trước đây $kernel->bootstrap()Hoặc là anh có "Target class [đã yêu cầu] không tồn tại".

Tiền tố cho phiên chạy làHMAC- Bị khóa.

Đầu đề Laravel hiện đại là giá trị cookie với một HMAC Được tính với chìa khóa APP (CookieValuePrefix) — một đồng bằng sha1(name."v2") Không thể nào sánh được. CookieValuePrefix::validate($name, $decrypted, $keys)Với một hậu quả của cấu trúc40hex chas + | vào vị trí40Hãy nói: phiên chạy dài hơn40Ký tự (81= tiền tố vẫn còn được gắn vào) và một phiên chạy mà tải với chỉ _token trong đó.

Nơi đăng nhập sống

Con dấu thô lỗ là login_<guard>_<sha1(guard class)> - cho trình bảo vệ web mặc định: 'login_web_' . sha1(Illuminate\Auth\SessionGuard::class)Quét bất kỳ login_* Chìa khóa số để làm mặt trái cho lính canh.

Lừa gạt như chiếc cầu vậy.

Tàu A. debug=1 Chế độ đặt tên cho sự thất bại của hệ thống định vị và ngoại lệ — một công cụ bắt mù làm cho việc triển khai không thể chẩn đoán được. Cầu Botble (từ v1.)0.7) là tham chiếu: dấu chấm phẩy bước tại hạt nhân/bind/bootstrap/decrypt/sition/auth/db.

Laravel # hoàn toàn nhân dạng điểm kết thúc (tách, đặt hai hằng số, xong)
<?php
/* identity endpoint · LARAVEL (Botble, Bagisto, any Laravel admin)
 * Drop this in your PUBLIC web root, e.g. /opsiq-identity.php
 * Answers: {"success":true,"authenticated":true,"admin":{...},"identity_token":"..."} */
define("OPSIQ_SITE_KEY", "SITE_KEY");
define("OPSIQ_SITE_SECRET", "opsiq_whsec_your_site_secret");   // Remote Sites → Codes

header("Content-Type: application/json");
$step = "boot";
try {
    require __DIR__ . "/../vendor/autoload.php";
    $app = require_once __DIR__ . "/../bootstrap/app.php";

    $step = "bind";
    // ORDER MATTERS: bind the request BEFORE bootstrapping, or providers that
    // resolve "request" during boot throw "Target class [request] does not exist".
    $request = Illuminate\Http\Request::capture();
    $app->instance("request", $request);

    $step = "bootstrap";
    $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
    $kernel->bootstrap();

    $step = "session";
    $app["session"]->driver()->setId($request->cookie(config("session.cookie")));
    $app["session"]->driver()->start();

    $step = "auth";
    $user = auth()->guard("web")->user();   // use YOUR admin guard name
    if (!$user) {
        echo json_encode(["success" => false, "authenticated" => false, "error" => "no admin session"]);
        exit;
    }

    $step = "sign";
    $admin = [
        "id"            => (string)$user->id,
        "name"          => (string)($user->name ?? $user->username),
        "username"      => (string)($user->username ?? $user->email),
        "email"         => (string)$user->email,
        "role"          => (string)optional($user->roles->first())->name,
        "authenticated" => true,
    ];
    $payload = json_encode([
        "site_key"      => OPSIQ_SITE_KEY,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — required
        "platform"      => "laravel",
        "admin"         => $admin,
    ], JSON_UNESCAPED_SLASHES);
    $p64   = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    $token = $p64 . "." . hash_hmac("sha256", $p64, OPSIQ_SITE_SECRET);

    echo json_encode(["success" => true, "authenticated" => true,
                      "admin" => $admin, "identity_token" => $token]);
} catch (\Throwable $e) {
    // debug=1 names the failing STEP — never ship a blind catch-all
    $err = ($_GET["debug"] ?? "") === "1"
        ? get_class($e) . " at [" . $step . "]: " . $e->getMessage()
        : "identity unavailable";
    echo json_encode(["success" => false, "authenticated" => false, "error" => $err]);
}

Điểm cuối cùng giống nhau trên các chồng khác

Chỉ có sự thay đổi dòng chữ " ai được đăng nhập" — khối ký ở mọi nơi giống nhau.JavaScript.

WordPress · WHMCS· Symfeny· plain PHP — trao đổi diện mạo, giữ người ký
<?php
/* The ONE helper every platform shares. Keep it verbatim. */
function opsiq_identity_token(array $admin, string $siteKey, string $secret, string $platform): string {
    $payload = json_encode([
        "site_key"      => $siteKey,
        "iat"           => time(),
        "exp"           => time() + 6 * 3600,
        "authenticated" => true,          // TOP LEVEL — OpsIQ refuses the token without it
        "platform"      => $platform,
        "admin"         => $admin + ["authenticated" => true],
    ], JSON_UNESCAPED_SLASHES);
    $p64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
    return $p64 . "." . hash_hmac("sha256", $p64, $secret);
}

/* ── WORDPRESS ─────────────────────────────────────────────────────────── */
require_once ABSPATH . "wp-load.php";
if (!current_user_can("manage_options")) { /* not an admin → refuse */ }
$u = wp_get_current_user();
$admin = ["id" => (string)$u->ID, "name" => $u->display_name,
          "username" => $u->user_login, "email" => $u->user_email,
          "role" => implode(",", $u->roles)];

/* ── WHMCS (inside an addon/hook, admin area) ──────────────────────────── */
$aid = (int)($_SESSION["adminid"] ?? 0);
if ($aid <= 0) { /* not an admin → refuse */ }
$row = Capsule::table("tbladmins")->where("id", $aid)->first();
$admin = ["id" => (string)$row->id, "name" => trim($row->firstname . " " . $row->lastname),
          "username" => $row->username, "email" => $row->email, "role" => "administrator"];

/* ── SYMFONY ───────────────────────────────────────────────────────────── */
$u = $security->getUser();                    // Symfony\Bundle\SecurityBundle\Security
if (!$u) { /* not an admin → refuse */ }
$admin = ["id" => (string)$u->getId(), "name" => $u->getName(),
          "username" => $u->getUserIdentifier(), "email" => $u->getEmail(),
          "role" => implode(",", $u->getRoles())];

/* ── PLAIN PHP / your own app ──────────────────────────────────────────── */
session_start();
if (empty($_SESSION["admin_id"])) { /* not an admin → refuse */ }
$admin = ["id" => (string)$_SESSION["admin_id"], "name" => $_SESSION["admin_name"] ?? "",
          "username" => $_SESSION["admin_username"] ?? "", "email" => $_SESSION["admin_email"] ?? "",
          "role" => $_SESSION["admin_role"] ?? ""];

/* ── then, on EVERY stack ──────────────────────────────────────────────── */
$token = opsiq_identity_token($admin, "SITE_KEY", "opsiq_whsec_your_site_secret", "wordpress");
echo json_encode(["success" => true, "authenticated" => true,
                  "admin" => $admin, "identity_token" => $token]);

Khi nó không hoạt động — chẩn đoán theo thứ tự này

Điều khiển không bao giờ xuất hiện, bàn điều khiển nói "cần phải có thẻ căn cước quản trị"

Điểm cuối của anh đã trả lại số không identity_tokenMở điểm kết thúcURLtrực tiếp trong trình duyệt quảng cáo đăng nhập với &debug=1 Trên Laravel, gần như luôn có các mục yêu cầu kết nối hoặc cookie- priff trên.

Lịch sử và cuộc trò chuyện có hiệu quả, nhưng mỗi lượt tán gẫu nói "cần đăng nhập Admin"

Dấu hiệu của anh đã bỏ lỡ TOP-LVEL authenticated Cờ — điểm cuối của chính ô điều khiển chấp nhận hiệu này, còn bộ duyệt chung phía sau luồng chat từ chối nó. "authenticated" => true beside exp.

"không được cung cấp...OpsIQ" (HTTP401)

Kiểm tra hiệu quả, nhưng tên người dùng của nó + email tương ứng với không OpsIQ Đặc vụ, thêm đặc vụ vào OpsIQ → Đội, hoặc thêm các nền tảng email vào danh sách các email phù hợp của đại lý đó khi nó khác biệt với họ OpsIQ Email.

Tất cả403stừ trình duyệt nhưng làm việc với cong

MỘT phi cơ sẵn sàng bay là từ chối một trong những yêu cầu dẫn đầu. OPTIONS và lặp lại nguồn gốc yêu cầu, hoặc đơn giản là tránh đầu đề tùy chỉnh — thiết bị này chỉ cần dùng bánh quy.

Hôm qua làm việc, hôm nay thất bại

Kiểm tra exp: các vật hiệu là thiết kế ngắn hạn. Các ô điều khiển tự động thay đổi kích thước, vì vậy thường có nghĩa điểm cuối dừng xem phiên chạy — xoay phím ứng dụng, thay đổi dòng lệnh phiên chạy, hoặc thay đổi dấu bánh quy.

💡
Các ô điều khiển kiểu admin làm ẩn cho đến khi xác định được danh tính, và mỗi cuộc gọi chat/inbox/data được thực hiện bên máy chủ chống lại các tùy chọn tương ứngOpsIQĐặc vụ bất kể bất cứ điều gì các trang xác nhận.OpsIQ.
Nhà phát triển

Danh tính người thăm

Danh tính liên kết những vị khách nặc danh với những khách hàng quen biết. OpsIQ liên kết lịch sử duyệt, trò chuyện và vé máy khách.

Nó hoạt động thế nào?
Danh tính người thămA flow: a user logs in to your site, you issue a signed identity token, and OpsIQ thống nhất các phiên họp, trò chuyện và vé vào một hồ sơ.Bản ghi người dùngtrong nơi Mạng của bạnKý tênID_token (HMAC)Một hồ sơsessionsTrò chuyện+ vé
Danh tính người thăm

Hai cấp độ nhận diện, và khi mỗi cái là đủ

Trình độ1— một gợi ý chưa ký

Bạn nói với các thiết bị điều khiển người truy cập là ai với một đồng bằngJavaScriptĐối tượng. nó điền vào email và ID khách hàng trên nhật ký khách truy cập, nên bảng điều khiển của bạn hiển thị các giao thông đã ký và các phiên chạy tham gia. nó là một HINT: bất cứ ai cũng có thể sửa đổi nó trong trình duyệt của họ, vì vậy hãy ghi lại nó vào trình duyệt.OpsIQKhông bao giờ phát hành dữ liệu tài khoản về sức mạnh của nó.

Trình độ2— một vật tượng trưng đã được ký

Máy chủ của anh ký một vật thể sống ngắn với bí mật webhook.OpsIQXác nhận chữ ký và chỉ sau đó đối xử với người đó như là một khách hàng đã chứng minh. Đây là cấp mở khóa tài khoản trả lời trong trò chuyện và kết nối của khách hàng. Hãy dùng nó cho bất cứ điều gì mà người lạ không nên xem.

⚠️
Trình độ1là một sự tiện lợi hiển thị.2là xác thực. Nếu một câu hỏi chỉ có thể được trả lời cho người giữ tài khoản thật, bạn cần cấp2.
💡
Bạn không cần phải viết cấp 2 Bằng tay: Nơi ở từ xa → nơi Mạng của bạn → Mã → C. đăng nhập khách hàng tạo ra mã ký và bộ quản lý cập nhật cho PHP, WordPressLaravel, Node.jsPython, Django, .NET, Rails, Java và Go WHMCS móc và câu Botble Kết nối đã ký cho khách hàng. Danh tính cho biết khách hàng là ai; lệnh hoặc đặt cuộc trò chuyện của họ qua một kết nối (với tập tin cầu chỉ khi nền tảng không có API).

Trình độ1— gợi ý chưa ký

Đặt đối tượng trước khi văn lệnh ô điều khiển, hoặc gọi tắt là () sau này khi ứng dụng của bạn biết ai đã ký tên. Cả hai hình thức đều được đọc; dùng bất cứ hình nào vừa với trang của bạn.

JavaScript· Hai dạng được hỗ trợ
<!-- Form A: set the global before the loader -->
<script>
  window.OpsIQClient = {
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  };
</script>
<script async src="https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"></script>

<!-- Form B: identify later, e.g. after a client-side login -->
<script>
  window.opsiq.identify({
    id:    "cust_1001",
    email: "[email protected]",
    name:  "Jane Smith",
    plan:  "pro"
  });
</script>
⚠️
Only these forms are read: the window.OpsIQClient global, window.opsiqConfig.user, and window.opsiq.identify(). There is no OpsIQ.push(['identify', ...]) queue and no OpsIQClientSignature global — if you find either in an old note, it does nothing.

Trình độ2— tín hiệu nhận diện máy chủ

Chính xác cùng một giao kèo hiệu quả với ô điều khiển quảng cáo, với a customer Chủ đề thay vì một admin Một. Ký vào máy chủ và chuyển nó cho ô điều khiển. Hai chi tiết quyết định xem nó có dễ nhận sai hay không:

Hạt HMAC bao gồm chuỗi BASE64URL, không phảiJSON

$payload64không $payloadKý vào bản gốcJSONtạo ra một vật thể trông giống như vậy và bị loại bỏ mỗi lần với dấu hiệu không khớp.

Căn cứ 64url, chưa sửa

Dịch +/ phải -_ và gỡ bỏ = Căn cứ 64 sẽ tồn tại hôm nay; cơ sở64 là hợp đồng và đó là điều mà mọi ngườiOpsIQverifier và tham chiếu kết nối phát ra.

Xác nhận đi ở mức TP

Bên cạnh site_key, iatexpAnh khẳng định rằng một con người thật sự đã được đăng nhập, vàOpsIQTừ chối vật tượng trưng mà không có nó.

Khách hàng. id là bắt buộc

Một vật lưu giữ chỉ mang một bản sao email như là một chữ ký và rồi được yên lặng thả xuống.

Giữ/giải nén

Thời gian đến giờ. Đây là một lời khẳng định về phiên chạy, không phải một giấy chứng nhận để lưu trữ.

PHP - ký một thẻ căn cước khách hàng (chính xác mã này)
<?php
/* Server-signed customer identity. Runnable as-is: set the two constants. */
$siteKey = "YOUR_SITE_KEY";                        // Remote Sites -> Codes
$secret  = "opsiq_whsec_your_site_secret";         // Remote Sites -> Codes

$payload = json_encode([
    "site_key"      => $siteKey,
    "iat"           => time(),
    "exp"           => time() + 3600,
    "authenticated" => true,                       // TOP LEVEL - required
    "platform"      => "your-platform",
    "customer"      => [
        "id"            => (string)$user->id,      // REQUIRED
        "email"         => (string)$user->email,   // REQUIRED
        "name"          => (string)$user->name,
        "plan"          => (string)($user->plan ?? ""),
        "authenticated" => true,
    ],
], JSON_UNESCAPED_SLASHES);

/* base64url(payload) . "." . hex HMAC-SHA256 OF THAT STRING. */
$payload64 = rtrim(strtr(base64_encode($payload), "+/", "-_"), "=");
$token     = $payload64 . "." . hash_hmac("sha256", $payload64, $secret);

/* Hand it to the widget either way: */
printf(
    '<script async src="https://YOUR-OPSIQ/widget.php?site_key=%s&identity_token=%s"></script>',
    rawurlencode($siteKey),
    rawurlencode($token)
);
// or, if the loader is already on the page:
// echo '<script>window.opsiqConfig = window.opsiqConfig || {}; '
//    . 'window.opsiqConfig.identityToken = ' . json_encode($token) . ';</script>';
🚫
Ký vào máy phục vụ chỉ. Một hiệu được đúc trong trình duyệtJavaScriptNghĩa là chuyển địa điểm này bí mật cho mọi vị khách, mà giao cho bất cứ ai khả năng giả mạo khách hàng.

Cùng một hợp đồng, ba bề mặt

Name

đối tượng khách hàng, đã qua identity_token để ô điều khiển.p. Đã bao phủ bên trên. Tùy chọn: với sculp A và một kết nối bộ kết nối đã tự động kiểm tra khách hàng (một số thứ tự đặt hay đặt hàng với bằng chứng, hoặc một mã đã email trước thứ tự). Nơi Mạng, mã, C tạo ra mã nhận diện tự động khách hàng đã đăng nhập vào trang web của bạn.

Trò chuyện quản trị bên trong hậu phương của bạn

đối tượng quản trị, được chuyển đếnopsiq/embed/admin_widget.p. cùng một người ký, khoá chủ đề khác. Xem « Ô điều khiển Admin trong hậu phương ».

Hỗ trợ cổng sâu liên kết

Một biến thể chặt chẽ hơn: cùng một tuyên bố cộng với jti và đơn_use: sự thật, và a120- Cuộc sống thứ hai, bởi vì vật tượng trưng di chuyển trong mộtURLvà phải dùng được một lần. Đừng cuộn tay nó. Thiết lập, « Hỗ trợ cổng có đoạn cắt sẵn sàng cho ngôn ngữ của bạn, và nền tảng đúc bạc hà cho bạn khi vùng tài khoản chạy trên máy phục vụ này.

Nếu khách đến thăm dọn bánh quy thì sao?+

Họ trở nên vô danh cho đến khi họ được nhận diện lại.OpsIQliên kết mục ghi nặc danh mới tới hồ sơ khách hàng ngay khi có gợi ý hay một vật tượng trưng đến.

Tại sao vật kỷ niệm của tôi xác nhận danh sách khách truy cập nhưng không phải là câu hỏi tài khoản?+

Đó là mức độ1/ Trình độ2Chia ra. Gợi ý chưa ký lấp đầy nhật ký khách truy cập và không có gì khác. Tài khoản cần có chữ ký xác nhận.

Nhà phát triển

Dấu cổng: mã cho mỗi nền tảng

Gửi một khách hàng đã đăng ký vào ứng dụng của bạn, nhập vào cổng hỗ trợ, không mật khẩu thứ hai. Trang này giải thích cách thức gỡ bỏ bàn phím, mỗi yêu cầu trong thẻ, thiết lập và đường dẫn đầy đủ cho mỗi nền tảng. Thiết lập, Hỗ trợ in cùng mã với địa chỉ cổng riêng và phím làm việc của bạn.

Nó hoạt động thế nào?

1
Khách hàng nhấn vào nút hỗ trợ trong ứng dụng của anh.

Các điểm liên kết tại một đường nhỏ trên máy phục vụ CỦA BẠN, ví dụ /support-portal. Không bao giờ tại một liên kết đã chứa một biểu tượng: một dấu hiệu trong trang bị rò rỉ qua nguồn trang, lịch sử duyệt và đầu trang duyệt.

2
Kiểm tra lộ trình ai đã ký vào

Nó đọc khách hàng từ phiên chạy riêng của bạn. Một khách truy cập không đăng ký sẽ được gửi tới đăng nhập của bạn trước và trở lại đường sau đó.

3
Đường biển chỉ có một lần.

Một máy chủ của bạn giữ bí mật làm việc trong không gian làm việc này, mà chỉ có máy chủ giữ lại 120 giây và có thể được sử dụng một lần.

4
Con đường dẫn đến cánh cổng

Đến cánh cổng trang khách hàng đến từ khi cánh cổng yêu cầu cho một (opsiq_portal_return, được chấp nhận chỉ bên trong địa chỉ cổng của bạn), nếu không cổng về nhà. Đáp ứng có tham chiếu-Policy: không có bộ nhớ tạm và Cache: no-store.

5
Cánh cổng xác nhận và cho khách hàng vào

Dấu hiệu, chìa khóa không gian làm việc, bộ giải mã và chứng minh thư chỉ một lần được kiểm tra. Khách hàng được tìm hay tạo bởi email và các yêu cầu hiện có của họ đều khớp với họ.

Vật kỷ niệm, được yêu cầu bởi nhà cầm quyền

site_key

Chìa khóa vùng làm việc của bạn. Một vật để làm cho một không gian lao động khác bị từ chối ngay cả khi nó được ký đúng.

iat / exp

Phát hành ngay lập tức, có dấu hiệu của cánh cổng sống lại 120 Nó chỉ tồn tại sau một giây.

Xác thực: đúng

Ứng dụng của anh nói rằng nó thực sự đã ký tên người này.

jti + single_use: đúng

Một ID ngẫu nhiên và cờ một lần. Liên kết tương tự không thể được dùng hai lần.

Nền

Một nhãn miễn phí cho nơi mà khách hàng đến (p, wordpress, whmcsHiện trong hồ sơ khách hàng.

Khách hàng. id và khách hàng. mail

Cả hai đều cần. thư điện tử là chứng minh thư của khách hàng của bạn; và cách cánh cổng tìm ra khách hàng và đáp ứng yêu cầu của họ.

Khách hàng. tên / external_id

Tên hiển thị tùy chọn, và mã nhận diện OpsIQ các cửa hàng đối diện với nền tảng của bạn.

Thiết lập

1
Chép đường đi

Thiết lập cổng hỗ trợ, dấu không dây trong ứng dụng của bạn. Hãy chọn ứng dụng đang chạy gì; mã dưới danh sách có địa chỉ cổng và khóa vùng làm việc điền vào, với ghi chú đánh số cho nền tảng đó.

2
Bí mật đã nằm trong mật mã.

Các lộ trình sao chép chứa bí mật của không gian làm việc này, vì vậy nó hoạt động như dán OPSIQ_SITE_SECRET (hoặc khung của bạn) trên máy chủ thay vào đó: giá trị đó được dùng trước JavaScriptứng dụng di động hoặc kho chứa công cộng: bất cứ ai giữ bí mật đều có thể ký tên vào đó như bất kỳ khách hàng nào.

3
Liên kết nút hỗ trợ của bạn vào đường

Ví dụ https://your-app.com/support-portal.

4
Làm cho cổng ra dấu trong nút bấm sử dụng ứng dụng của bạn

Phòng thu cổng, trang đăng nhập, sử dụng đăng nhập của trang web của tôi, trang truy cập của bạn URL: Và cánh cổng đã thêm vào opsiq_portal_return bằng chính nó và đường đi đưa khách hàng trở lại trang đó, đã đăng ký.

5
Lựa chọn: đăng xuất khắp nơi

Thiết lập, Cổng Hỗ trợ, đăng xuất mọi nơi: URLVậy nên hãy ký tên ra khỏi cổng cũng kí tên khách hàng từ ứng dụng của anh.

6
Thử

Tạo ra một liên kết thử nghiệm đã ký trên cùng trang thiết lập để kiểm tra phía cổng, sau đó mở đường trong khi ký vào ứng dụng của bạn.

WHMCS Không cần mã số: WHMCS móc câu từ vùng hẻo lánh đã ký kết khách hàng vào cánh cổng và mang họ trở lại trang web của họ.
💡
Bí mật ký tặng đã được điền đầy đủ cho anh. Trong thiết lập, In sao lưu cổng hỗ trợ, dấu hiệu không biển từ ứng dụng của bạn, mỗi ví dụ đã chứa bí mật của riêng nơi Mạng này, vì vậy mã này hoạt động như được dán: không có gì cần sao chép hoặc cấu hình. Ví dụ trên trang này hiển thị. opsiq_whsec_YOUR_SITE_SECRET Mỗi ví dụ được tìm thấy OPSIQ_SITE_SECRET (hoặc cài đặt khung của riêng bạn, được đặt theo tên các ghi chú của nó) trên máy phục vụ trước và sử dụng nó khi nó được thiết lập, để bạn có thể di chuyển bí mật ra khỏi tập tin bất cứ khi nào bạn muốn, ví dụ để xoay nó mà không cần sửa đổi mã. Cách nào tập tin chạy trên máy chủ của bạn: không bao giờ dán nó vào trang Mạng hay trình duyệt JavaScriptvà không bao giờ cam kết nó vào kho công cộng, bởi vì bất cứ ai nắm giữ bí mật có thể ký tên như bất kỳ khách hàng hay nhân viên nào của bạn. WHMCS và Botble Không cần gì cả: WHMCS móc câu đến với bí mật được lấp đầy, và Botble Bảng kết nối sẽ lấp đầy nó vào cầu.

Các tuyến đường hoàn thành, nền tảng theo nền tảng

OpsIQ server (self-hosted)

1

For a self-hosted OpsIQ: the route runs on your own OpsIQ server, so there is no secret to copy. OpsIQ reads this workspace's signing secret itself.

2

Save it as a page on that server, e.g. support-portal.php, and point your "Support" link at it.

3

Replace the body of $currentUser so it returns your signed-in customer (id, email, name), or null for a guest, and /login with your login page.

OpsIQ server (self-hosted)
/* OpsIQ server (self-hosted) — save as e.g. support-portal.php on your OpsIQ
 * server and link your "Support" button to it. OpsIQ reads the workspace's
 * signing secret itself, so there is nothing secret to copy. */

if (!function_exists('opsiq_portal_signed_url_for_site')) {
    require_once '/path/to/opsiq/opsiq/opsiq.portal_identity.php';
}

// 1. WHO IS SIGNED IN — replace the body. Return null for a guest.
$currentUser = static function (): ?array {
    $u = $_SESSION['user'] ?? null;
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
};
$user = $currentUser();
if (!$user) {
    header('Location: /login?return=' . urlencode($_SERVER['REQUEST_URI'] ?? '/'), true, 302);
    exit;
}

// 2. WHERE TO LAND — the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

// 3. MINT a one-time link (120 s) for this workspace.
$url = opsiq_portal_signed_url_for_site($target, 'YOUR_SITE_KEY', [
    'id'    => $user['id'],        // REQUIRED
    'email' => $user['email'],     // REQUIRED
    'name'  => $user['name'] ?? '',
], 120);
if (!$url) {
    http_response_code(503);       // fail closed: never send a customer to a guessed address
    exit('Support portal is not configured yet.');
}

header('Referrer-Policy: no-referrer');   // the token is in the URL
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

PHP (no dependencies)

1

Save the snippet as a page in your app, e.g. support-portal.php.

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (hosting panel, .env or SetEnv) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace the body of $currentUser with your app's signed-in customer, and /login with your login page.

PHP (no dependencies)
/* support-portal.php — a redirect route in your own app.
 * Mint at CLICK time: a token baked into an href leaks through page source,
 * browser history and the Referer header. */

// 1. WHO IS SIGNED IN — replace the body with your app's own session. Return null for a guest.
$currentUser = static function (): ?array {
    $u = $_SESSION['user'] ?? null;            // e.g. ['id' => 7, 'email' => '…', 'name' => '…']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
};
$user = $currentUser();
if (!$user) {                                  // a guest: sign in first, then come back here
    header('Location: /login?return=' . urlencode($_SERVER['REQUEST_URI'] ?? '/'), true, 302);
    exit;
}

// 2. THE SECRET — server-side only. Fail closed without it.
$secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
if ($secret === '') { http_response_code(503); exit('Support portal is not configured.'); }

// 3. WHERE TO LAND — the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

// 4. MINT the token (standard HS256 JWT).
$b64 = static function ($v) {
    return rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
};
$now = time();
$signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
    'site_key'      => 'YOUR_SITE_KEY',
    'iat'           => $now,
    'exp'           => $now + 120,                // URL-borne tokens live ~2 minutes
    'authenticated' => true,
    'jti'           => bin2hex(random_bytes(16)),
    'single_use'    => true,                      // one-time link; replay is refused
    'platform'      => 'php',
    'customer'      => [
        'id'          => $user['id'],             // REQUIRED
        'email'       => $user['email'],          // REQUIRED
        'name'        => $user['name'] ?? '',
        'external_id' => (string) $user['id'],
    ],
]);
$token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

// 5. GO. The default is https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
$url = $target . (strpos($target, '?') === false ? '?' : '&')
     . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
header('Referrer-Policy: no-referrer');       // the token is in the URL
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

Laravel

1

Run: composer require firebase/php-jwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the route into routes/web.php. The auth middleware sends guests to your login and back.

Laravel
/* routes/web.php — composer require firebase/php-jwt
 * Link customers to  route('support.portal') */

Route::get('/support-portal', function (\Illuminate\Http\Request $request) {
    $user   = $request->user();                                   // guaranteed by ->middleware('auth')
    $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
    abort_if($secret === '', 503, 'Support portal is not configured.');   // fail closed

    // Where to land: the portal page they came from, only if it is on the portal.
    $portal = 'https://YOUR-OPSIQ/portal/your-workspace';
    $back   = preg_replace('/#.*$/', '', (string) $request->query('opsiq_portal_return', ''));
    $target = ($back === $portal || str_starts_with($back, $portal . '/') || str_starts_with($back, $portal . '?'))
        ? $back : $portal;

    $now   = time();
    $token = \Firebase\JWT\JWT::encode([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 120,
        'authenticated' => true,
        'jti'           => bin2hex(random_bytes(16)),
        'single_use'    => true,
        'platform'      => 'laravel',
        'customer'      => [
            'id'          => $user->id,          // REQUIRED
            'email'       => $user->email,       // REQUIRED
            'name'        => $user->name,
            'external_id' => (string) $user->id,
        ],
    ], $secret, 'HS256');

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    $url = $target . (str_contains($target, '?') ? '&' : '?')
         . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);

    return redirect()->away($url)
        ->header('Referrer-Policy', 'no-referrer')
        ->header('Cache-Control', 'no-store');
})->middleware('auth')->name('support.portal');

WordPress

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php, above "That's all, stop editing", instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste the snippet into your theme's functions.php, or a small plugin (Code Snippets works).

3

Create an empty page with the slug support-portal and link your "Support" menu item to it. Guests are sent to wp-login and back.

WordPress
/* functions.php, or a small plugin. Create an empty page with the slug
 * "support-portal" and link customers to it. */

add_action('template_redirect', function () {
    if (!is_page('support-portal')) return;
    if (!is_user_logged_in()) { auth_redirect(); }                 // login, then back here

    $secret = defined('OPSIQ_SITE_SECRET') ? OPSIQ_SITE_SECRET : 'opsiq_whsec_YOUR_SITE_SECRET';   // this site's secret; wp-config.php wins when set
    if ($secret === '') wp_die('Support portal is not configured.', '', ['response' => 503]);   // fail closed

    // Where to land: the portal page they came from, only if it is on the portal.
    $portal = 'https://YOUR-OPSIQ/portal/your-workspace';
    $back   = preg_replace('/#.*$/', '', isset($_GET['opsiq_portal_return']) ? wp_unslash((string) $_GET['opsiq_portal_return']) : '');
    $target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
        ? $back : $portal;

    $user = wp_get_current_user();
    $b64  = static function ($v) {
        return rtrim(strtr(base64_encode(wp_json_encode($v)), '+/', '-_'), '=');
    };
    $now     = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 120,
        'authenticated' => true,
        'jti'           => bin2hex(random_bytes(16)),
        'single_use'    => true,
        'platform'      => 'wordpress',
        'customer'      => [
            'id'          => $user->ID,              // REQUIRED
            'email'       => $user->user_email,      // REQUIRED
            'name'        => $user->display_name,
            'external_id' => (string) $user->ID,
        ],
    ]);
    $token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    $url = $target . (strpos($target, '?') === false ? '?' : '&')
         . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
    nocache_headers();
    header('Cache-Control: no-store');
    header('Referrer-Policy: no-referrer');
    wp_redirect($url, 302);                                       // wp_redirect, not wp_safe_redirect: the portal is another host
    exit;
});

WHMCS

Already using the OpsIQ WHMCS hook from Sites (includes/hooks/opsiq_tracker.php)? It already signs your customers into the portal and brings them back to the page they were on, so you do not need this snippet. Just set Portal Studio → Sign-in page → Your login page URL to your WHMCS client area login. Use the code below only if you are not installing that hook.
1

Save part 1 as opsiq_support.php in your WHMCS root (next to clientarea.php).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the hook, set $opsiq_site_secret = '…'; in configuration.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Save part 2 as includes/hooks/opsiq_support_link.php to add Support to the client-area menu.

WHMCS
/* Two files you own — no OpsIQ module, nothing to keep updated.
 *
 * 1) Save this part as  opsiq_support.php  in your WHMCS root. */

require __DIR__ . '/init.php';

$ca = new WHMCS\ClientArea();
$ca->initPage();
$ca->requireLogin();                                         // login, then back here

$secret = '';
if (is_file(__DIR__ . '/configuration.php')) {
    include __DIR__ . '/configuration.php';                  // defines $opsiq_site_secret
    $secret = isset($opsiq_site_secret) ? (string) $opsiq_site_secret : 'opsiq_whsec_YOUR_SITE_SECRET';   // this site's secret; configuration.php wins when set
}
if ($secret === '') { http_response_code(503); exit('Support portal is not configured.'); }   // fail closed

// Where to land: the portal page they came from, only if it is on the portal.
$portal = 'https://YOUR-OPSIQ/portal/your-workspace';
$back   = preg_replace('/#.*$/', '', (string)($_GET['opsiq_portal_return'] ?? ''));
$target = ($back === $portal || strpos($back, $portal . '/') === 0 || strpos($back, $portal . '?') === 0)
    ? $back : $portal;

$uid    = (int) $ca->getUserID();
$client = localAPI('GetClientsDetails', ['clientid' => $uid]);

$b64 = static function ($v) {
    return rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
};
$now     = time();
$signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
    'site_key'      => 'YOUR_SITE_KEY',
    'iat'           => $now,
    'exp'           => $now + 120,
    'authenticated' => true,
    'jti'           => bin2hex(random_bytes(16)),
    'single_use'    => true,
    'platform'      => 'whmcs',
    'customer'      => [
        'id'          => $uid,                       // REQUIRED
        'email'       => $client['email'] ?? '',     // REQUIRED
        'name'        => trim(($client['firstname'] ?? '') . ' ' . ($client['lastname'] ?? '')),
        'external_id' => (string) $uid,
    ],
]);
$token = $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');

// Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
$url = $target . (strpos($target, '?') === false ? '?' : '&')
     . 'site_key=' . rawurlencode('YOUR_SITE_KEY') . '&identity_token=' . rawurlencode($token);
header('Referrer-Policy: no-referrer');
header('Cache-Control: no-store');
header('Location: ' . $url, true, 302);
exit;

/* 2) And this part as  includes/hooks/opsiq_support_link.php  to put a
 *    Support entry in the client-area navbar:
 *
 *    add_hook('ClientAreaPrimaryNavbar', 1, function ($navbar) {
 *        $navbar->addChild('opsiqSupport', [
 *            'label' => 'Support',
 *            'uri'   => 'opsiq_support.php',
 *            'order' => 60,
 *        ]);
 *    });
 */

Node.js / Express

1

Run: npm i jsonwebtoken

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (.env with dotenv, or your host's settings) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the route after your session / passport setup. Change /login if your login page lives elsewhere.

Node.js / Express
// npm i jsonwebtoken
const jwt = require("jsonwebtoken");
const crypto = require("crypto");

const PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";
const onPortal = (u) => u === PORTAL || u.startsWith(PORTAL + "/") || u.startsWith(PORTAL + "?");

app.get("/support-portal", (req, res) => {
  const user = req.user;                                  // set by your session / passport
  if (!user) return res.redirect("/login?next=" + encodeURIComponent(req.originalUrl));

  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!secret) return res.status(503).send("Support portal is not configured.");   // fail closed

  // Where to land: the portal page they came from, only if it is on the portal.
  const back = String(req.query.opsiq_portal_return || "").replace(/#.*$/, "");
  const target = onPortal(back) ? back : PORTAL;

  const token = jwt.sign({
    site_key: "YOUR_SITE_KEY",
    authenticated: true,
    jti: crypto.randomBytes(16).toString("hex"),
    single_use: true,                                     // one-time link
    platform: "node",
    customer: {
      id: user.id,                                        // REQUIRED
      email: user.email,                                  // REQUIRED
      name: user.name,
      external_id: String(user.id),
    },
  }, secret, { algorithm: "HS256", expiresIn: 120 });     // sets iat + exp

  // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
  const url = target + (target.includes("?") ? "&" : "?")
    + "site_key=" + encodeURIComponent("YOUR_SITE_KEY") + "&identity_token=" + encodeURIComponent(token);
  res.set("Referrer-Policy", "no-referrer").set("Cache-Control", "no-store").redirect(302, url);
});

Node.js (no dependencies)

1

No packages needed. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your app's signed-in customer, then call supportPortal(req, res) for GET /support-portal in your server.

Node.js (no dependencies)
// No packages needed — Node's own crypto is enough.
const crypto = require("crypto");

const PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";
const b64 = (obj) => Buffer.from(JSON.stringify(obj)).toString("base64url");

// 1. WHO IS SIGNED IN — replace with your app's session lookup. Return null for a guest.
function currentUser(req) {
  return req.user || null;                                // { id, email, name }
}

// GET /support-portal
function supportPortal(req, res) {
  const here = new URL(req.url, "http://local");
  const user = currentUser(req);
  if (!user) {                                            // a guest: sign in first, then come back
    res.writeHead(302, { Location: "/login?next=" + encodeURIComponent(req.url) });
    return res.end();
  }
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!secret) { res.writeHead(503); return res.end("Support portal is not configured."); }

  // Where to land: the portal page they came from, only if it is on the portal.
  const back = (here.searchParams.get("opsiq_portal_return") || "").replace(/#.*$/, "");
  const target = (back === PORTAL || back.startsWith(PORTAL + "/") || back.startsWith(PORTAL + "?")) ? back : PORTAL;

  const now = Math.floor(Date.now() / 1000);
  const signing = b64({ alg: "HS256", typ: "JWT" }) + "." + b64({
    site_key: "YOUR_SITE_KEY",
    iat: now,
    exp: now + 120,
    authenticated: true,
    jti: crypto.randomBytes(16).toString("hex"),
    single_use: true,
    platform: "node",
    customer: { id: user.id, email: user.email, name: user.name, external_id: String(user.id) },
  });
  const token = signing + "." + crypto.createHmac("sha256", secret).update(signing).digest("base64url");

  // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
  const url = target + (target.includes("?") ? "&" : "?")
    + "site_key=" + encodeURIComponent("YOUR_SITE_KEY") + "&identity_token=" + encodeURIComponent(token);
  res.writeHead(302, { Location: url, "Referrer-Policy": "no-referrer", "Cache-Control": "no-store" });
  res.end();
}

Python (Flask / FastAPI)

1

Run: pip install pyjwt (the Flask example also uses flask-login).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste into the module that creates your app. @login_required sends guests to your login view and back.

Python (Flask / FastAPI)
# pip install pyjwt flask-login
import os, secrets, time, urllib.parse
import jwt
from flask import request, redirect, abort
from flask_login import login_required, current_user

PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

def portal_link(user, back=""):
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret:
        abort(503, "Support portal is not configured.")     # fail closed
    back = back.split("#", 1)[0]
    target = back if (back == PORTAL or back.startswith(PORTAL + "/") or back.startswith(PORTAL + "?")) else PORTAL
    now = int(time.time())
    token = jwt.encode({
        "site_key": "YOUR_SITE_KEY",
        "iat": now,
        "exp": now + 120,                                   # URL-borne: ~2 minutes
        "authenticated": True,
        "jti": secrets.token_hex(16),
        "single_use": True,                                 # one-time link
        "platform": "python",
        "customer": {
            "id": user.id,                                  # REQUIRED
            "email": user.email,                            # REQUIRED
            "name": getattr(user, "name", ""),
            "external_id": str(user.id),
        },
    }, secret, algorithm="HS256")
    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    return (target + ("&" if "?" in target else "?")
            + "site_key=" + urllib.parse.quote("YOUR_SITE_KEY", safe="")
            + "&identity_token=" + urllib.parse.quote(token, safe=""))

@app.route("/support-portal")
@login_required
def support_portal():
    resp = redirect(portal_link(current_user, request.args.get("opsiq_portal_return", "")), code=302)
    resp.headers["Referrer-Policy"] = "no-referrer"
    resp.headers["Cache-Control"] = "no-store"
    return resp

Django

1

Run: pip install pyjwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste the view into views.py and add path("support-portal/", views.support_portal) to urls.py. @login_required sends guests to LOGIN_URL and back.

Django
# pip install pyjwt   —   urls.py: path("support-portal/", views.support_portal)
import secrets, time, urllib.parse
import jwt
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect

PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

@login_required
def support_portal(request):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret:                                       # fail closed
        return HttpResponse("Support portal is not configured.", status=503)

    # Where to land: the portal page they came from, only if it is on the portal.
    back = request.GET.get("opsiq_portal_return", "").split("#", 1)[0]
    target = back if (back == PORTAL or back.startswith(PORTAL + "/") or back.startswith(PORTAL + "?")) else PORTAL

    now = int(time.time())
    token = jwt.encode({
        "site_key": "YOUR_SITE_KEY",
        "iat": now,
        "exp": now + 120,
        "authenticated": True,
        "jti": secrets.token_hex(16),
        "single_use": True,
        "platform": "django",
        "customer": {
            "id": request.user.pk,                        # REQUIRED
            "email": request.user.email,                  # REQUIRED
            "name": request.user.get_full_name(),
            "external_id": str(request.user.pk),
        },
    }, secret, algorithm="HS256")

    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    url = (target + ("&" if "?" in target else "?")
           + "site_key=" + urllib.parse.quote("YOUR_SITE_KEY", safe="")
           + "&identity_token=" + urllib.parse.quote(token, safe=""))
    resp = HttpResponseRedirect(url)
    resp["Referrer-Policy"] = "no-referrer"
    resp["Cache-Control"] = "no-store"
    return resp

.NET / C#

1

Run: dotnet add package System.IdentityModel.Tokens.Jwt

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Paste into Program.cs after app.UseAuthentication(). RequireAuthorization() sends guests to your login and back.

.NET / C#
// dotnet add package System.IdentityModel.Tokens.Jwt   —   Program.cs
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;

const string Portal = "https://YOUR-OPSIQ/portal/your-workspace";

app.MapGet("/support-portal", (HttpContext ctx, IConfiguration cfg) =>
{
    var secret = cfg["OpsIQ:SiteSecret"];
    if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
    if (string.IsNullOrEmpty(secret))                     // fail closed
        return Results.StatusCode(503);

    var id    = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "";   // REQUIRED
    var email = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "";            // REQUIRED
    var name  = ctx.User.Identity?.Name ?? "";

    // Where to land: the portal page they came from, only if it is on the portal.
    var back = (ctx.Request.Query["opsiq_portal_return"].ToString()).Split('#')[0];
    var target = (back == Portal || back.StartsWith(Portal + "/") || back.StartsWith(Portal + "?")) ? back : Portal;

    var key   = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret));
    var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
    var now   = DateTimeOffset.UtcNow;
    var payload = new JwtPayload
    {
        { "site_key",      "YOUR_SITE_KEY" },
        { "iat",           now.ToUnixTimeSeconds() },
        { "exp",           now.AddSeconds(120).ToUnixTimeSeconds() },
        { "authenticated", true },
        { "jti",           Guid.NewGuid().ToString("N") },
        { "single_use",    true },
        { "platform",      "dotnet" },
        { "customer", new Dictionary<string, object>
            { { "id", id }, { "email", email }, { "name", name }, { "external_id", id } } },
    };
    var token = new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(new JwtHeader(creds), payload));

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    var url = target + (target.Contains('?') ? "&" : "?")
        + "site_key=" + Uri.EscapeDataString("YOUR_SITE_KEY") + "&identity_token=" + Uri.EscapeDataString(token);
    ctx.Response.Headers["Referrer-Policy"] = "no-referrer";
    ctx.Response.Headers["Cache-Control"] = "no-store";
    return Results.Redirect(url);
}).RequireAuthorization();

Ruby on Rails

1

Add gem "jwt" to the Gemfile and run bundle install.

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment (or Rails credentials) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Save as app/controllers/support_controller.rb and add get "/support-portal", to: "support#portal" to routes.rb. Devise's authenticate_user! sends guests to login and back.

Ruby on Rails
# Gemfile: gem "jwt"   —   routes.rb: get "/support-portal", to: "support#portal"
require "jwt"
require "securerandom"
require "cgi"

class SupportController < ApplicationController
  before_action :authenticate_user!                      # login, then back here

  PORTAL = "https://YOUR-OPSIQ/portal/your-workspace"

  def portal
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    return head :service_unavailable if secret.blank?    # fail closed

    # Where to land: the portal page they came from, only if it is on the portal.
    back = params[:opsiq_portal_return].to_s.split("#").first.to_s
    target = (back == PORTAL || back.start_with?(PORTAL + "/", PORTAL + "?")) ? back : PORTAL

    now = Time.now.to_i
    token = JWT.encode({
      site_key:      "YOUR_SITE_KEY",
      iat:           now,
      exp:           now + 120,
      authenticated: true,
      jti:           SecureRandom.hex(16),
      single_use:    true,
      platform:      "rails",
      customer: {
        id:          current_user.id,                    # REQUIRED
        email:       current_user.email,                 # REQUIRED
        name:        current_user.try(:name).to_s,
        external_id: current_user.id.to_s
      }
    }, secret, "HS256")

    # Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    url = target + (target.include?("?") ? "&" : "?") +
          "site_key=#{CGI.escape("YOUR_SITE_KEY")}&identity_token=#{CGI.escape(token)}"
    response.headers["Referrer-Policy"] = "no-referrer"
    response.headers["Cache-Control"] = "no-store"
    redirect_to url, allow_other_host: true
  end
end

Java (Spring Boot)

1

Add io.jsonwebtoken:jjwt-api, jjwt-impl and jjwt-jackson (0.12+).

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret in application.properties (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace currentUser() with your user lookup. With Spring Security the route must be authenticated so guests go to login and back.

Java (Spring Boot)
// io.jsonwebtoken:jjwt-api / jjwt-impl / jjwt-jackson (0.12+)
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import jakarta.servlet.http.HttpServletResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.Instant;
import java.util.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.server.ResponseStatusException;
import org.springframework.web.servlet.view.RedirectView;

@Controller
public class SupportPortalController {
    private static final String PORTAL = "https://YOUR-OPSIQ/portal/your-workspace";

    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS SIGNED IN — replace with your own lookup: id, email, name. */
    private Map<String, Object> currentUser(Principal principal) {
        return Map.of("id", principal.getName(), "email", principal.getName(), "name", principal.getName());
    }

    @GetMapping("/support-portal")
    public RedirectView supportPortal(Principal principal, HttpServletResponse response,
                                      @RequestParam(name = "opsiq_portal_return", defaultValue = "") String back) {
        if (principal == null) return new RedirectView("/login");               // login, then back here
        if (secret.isEmpty()) throw new ResponseStatusException(HttpStatus.SERVICE_UNAVAILABLE);   // fail closed

        // Where to land: the portal page they came from, only if it is on the portal.
        back = back.split("#", 2)[0];
        String target = (back.equals(PORTAL) || back.startsWith(PORTAL + "/") || back.startsWith(PORTAL + "?")) ? back : PORTAL;

        Map<String, Object> user = currentUser(principal);
        Map<String, Object> customer = Map.of(
            "id",          user.get("id"),                 // REQUIRED
            "email",       user.get("email"),              // REQUIRED
            "name",        user.get("name"),
            "external_id", String.valueOf(user.get("id")));

        Instant now = Instant.now();
        String token = Jwts.builder()
            .claim("site_key", "YOUR_SITE_KEY")
            .claim("authenticated", true)
            .claim("single_use", true)                     // one-time link
            .claim("platform", "java")
            .claim("customer", customer)
            .id(UUID.randomUUID().toString())              // jti
            .issuedAt(Date.from(now))
            .expiration(Date.from(now.plusSeconds(120)))
            .signWith(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)), Jwts.SIG.HS256)
            .compact();

        // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
        String url = target + (target.contains("?") ? "&" : "?")
            + "site_key=" + URLEncoder.encode("YOUR_SITE_KEY", StandardCharsets.UTF_8)
            + "&identity_token=" + URLEncoder.encode(token, StandardCharsets.UTF_8);
        response.setHeader("Referrer-Policy", "no-referrer");
        response.setHeader("Cache-Control", "no-store");
        return new RedirectView(url);
    }
}

Go

1

Run: go get github.com/golang-jwt/jwt/v5

2

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

3

Replace currentUser() with your session lookup and register http.HandleFunc("/support-portal", supportPortal).

Go
// go get github.com/golang-jwt/jwt/v5
package main

import (
    "crypto/rand"
    "encoding/hex"
    "fmt"
    "net/http"
    "net/url"
    "os"
    "strings"
    "time"

    "github.com/golang-jwt/jwt/v5"
)

const portal = "https://YOUR-OPSIQ/portal/your-workspace"

type User struct{ ID, Email, Name string }

// WHO IS SIGNED IN — replace with your session lookup. Return nil for a guest.
func currentUser(r *http.Request) *User { return nil }

func supportPortal(w http.ResponseWriter, r *http.Request) {
    user := currentUser(r)
    if user == nil { // login, then back here
        http.Redirect(w, r, "/login?next="+url.QueryEscape(r.URL.RequestURI()), http.StatusFound)
        return
    }
    secret := os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if secret == "" { // fail closed
        http.Error(w, "Support portal is not configured.", http.StatusServiceUnavailable)
        return
    }

    // Where to land: the portal page they came from, only if it is on the portal.
    back := strings.SplitN(r.URL.Query().Get("opsiq_portal_return"), "#", 2)[0]
    target := portal
    if back == portal || strings.HasPrefix(back, portal+"/") || strings.HasPrefix(back, portal+"?") {
        target = back
    }

    jti := make([]byte, 16)
    rand.Read(jti)
    now := time.Now().Unix()
    token, err := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
        "site_key":      "YOUR_SITE_KEY",
        "iat":           now,
        "exp":           now + 120,
        "authenticated": true,
        "jti":           hex.EncodeToString(jti),
        "single_use":    true,
        "platform":      "go",
        "customer": map[string]any{
            "id":          user.ID,    // REQUIRED
            "email":       user.Email, // REQUIRED
            "name":        user.Name,
            "external_id": fmt.Sprint(user.ID),
        },
    }).SignedString([]byte(secret))
    if err != nil {
        http.Error(w, "sign failed", http.StatusInternalServerError)
        return
    }

    // Default target: https://YOUR-OPSIQ/portal/your-workspace?site_key=YOUR_SITE_KEY&identity_token=…
    sep := "?"
    if strings.Contains(target, "?") {
        sep = "&"
    }
    w.Header().Set("Referrer-Policy", "no-referrer")
    w.Header().Set("Cache-Control", "no-store")
    http.Redirect(w, r, target+sep+"site_key="+url.QueryEscape("YOUR_SITE_KEY")+"&identity_token="+url.QueryEscape(token), http.StatusFound)
}

Khi có chuyện không ổn

Cánh cổng mở ra, nhưng đã ký tên.

Khóa bí mật hay không gian làm việc không khớp với vùng làm việc này, hiệu bài là cũ hơn 120 giây (hãy kiểm tra đồng hồ máy phục vụ), hoặc liên kết tương tự đã được mở hai lần. Tạo một liên kết thử đã ký tên: nếu nó hoạt động, so sánh yêu cầu của bạn với ví dụ.

Nó luôn đáp xuống cánh cổng về nhà

Địa chỉ trả lời không có trong địa chỉ cổng của anh, nên nó đã bị bỏ qua URL đã được hiển thị trong thiết lập.

Khách bị lỗi thay vì đăng nhập của bạn

Thay thế /login trong lộ trình này với trang đăng nhập thật, và đảm bảo bạn sẽ nhận lại địa chỉ đã đưa ra.

Chỉ có khách hàng mới làm được

Khách hàng. email hay khách hàng. id là trống cho họ.

Nhà phát triển

Khách truy cập: nhận diện khách đăng nhập

Tùy chọn. Phần lớn nơi Mạng không cần: với đoạn chat thô sơ và kết nối, việc kiểm tra cuộc trò chuyện tự động cho khách hàng, với một số đặt hàng hoặc số thứ tự cộng với bằng chứng cho việc tra cứu và mã đã email trước khi sắp xếp. Thêm vào đây nếu bạn muốn một khách hàng đã đăng nhập vào trang web của bạn tự động nhận diện toàn bộ tài khoản của họ. WHMCS Chỗ ngồi từ xa, trang web, mã C, cùng mã số với chìa khóa trang web của anh.

Nó hoạt động thế nào?

1
Trang của bạn in thẻ trò chuyện

Đối với một khách hàng đã ký tên, ô điều khiển URL mang & theoidentity_token=... đã ký vào máy chủ của bạn, cho khách truy cập nó là một thẻ đơn giản. Không có gì bí mật trong trang này: chỉ có một dấu hiệu để chấm dứt.

2
Cuộc trò chuyện xác minh vật kỷ niệm

Ký hiệu, chìa khóa không gian làm việc và tiền lời. khách hàng được biết đến trên mọi yêu cầu chat, và người kết nối của bạn có thể trả lời về lệnh của họ, đặt chỗ hoặc hóa đơn.

3
Cuộc trò chuyện bắt đầu lại trước khi hết giờ

Nó gọi là trang mà nó đang đọc?opsiq_identity_refresh=1&role =customeridentity_token":"..." trong khi khách hàng được ký vào, hoặc 401 với{ "thành công" : Sai,"login_requiredSự thật là không, đó là lý do người quản lý cập nhật phải chạy trước khi trang của bạn in bất cứ thứ gì.

Nó khác với vật giữ cổng như thế nào

Thời gian sống

Một giờ (ex = iat + 3600) Thay vì 120 giây, bởi vì nó điều khiển mọi yêu cầu chat thay vì một chuyển hướng.

Không jti hay single_use

Cũng một dấu hiệu này được dùng cho mỗi thông điệp cho đến khi thay thế nó.

Cũng như mọi thứ khác.

site_keyiat, exp, xác thực: đúng, nền tảng, và khách hàng với một mã nhận diện cần thiết và email.

💡
Nhân dạng nói rằng khách hàng của WHO là. đặt hàng, đặt vé hoặc hóa đơn đến cuộc trò chuyện thông qua một kết nối: người gọi nền tảng của bạn APIhay là, khi nền tảng của bạn không có API, một bộ kết nối cộng với tập tin cầu (người xây dựng kết nối tạo ra một cái).
💡
Bí mật ký tặng đã được điền đầy đủ cho anh. Ở các trang web, trang web của bạn, mã C, mỗi ví dụ đã chứa bí mật của riêng trang này, vì vậy các mã đã được dán: không có gì để sao chép hoặc cấu hình. Ví dụ trên trang này hiển thị opsiq_whsec_YOUR_SITE_SECRET Mỗi ví dụ được tìm thấy OPSIQ_SITE_SECRET (hoặc cài đặt khung của riêng bạn, được đặt theo tên các ghi chú của nó) trên máy phục vụ trước và sử dụng nó khi nó được thiết lập, để bạn có thể di chuyển bí mật ra khỏi tập tin bất cứ khi nào bạn muốn, ví dụ để xoay nó mà không cần sửa đổi mã. Cách nào tập tin chạy trên máy chủ của bạn: không bao giờ dán nó vào trang Mạng hay trình duyệt JavaScriptvà không bao giờ cam kết nó vào kho công cộng, bởi vì bất cứ ai nắm giữ bí mật có thể ký tên như bất kỳ khách hàng hay nhân viên nào của bạn. WHMCS và Botble Không cần gì cả: WHMCS móc câu đến với bí mật được lấp đầy, và Botble Bảng kết nối sẽ lấp đầy nó vào cầu.

Toàn bộ mã, nền tảng theo nền tảng

WHMCS

Nothing to add: the WHMCS hook in Option 1 already signs your signed-in clients into the chat, refreshes the token on long visits, and signs staff into Admin Chat. No connector is needed for this.
1

Install the Option 1 hook as includes/hooks/opsiq_tracker.php. Do not also paste the plain chat tag.

2

Optional: add the WHMCS connector under Connectors if you also want the chat to answer about invoices, services and tickets. Identity works without it.

includes/hooks/opsiq_tracker.php
/* WHMCS: no extra code. Option 1 (the All-in-One WHMCS Hook) signs the signed-in
 * client into Client Chat, answers ?opsiq_identity_refresh=1 and signs staff into
 * Admin Chat. No connector is needed for identity. */

Botble (connector bridge)

Nothing to add for bookings: the Botble connector takes bookings as a guest checkout and finds existing bookings by booking number and proof, so guests do not need to sign in. Admins are signed in through the bridge (op=admin_embed).
1

Install the Botble connector under Connectors, copy its bridge file from the connector panel and upload it to public/. The panel fills in OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET for you.

2

Botble has no API, so the bridge file is how the chat reads rooms and takes bookings. To also recognise a guest who is already signed in on the hotel site, use the Laravel option with your customer guard.

public/opsiq-botble-bridge.php
/* Botble: no extra code for bookings.
 * The connector books as a guest checkout and finds bookings by booking number + proof.
 * In public/opsiq-botble-bridge.php fill OPSIQ_HOST, OPSIQ_SITE_KEY and OPSIQ_SITE_SECRET.
 * Admins: op=admin_embed */

PHP (no dependencies)

1

Save as opsiq-chat.php. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

At the very top of every page (or your front controller), before any output: require 'opsiq-chat.php'; opsiq_chat_refresh();

3

Just before </body> on every page: <?= opsiq_chat_tag() ?> — it replaces the plain chat tag. Replace opsiq_chat_user() with your signed-in customer.

opsiq-chat.php
<?php
/* opsiq-chat.php — signed-in customers for OpsIQ Client Chat. */

// WHO IS SIGNED IN — replace the body with your app's session. Return null for a guest.
function opsiq_chat_user(): ?array
{
    $u = $_SESSION['user'] ?? null;               // e.g. ['id' => 7, 'email' => '…', 'name' => '…']
    return is_array($u) && !empty($u['id']) && !empty($u['email']) ? $u : null;
}

function opsiq_chat_token(array $u): string
{
    $secret = (string) (getenv('OPSIQ_SITE_SECRET') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; the environment wins when set
    if ($secret === '') return '';                           // fail closed: plain chat, no identity
    $b64 = static fn($v) => rtrim(strtr(base64_encode(json_encode($v, JSON_UNESCAPED_SLASHES)), '+/', '-_'), '=');
    $now = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,                      // the widget refreshes before this
        'authenticated' => true,
        'platform'      => 'php',
        'customer'      => [
            'id'          => $u['id'],                       // REQUIRED
            'email'       => $u['email'],                    // REQUIRED
            'name'        => $u['name'] ?? '',
            'external_id' => (string) $u['id'],
        ],
    ]);
    return $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, $secret, true)), '+/', '-_'), '=');
}

// Call at the top of every page, before any output.
function opsiq_chat_refresh(): void
{
    if (empty($_GET['opsiq_identity_refresh'])) return;
    header('Content-Type: application/json; charset=utf-8');
    header('Cache-Control: no-store');
    $u = opsiq_chat_user();
    $t = $u ? opsiq_chat_token($u) : '';
    if ($t === '') { http_response_code(401); echo json_encode(['success' => false, 'login_required' => true]); exit; }
    echo json_encode(['success' => true, 'role' => 'customer', 'identity_token' => $t]);
    exit;
}

// Print before </body> on every page, instead of the plain chat tag.
function opsiq_chat_tag(): string
{
    $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
    $u = opsiq_chat_user();
    $t = $u ? opsiq_chat_token($u) : '';
    if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
    return '<script async src="' . htmlspecialchars($src, ENT_QUOTES) . '" data-opsiq-widget="client-chat"></script>';
}

Laravel

1

Run: composer require firebase/php-jwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET=… in .env with 'opsiq' => ['site_secret' => env('OPSIQ_SITE_SECRET')] in config/services.php on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Save the class as app/Support/OpsiqChat.php, and add the small OpsiqChatRefresh middleware from the bottom of the code to the web group, so the widget can refresh its token on any page.

3

In your main Blade layout, just before </body>: {!! \App\Support\OpsiqChat::tag() !!}

app/Support/OpsiqChat.php
<?php
// app/Support/OpsiqChat.php — composer require firebase/php-jwt
namespace App\Support;

use Firebase\JWT\JWT;

final class OpsiqChat
{
    public static function token(): string
    {
        $user = auth()->user();
        $secret = (string) (config('services.opsiq.site_secret') ?: 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; config wins when set
        if (!$user || $secret === '') return '';                 // guest, or not configured
        $now = time();
        return JWT::encode([
            'site_key'      => 'YOUR_SITE_KEY',
            'iat'           => $now,
            'exp'           => $now + 3600,
            'authenticated' => true,
            'platform'      => 'laravel',
            'customer'      => [
                'id'          => $user->id,                      // REQUIRED
                'email'       => $user->email,                   // REQUIRED
                'name'        => $user->name,
                'external_id' => (string) $user->id,
            ],
        ], $secret, 'HS256');
    }

    /** For Blade: {!! \App\Support\OpsiqChat::tag() !!} before </body>. */
    public static function tag(): string
    {
        $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
        $t = self::token();
        if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
        return '<script async src="' . e($src) . '" data-opsiq-widget="client-chat"></script>';
    }
}

/* Refresh: the widget asks ?opsiq_identity_refresh=1 on the page it is on.
 * Laravel 11+ — bootstrap/app.php:
 *
 *   ->withMiddleware(function ($middleware) {
 *       $middleware->web(append: \App\Http\Middleware\OpsiqChatRefresh::class);
 *   })
 *
 * app/Http/Middleware/OpsiqChatRefresh.php:
 *
 *   public function handle($request, \Closure $next) {
 *       if (!$request->query('opsiq_identity_refresh')) return $next($request);
 *       $t = \App\Support\OpsiqChat::token();
 *       return $t === ''
 *           ? response()->json(['success' => false, 'login_required' => true], 401)->header('Cache-Control', 'no-store')
 *           : response()->json(['success' => true, 'role' => 'customer', 'identity_token' => $t])->header('Cache-Control', 'no-store');
 *   }
 */

WordPress / WooCommerce

1

This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, add define('OPSIQ_SITE_SECRET', '…'); to wp-config.php instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Paste into your theme's functions.php or a small plugin. It prints the chat itself, so remove the plain chat tag if you added one.

3

For WooCommerce orders in the chat, add the WooCommerce connector under Connectors.

functions.php
/* functions.php or a small plugin — OpsIQ Client Chat with signed-in customers. */

if (!defined('OPSIQ_SITE_SECRET')) define('OPSIQ_SITE_SECRET', 'opsiq_whsec_YOUR_SITE_SECRET');   // this site's secret; wp-config.php wins when set

function opsiq_chat_token(): string {
    if (!is_user_logged_in() || !defined('OPSIQ_SITE_SECRET') || OPSIQ_SITE_SECRET === '') return '';
    $u   = wp_get_current_user();
    $b64 = static fn($v) => rtrim(strtr(base64_encode(wp_json_encode($v)), '+/', '-_'), '=');
    $now = time();
    $signing = $b64(['alg' => 'HS256', 'typ' => 'JWT']) . '.' . $b64([
        'site_key'      => 'YOUR_SITE_KEY',
        'iat'           => $now,
        'exp'           => $now + 3600,
        'authenticated' => true,
        'platform'      => 'wordpress',
        'customer'      => [
            'id'          => $u->ID,                     // REQUIRED
            'email'       => $u->user_email,             // REQUIRED
            'name'        => $u->display_name,
            'external_id' => (string) $u->ID,
        ],
    ]);
    return $signing . '.' . rtrim(strtr(base64_encode(hash_hmac('sha256', $signing, OPSIQ_SITE_SECRET, true)), '+/', '-_'), '=');
}

// Refresh: the widget asks ?opsiq_identity_refresh=1 on the page it is on.
add_action('init', function () {
    if (empty($_GET['opsiq_identity_refresh'])) return;
    nocache_headers();
    $t = opsiq_chat_token();
    if ($t === '') wp_send_json(['success' => false, 'login_required' => true], 401);
    wp_send_json(['success' => true, 'role' => 'customer', 'identity_token' => $t]);
});

// The chat tag, on every front-end page.
add_action('wp_footer', function () {
    $src = 'https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY';
    $t = opsiq_chat_token();
    if ($t !== '') $src .= '&identity_token=' . rawurlencode($t);
    echo '<script async src="' . esc_url($src) . '" data-opsiq-widget="client-chat"></script>';
});

Node.js / Express

1

Run: npm i jsonwebtoken. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

app.use(opsiqChat) after your session / passport middleware. It answers the refresh and sets res.locals.opsiqChatTag.

3

Print res.locals.opsiqChatTag (unescaped) just before </body> in your layout, instead of the plain chat tag.

opsiq-chat.js
// opsiq-chat.js — npm i jsonwebtoken
const jwt = require("jsonwebtoken");

function opsiqChatToken(user) {
  const secret = process.env.OPSIQ_SITE_SECRET || "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; the environment wins when set
  if (!user || !secret) return "";
  return jwt.sign({
    site_key: "YOUR_SITE_KEY",
    authenticated: true,
    platform: "node",
    customer: { id: user.id, email: user.email, name: user.name, external_id: String(user.id) },  // id + email REQUIRED
  }, secret, { algorithm: "HS256", expiresIn: 3600 });     // sets iat + exp
}

// app.use(opsiqChat) — after your session / passport middleware.
function opsiqChat(req, res, next) {
  const token = opsiqChatToken(req.user);
  if (req.query.opsiq_identity_refresh) {                  // the widget refreshing on this page
    res.set("Cache-Control", "no-store");
    return token
      ? res.json({ success: true, role: "customer", identity_token: token })
      : res.status(401).json({ success: false, login_required: true });
  }
  const src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (token ? "&identity_token=" + encodeURIComponent(token) : "");
  res.locals.opsiqChatTag = '<script async src="' + src.replace(/"/g, """) + '" data-opsiq-widget="client-chat"></script>';
  next();
}

module.exports = { opsiqChat };

Python (Flask)

1

Run: pip install pyjwt flask-login. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Call init_opsiq_chat(app) where you create the app. It answers the refresh and gives templates opsiq_chat_tag.

3

In your base template, just before </body>: {{ opsiq_chat_tag }}

opsiq_chat.py
# opsiq_chat.py — pip install pyjwt flask-login
import os, time, urllib.parse
import jwt
from flask import request, jsonify
from flask_login import current_user
from markupsafe import Markup, escape

def opsiq_chat_token():
    secret = os.environ.get("OPSIQ_SITE_SECRET") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    if not secret or not current_user.is_authenticated:
        return ""
    now = int(time.time())
    return jwt.encode({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "python",
        "customer": {"id": current_user.id, "email": current_user.email,       # REQUIRED
                     "name": getattr(current_user, "name", ""), "external_id": str(current_user.id)},
    }, secret, algorithm="HS256")

def init_opsiq_chat(app):
    @app.before_request
    def _opsiq_refresh():
        if request.args.get("opsiq_identity_refresh"):
            t = opsiq_chat_token()
            resp = jsonify({"success": True, "role": "customer", "identity_token": t}) if t \
                else (jsonify({"success": False, "login_required": True}), 401)
            if isinstance(resp, tuple):
                resp[0].headers["Cache-Control"] = "no-store"
            else:
                resp.headers["Cache-Control"] = "no-store"
            return resp

    @app.context_processor
    def _opsiq_tag():
        t = opsiq_chat_token()
        src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + ("&identity_token=" + urllib.parse.quote(t, safe="") if t else "")
        return {"opsiq_chat_tag": Markup('<script async src="%s" data-opsiq-widget="client-chat"></script>' % escape(src))}

Django

1

Run: pip install pyjwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in settings.py (for example os.environ["OPSIQ_SITE_SECRET"]) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Add "yourapp.opsiq_chat.OpsiqChatMiddleware" to MIDDLEWARE (after AuthenticationMiddleware) and "yourapp.opsiq_chat.opsiq_chat" to TEMPLATES context_processors.

3

In your base template, just before </body>: {{ opsiq_chat_tag }}

opsiq_chat.py
# yourapp/opsiq_chat.py — pip install pyjwt
import time, urllib.parse
import jwt
from django.conf import settings
from django.http import JsonResponse
from django.utils.html import format_html

def opsiq_chat_token(user):
    secret = getattr(settings, "OPSIQ_SITE_SECRET", "") or "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; settings win when set
    if not secret or not user.is_authenticated:
        return ""
    now = int(time.time())
    return jwt.encode({
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": True, "platform": "django",
        "customer": {"id": user.pk, "email": user.email,             # REQUIRED
                     "name": user.get_full_name(), "external_id": str(user.pk)},
    }, secret, algorithm="HS256")

class OpsiqChatMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response
    def __call__(self, request):
        if request.GET.get("opsiq_identity_refresh"):
            t = opsiq_chat_token(request.user)
            resp = (JsonResponse({"success": True, "role": "customer", "identity_token": t}) if t
                    else JsonResponse({"success": False, "login_required": True}, status=401))
            resp["Cache-Control"] = "no-store"
            return resp
        return self.get_response(request)

def opsiq_chat(request):
    t = opsiq_chat_token(request.user)
    src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + ("&identity_token=" + urllib.parse.quote(t, safe="") if t else "")
    return {"opsiq_chat_tag": format_html('<script async src="{}" data-opsiq-widget="client-chat"></script>', src)}

.NET / C#

1

Run: dotnet add package System.IdentityModel.Tokens.Jwt. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OpsIQ:SiteSecret (user-secrets, the OpsIQ__SiteSecret environment variable or Key Vault) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

In Program.cs, after app.UseAuthentication(): app.Use(OpsiqChat.Refresh);

3

In _Layout.cshtml before </body>: @Html.Raw(OpsiqChat.Tag(Context))

OpsiqChat.cs
// OpsiqChat.cs — dotnet add package System.IdentityModel.Tokens.Jwt
using System.IdentityModel.Tokens.Jwt;
using System.Net;
using System.Security.Claims;
using System.Text;
using Microsoft.IdentityModel.Tokens;

public static class OpsiqChat
{
    public static string Token(HttpContext ctx)
    {
        var secret = ctx.RequestServices.GetRequiredService<IConfiguration>()["OpsIQ:SiteSecret"];
        if (string.IsNullOrEmpty(secret)) secret = "opsiq_whsec_YOUR_SITE_SECRET";   // this site's secret; configuration wins when set
        if (string.IsNullOrEmpty(secret) || ctx.User.Identity?.IsAuthenticated != true) return "";
        var id = ctx.User.FindFirstValue(ClaimTypes.NameIdentifier) ?? "";      // REQUIRED
        var email = ctx.User.FindFirstValue(ClaimTypes.Email) ?? "";            // REQUIRED
        var creds = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secret)), SecurityAlgorithms.HmacSha256);
        var now = DateTimeOffset.UtcNow;
        var payload = new JwtPayload {
            { "site_key", "YOUR_SITE_KEY" }, { "iat", now.ToUnixTimeSeconds() }, { "exp", now.AddSeconds(3600).ToUnixTimeSeconds() },
            { "authenticated", true }, { "platform", "dotnet" },
            { "customer", new Dictionary<string, object> { { "id", id }, { "email", email }, { "name", ctx.User.Identity?.Name ?? "" }, { "external_id", id } } },
        };
        return new JwtSecurityTokenHandler().WriteToken(new JwtSecurityToken(new JwtHeader(creds), payload));
    }

    // app.Use(OpsiqChat.Refresh) — the widget refreshing on the page it is on.
    public static async Task Refresh(HttpContext ctx, Func<Task> next)
    {
        if (string.IsNullOrEmpty(ctx.Request.Query["opsiq_identity_refresh"])) { await next(); return; }
        ctx.Response.Headers["Cache-Control"] = "no-store";
        var t = Token(ctx);
        if (t == "") { ctx.Response.StatusCode = 401; await ctx.Response.WriteAsJsonAsync(new { success = false, login_required = true }); return; }
        await ctx.Response.WriteAsJsonAsync(new { success = true, role = "customer", identity_token = t });
    }

    public static string Tag(HttpContext ctx)
    {
        var t = Token(ctx);
        var src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t != "" ? "&identity_token=" + Uri.EscapeDataString(t) : "");
        return "<script async src=\"" + WebUtility.HtmlEncode(src) + "\" data-opsiq-widget=\"client-chat\"></script>";
    }
}

Ruby on Rails

1

Add gem "jwt" and run bundle install. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

include OpsiqChat in ApplicationController.

3

In app/views/layouts/application.html.erb before </body>: <%= opsiq_chat_tag %>

app/controllers/concerns/opsiq_chat.rb
# app/controllers/concerns/opsiq_chat.rb — Gemfile: gem "jwt"
require "jwt"
require "cgi"

module OpsiqChat
  extend ActiveSupport::Concern

  included do
    before_action :opsiq_identity_refresh
    helper_method :opsiq_chat_tag
  end

  private

  def opsiq_chat_token
    secret = ENV["OPSIQ_SITE_SECRET"].presence || "opsiq_whsec_YOUR_SITE_SECRET"   # this site's secret; the environment wins when set
    return "" if secret.blank? || !respond_to?(:current_user, true) || current_user.nil?
    now = Time.now.to_i
    JWT.encode({
      site_key: "YOUR_SITE_KEY", iat: now, exp: now + 3600,
      authenticated: true, platform: "rails",
      customer: { id: current_user.id, email: current_user.email,          # REQUIRED
                  name: current_user.try(:name).to_s, external_id: current_user.id.to_s }
    }, secret, "HS256")
  end

  def opsiq_identity_refresh
    return unless params[:opsiq_identity_refresh].present?
    response.headers["Cache-Control"] = "no-store"
    t = opsiq_chat_token
    return render(json: { success: false, login_required: true }, status: :unauthorized) if t.blank?
    render json: { success: true, role: "customer", identity_token: t }
  end

  def opsiq_chat_tag
    t = opsiq_chat_token
    src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t.present? ? "&identity_token=#{CGI.escape(t)}" : "")
    helpers.tag.script(nil, async: true, src: src, data: { opsiq_widget: "client-chat" })
  end
end

Java (Spring Boot)

1

Add io.jsonwebtoken:jjwt-api, jjwt-impl and jjwt-jackson (0.12+). This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set opsiq.site.secret (for example from OPSIQ_SITE_SECRET) on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your user lookup. The filter answers the refresh on every page; @ControllerAdvice exposes opsiqChatTag to views.

3

Thymeleaf layout before </body>: <th:block th:utext="${opsiqChatTag}"/>

OpsiqChat.java
// OpsiqChat.java — io.jsonwebtoken:jjwt-api / jjwt-impl / jjwt-jackson (0.12+)
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.security.Principal;
import java.time.Instant;
import java.util.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.util.HtmlUtils;

@Component
@ControllerAdvice
public class OpsiqChat implements Filter {
    @Value("${opsiq.site.secret:opsiq_whsec_YOUR_SITE_SECRET}")   // this site's secret; opsiq.site.secret wins when set
    private String secret;

    /** WHO IS SIGNED IN — replace with your lookup: id, email, name. Null for a guest. */
    private Map<String, Object> currentUser(Principal p) {
        return p == null ? null : Map.of("id", p.getName(), "email", p.getName(), "name", p.getName());
    }

    String token(HttpServletRequest req) {
        Map<String, Object> u = currentUser(req.getUserPrincipal());
        if (u == null || secret.isEmpty()) return "";
        Instant now = Instant.now();
        return Jwts.builder()
            .claim("site_key", "YOUR_SITE_KEY").claim("authenticated", true).claim("platform", "java")
            .claim("customer", Map.of("id", u.get("id"), "email", u.get("email"), "name", u.get("name"),
                                      "external_id", String.valueOf(u.get("id"))))          // id + email REQUIRED
            .issuedAt(Date.from(now)).expiration(Date.from(now.plusSeconds(3600)))
            .signWith(Keys.hmacShaKeyFor(secret.getBytes(StandardCharsets.UTF_8)), Jwts.SIG.HS256)
            .compact();
    }

    @Override // the widget refreshing on the page it is on
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        if (req.getParameter("opsiq_identity_refresh") == null) { chain.doFilter(request, response); return; }
        HttpServletResponse res = (HttpServletResponse) response;
        res.setHeader("Cache-Control", "no-store");
        res.setContentType("application/json");
        String t = token(req);
        if (t.isEmpty()) { res.setStatus(401); res.getWriter().write("{\"success\":false,\"login_required\":true}"); return; }
        res.getWriter().write("{\"success\":true,\"role\":\"customer\",\"identity_token\":\"" + t + "\"}");
    }

    @ModelAttribute("opsiqChatTag")
    public String tag(HttpServletRequest req) {
        String t = token(req);
        String src = "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY" + (t.isEmpty() ? "" : "&identity_token=" + URLEncoder.encode(t, StandardCharsets.UTF_8));
        return "<script async src=\"" + HtmlUtils.htmlEscape(src) + "\" data-opsiq-widget=\"client-chat\"></script>";
    }
}

Go

1

Run: go get github.com/golang-jwt/jwt/v5. This site's signing secret is already filled in, so the code works as pasted. To keep it out of the file, set OPSIQ_SITE_SECRET in the environment on the server instead: that value is used first. Keep this file on the server and never commit it to a public repository.

2

Replace currentUser() with your session lookup, and wrap your router: http.ListenAndServe(addr, OpsiqChatRefresh(mux)).

3

Pass OpsiqChatTag(r) to your layout template and print it before </body>.

opsiq_chat.go
// opsiq_chat.go — go get github.com/golang-jwt/jwt/v5
package main

import (
    "encoding/json"
    "fmt"
    "html"
    "html/template"
    "net/http"
    "net/url"
    "os"
    "time"

    "github.com/golang-jwt/jwt/v5"
)

type OpsiqUser struct{ ID, Email, Name string }

// WHO IS SIGNED IN — replace with your session lookup. Return nil for a guest.
func currentUser(r *http.Request) *OpsiqUser { return nil }

func opsiqChatToken(r *http.Request) string {
    u, secret := currentUser(r), os.Getenv("OPSIQ_SITE_SECRET")
    if secret == "" {
        secret = "opsiq_whsec_YOUR_SITE_SECRET" // this site's secret; the environment wins when set
    }
    if u == nil || secret == "" {
        return ""
    }
    now := time.Now().Unix()
    t, err := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
        "site_key": "YOUR_SITE_KEY", "iat": now, "exp": now + 3600,
        "authenticated": true, "platform": "go",
        "customer": map[string]any{"id": u.ID, "email": u.Email, "name": u.Name, "external_id": fmt.Sprint(u.ID)}, // id + email REQUIRED
    }).SignedString([]byte(secret))
    if err != nil {
        return ""
    }
    return t
}

// OpsiqChatRefresh answers the widget's ?opsiq_identity_refresh=1 on any page.
func OpsiqChatRefresh(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        if r.URL.Query().Get("opsiq_identity_refresh") == "" {
            next.ServeHTTP(w, r)
            return
        }
        w.Header().Set("Cache-Control", "no-store")
        w.Header().Set("Content-Type", "application/json")
        if t := opsiqChatToken(r); t != "" {
            json.NewEncoder(w).Encode(map[string]any{"success": true, "role": "customer", "identity_token": t})
            return
        }
        w.WriteHeader(http.StatusUnauthorized)
        json.NewEncoder(w).Encode(map[string]any{"success": false, "login_required": true})
    })
}

// OpsiqChatTag is printed before </body> in your layout.
func OpsiqChatTag(r *http.Request) template.HTML {
    src := "https://YOUR-OPSIQ/widget.php?site_key=YOUR_SITE_KEY"
    if t := opsiqChatToken(r); t != "" {
        src += "&identity_token=" + url.QueryEscape(t)
    }
    return template.HTML(`<script async src="` + html.EscapeString(src) + `" data-opsiq-widget="client-chat"></script>`)
}

Khi có chuyện không ổn

Cuộc trò chuyện đối xử với khách hàng đăng nhập như một vị khách

Thẻ đã được in không có identity_token ( mấy mật mã bị thiết kế trên máy chủ, nên mã đã bị đóng) hay chìa khóa vùng làm việc hay bí mẫu của nó không trùng nhau.

Ban đầu nhận ra, rồi sau khoảng một giờ, một vị khách được mời đến chơi.

Chưa tới trình quản lý cập nhật: nó phải chạy trước khi có kết xuất nào, trên mỗi trang kết xuất thông tin liên tục.

Cuộc trò chuyện bình thường diễn ra hai lần

Gỡ bỏ thẻ chat đồng đều ra mẫu của bạn: mã này in chính bộ đàm.

Nhà phát triển

Bổ sung và SDK

OpsIQ cung cấp SDK Gói và bổ sung cho nền tảng chung.

Nó hoạt động thế nào?
Bổ sung và SDKBốn gói: PHP SDK, Node.js SDK, WordPress bổ sung và WHMCS module, mỗi người có lệnh cài đặt.PHPPHPSDKNhà soạn nhạc cần thiết opsiq/sdkJSNode.jsSDKnpm I @opsiq/sdkWPWordPress bổ sungNhấn một lần để cài đặt kết nốiWHWHMCSmoduleThêm vào để chuyển tiếp vé cho Billing +
Bổ sung và SDKs
PHPSDK

Gói soạn thảo: thế hệ biểu tượng, hành động API Trợ giúp, kiểm tra kỹ thuật mạng.

JavaScript SDK

Bên duyệt: theo dõi, danh tính, sự kiện tùy chỉnh, điều khiển chat.

WordPress bổ sung

Tiêm từ xa, nhận dạng người dùng WP, WooCommerce Đồng bộ.

WHMCSmodule

Sự tích hợp đầy đủ: ô điều khiển, chuyển tiếp vé, danh tính, Quản trị Quản trị.

Shopify Phần mở rộng sắc thái

Ứng dụng mô phỏng với danh tính khách hàng tự động.

PHP SDK chạy nhanh

PHP SDK ví dụ
composer require opsiq/sdk

use OpsIQ\SDK\Identity;
$token = Identity::createToken(
    siteKey: "site_abc123",
    secret:  "opsiq_whsec_your_secret",
    customer: ["id" => "cust_1001", "email" => "[email protected]", "name" => "Jane"]
);

// Call any catalog action over the action API
$ch = curl_init("https://your-opsiq.com/api/v1.php");
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer opq_your_key",
        "Content-Type: application/json",
    ],
    CURLOPT_POSTFIELDS => json_encode([
        "action" => "crm.contacts.list",
        "status" => "lead",
        "limit"  => 25,
    ]),
]);
$contacts = json_decode(curl_exec($ch), true);
Nhà phát triển

Khảo sát API sự kiện và tự động kết nối

Phòng khảo sát được thiết kế để sử dụng chung loại API, người thi hành nội bộ, xe buýt sự kiện và webok hoạt động như phần còn lại của OpsIQ Điều này cho phép các nhà phát triển tích hợp kết thúc mà không xây dựng một kết nối gói.

⚠️
Trạng thái chấn động: danh mục trực tiếp chỉ phơi bày platform.get.survey.configplatform.save.survey.configCái surveys.*feedback.* Các gia đình bên dưới là hợp đồng được chấp thuận và phải trở về unknown_action Cho đến khi đăng ký.

Mục tiêu hành động gia đình

Kiểu, mẫu và phóng nhanh

surveys.types.*, surveys.templates.*surveys.quick_launch.* danh sách, xem thử, bắt đầu ngay lập tức và xác thực hoàn chỉnh.

Khảo sát và phiên bản

surveys.create|get|list|update|archive|duplicate cộng với phiên bản không thay đổi, xác nhận và xuất bản hành động.

Triển khai mục tiêu

surveys.deployments.*, surveys.links.*, surveys.audiences.*, surveys.triggers.*surveys.variables.*.

Vượt quá và phản ứng

surveys.invitations.*, surveys.campaigns.*, surveys.recipients.*, surveys.responses.*Xuất khẩu, phân tích và phân tích.

Webhooks, nhập và phản hồi

surveys.webhooks.*, surveys.imports.*, feedback.items.*, feedback.analytics.*, feedback.sources.*feedback.analysis.*.

Lưu lượng không kết nối

1
Tạo và xuất bản thông qua Chung API

Sử dụng các khảo sát gõ.* Hành động với một phím không gian được gắn vào. Viết ra giấy phép, rủi ro, xác nhận, tính chất toàn năng và hành vi chạy khô.

2
Nhận sự kiện kinh doanh của bạn

Gửi một sự kiện đã được ký đến một cây móc trang web đang trên đường tới, chẳng hạn như lệnh hủy bỏ hoặc hoàn tất bước lên tàu. Hãy tái tạo lại trình bảo vệ nhân dạng sự kiện.

3
Ánh xạ trong hành động và kích hoạt

Chọn một OpsIQ Chung API Những hành động như đưa ra giấy mời khảo sát hoặc chuẩn bị một chiến dịch, sau đó là bản đồ từ trọng tải đã được kiểm tra.

4
Theo dõi các sự kiện khảo sát

Giao cho bạn một cuộc khảo sát an toàn về kinh doanh. * Một bộ xe đạp cứu hộ đến cuối cùng với chữ ký, bộ lọc, thử lại, đăng nhập và được phép xem lại.

Đối tượng sự kiện chuẩn

Danh mục chung sẽ bao gồm khảo sát/ kinh doanh công ty, thính giả và kích hoạt quyết định, giấy mời, sản xuất/ mở/try/partial/resume/abapoon, phản ứng lại, tình trạng chiến dịch và thất bại giao hàng. tiêu điểm cao và thời gian câu hỏi ở lại trong phòng khảo sát Analytics ngoại trừ được ghi nhận rõ ràng cho fan-out.

Một kết nối là tùy chọn. nó thêm vào một nền tảng có thể tái phát hiện, xác nhận danh tính, thực tế, biến số và nhân dạng người nhận. API Thêm hành động & gây nên/ hạitoks vẫn còn lại đường dẫn hợp nhất đầy đủ cho các nhà phát triển không cần một kết nối gói.
Nhà phát triển

RORT API

Hạt OpsIQ RORT API Cho phép bạn lập trình truy cập tất cả các tính năng nền tảng.

Nó hoạt động thế nào?
RORT APIMột thiết bị cuối hiển thị một PST tới OpsIQ API Với một chìa khóa mang tên, liệt kê vé mở và trang web JSON Trả lời đi.$ curl -X POST https://your-domain.com/api/v1.php \-H "Authorization: Bearer opq_..."200 Được rồi{ "data": [{ "id": 4192, "ticket_number": "T-4192","subject": "Card declined", "status": "open" },... more tickets ...], "page": 1, "per_page": 50, "has_more": true }
RORT API

Định dạng yêu cầu

Gửi chìa khóa Authorization: Bearer opq_... hay X-OpsIQ-Key: opq_...Dùng một đầu trang xác thực, không phải cả hai.

API Định dạng yêu cầu
POST https://your-opsiq-domain.com/api/v1.php
Authorization: Bearer opq_your_api_key
# Alternative header: X-OpsIQ-Key: opq_your_api_key
Content-Type: application/json

{
  "action": "endpoint.name",
  "site_key": "site_abc123"
}

Hành động thông thường

Hạt API là dựa trên hành động: gửi a action Tên trong xác, mọi nhà quản trị đăng ký. JSON Thao tác có tên gọi ổn định. {"action":"meta.actions"} (không cần thiết khóa) cho danh sách có thẩm quyền, mỗi cài đặt, hợp đồng yêu cầu, siêu dữ liệu rủi ro và phạm vi. platform.routes.* Cây cầu chỉ còn lại cho sự hợp nhất lâu đời.

crm.contacts.list

Đường CRM liên lạc ( ống kínhcrmParams: q, trạng thái, nguồn, thẻ, điểm chì, giới hạn.

crm.contacts.upsert

Giải quyết-hay tạo liên lạc (tiểu đồ tần xuất). Biểu tượng: email cộng với trường, thẻ, ghi chú.

crm.deals.list

Liệt kê các thỏa thuận CRM ( ống kính crm. read). Cho phép: trạng thái, giai đoạn_d, công ty_id, _d-id, người sở hữu_admin_id , ống dẫn_id (d), giới hạn.

crm.activities.record

Ghi lại hoạt động lặp lại/ thương mại để liên lạc (lomp crm. Writes). Biểu tượng: email hoặc liên lạc_id, sự kiện, giá trị, tiền tệ.

crm.conversions.record

Ghi chép một chuyển đổi (dấu nối. Ghi rõ). Đối tượng: liên lạc_id hoặc email, chuyển đổi kiểu , giá trị, tiền tệ.

crm.events.list

Phân tích luồng sự kiện CRM (tiểu đồ tần xuất).

tickets.list

Vé danh sách (xem vé. Đọc). Tham số: trang, mỗi trang, sắp xếp, thứ tự, trạng thái, ưu tiên, bộ phận_d, chỉ định_admin_id, trạm_mail, tìm kiếm.

tickets.get

Một vé và tin nhắn (xem vé. Đọc). Cho phép: vé_d/ vé_ số, bao gồm_ thông báo, tin_ giới hạn.

tickets.reply

Gửi trả lời cho vé (xem vé. ghi). Cho xem danh sách các tác giả: _d_id_ ect, body, act_ type, crix_ name, inside.

tickets.update

Cập nhật vé (xem vé. Ghi). Cho phép: vé_d_ số_ ect_ e_ et, trạng thái, ưu tiên, chủ đề, bộ phận_d, chỉ_admin_id.

tickets.open

Mở một vé hỗ trợ (xem vé. Writes). Cho phép thử: thư_ khách_ ra, tên khách, chủ đề, thân_thể, ưu tiên.

tickets.bulk

Chạy một thao tác hàng đợi quá lớn ( vé. ghi). Tham số: thao tác, mã nhận diện.

conversations.list

Liệt kê các cuộc đối thoại mạng (xem cuộc trò chuyện bằng ống kính). Cho phép đọc trang, trên 1_ trang, trạng thái, chỉ định_admin_id, trạm khách_ email, tìm kiếm.

conversations.get

Một cuộc đối thoại và tin nhắn (nhận). Cho phép: giao tiếp id_id hoặc thread_key, gồm cả_ thông báo.

conversations.messages

Lịch sử thông điệp trang (xem cuộc trò chuyện bằng ống kính). Cho dù: talk_id, page, per_page, bao gồm_i nội bộ.

conversations.send

Gửi tin nhắn vào cuộc đối thoại (những cuộc đối chuyện bằng ống kính. Ghi rõ). Cho nên hãy để lại lời nhắn: "nights" (d), message, sever_ type, inside.

conversations.update

Gán đổi, re-status hoặc đặt lại một cuộc đối thoại (những cuộc đối chuyện bằng ống kính). Cho phép ghi: đối thoại _d, trạng thái, chỉ định_admin_id, chủ đề.

Kết nối. list / . get / .. test

Xem các máy nối nào được cài đặt, mỗi người có thể làm gì, và liệu nó có hoạt động được hay không (những vật nối kính. Đọc).

automations.actions.list

Những hành động mà người xây dựng hành động của bạn sẽ chạy (tự động đọc).

automations.triggers.list

Điều gì sẽ phát ra và điều kiện nào (tự động đọc).

automations.runs.list

Thực hiện lịch sử gỡ lỗi khi trộn (tự động đọc). Tham số: trạng thái, hành động_key.

departments.list

Ban quản lý có thể gửi vé đến (xem. read).

notifications.list

Thông báo cho một người điều hành (nhận thông báo từ máy ảnh. Đọc). Cho phép: admin_id (đã yêu cầu), chưa đọc chỉ.

analytics.export

Phần báo cáo như CSV Biểu tượng: phần, định sẵn, từ, đến.

_Thư mục . list./. reports. list.

Theo dõi địa điểm và các trang của chúng SEO báo cáo (địa điểm tiềm thức tiềm năng. read).

Thương mại. sản phẩm. list. get.. get

Mục lục các cửa sổ, trang (đã đọc ống kính). Bộ lọc: hoạt động, phân loại, tìm kiếm. .get và một sản phẩm với biến thể của nó.

Thương mại. hàng. list /. get.

Thứ tự lưu (truyền thống. Đọc). Bộ lọc: trạng thái, payment_methodkênh, customer_emailTìm một cái bằng order_id Các thiết bị kiểm tra trực tuyến không bao giờ được trả lại.

commerce.refunds.list

Yêu cầu từ chối và tình trạng (các thương mại kính. read).

commerce.quotes.create

Giá một món đồ cho khách hàng (các thương mại kính. ghi rõ). Nguồn gốc store hoặc một viên đạn liên kết. tạo ra không có gì: không có trật tự, không thanh toán.

vé.csat.list/. get // mtric

Đáp ứng tự chọn theo dữ liệu (xem vé. Đọc). Lọc theo đánh giá, vé, tác vụ hay chu kỳ; .metrics trả lại các con số tương tự bảng điều khiển hiển thị.

conversations.ratings.list

Cuộc trò chuyện qua loa mà khách đến thăm đánh giá bằng lời bình luận, điều gì khiến người ta đánh giá cao và đặc vụ được công nhận (những cuộc đối thoại bằng kính hiển vi).

knowledge.articles.list

Trang qua các bài Trung tâm Trợ giúp (tạp chí kb. read).

knowledge.articles.get

Một bài báo Trung tâm Trợ giúp bằng ID (tờ kb. read). Cho nên hãy kiểm tra lại.

webhooks.events.list

Mỗi sự kiện bạn có thể đăng ký một điểm kết thúc web với trọng tải của nó.

files.get

Liên kết tải về đã ký ngắn hạn cho việc gửi tập tin (tread). Params: tham chiếu, ttl.

security.check

Hỏi xem có IP hoặc email bị chặn hoặc nghi ngờ ở đây (xem bảo mật. read) kết hợp các IP Tường lửa, danh sách ghi chép vé và bản tuyên án AI bảo mật lưu trữ. ip Email.

security.report

@ info/ rich ip Email, tử tế, lý do, nguồn tin.

Bảo vệ. danh sách bảo mật. add /. list

Quản lý thư rác quy định các đường ống dẫn đăng ký vé (bảo mật kính. viết/ đọc). Cùng một cửa hàng với trình quản lý Tickets trang "Block Gửi". Cho phép: tốt (mail, miền,ip), giá trị, lý do, hết giờ.

💡
Siêu vi hành động luôn có thẩm quyền. Nó trả lại mọi hành động sẵn sàng trong cài đặt của bạn với phạm vi mà mỗi người cần, vì vậy bạn không bao giờ phải đoán hay mã hóa dữ liệu này.

& Xuất ra danh sách

Mỗi hành động danh sách sử dụng cùng một tham số, vì vậy bạn học chúng một lần.

trang/ 1 trang

Số trang bắt đầu tại 1mặc định 50, tối đa 200 Giới hạn và sự bù đắp cũng được chấp nhận nếu bạn thích.

sắp xếp / thứ tự

Trường để sắp xếp theo, và ac hoặc desc (mặc định dec). Mỗi hành động chấp nhận một tập hợp các trường cố định; bất cứ điều gì khác bị bỏ qua thay vì lỗi.

filters

Gửi bộ lọc là đối tượng, hoặc chuyển một bộ lọc thành tham số cấp cao. Bộ lọc không rõ bị bỏ qua.

Cái gì quay lại

mục, trang, danh sách, số và có _nhiều hơn. Hãy yêu cầu trang cho đến khi có_ thêm là sai.

Yêu cầu danh sách đã trang, đã lọc, sắp xếp
POST /api/v1.php
Authorization: Bearer opq_your_api_key

{
  "action": "tickets.list",
  "status": "open",
  "priority": "urgent",
  "sort": "created_at",
  "order": "desc",
  "page": 1,
  "per_page": 50
}

Lỗi

Mọi thất bại đều có hình dạng giống nhau, với một cái chuồng ngựa. code Không được khớp với con người error tin nhắn, có thể được viết lại.

Đáp ứng lỗi
{
  "success": false,
  "code": "missing_scope",
  "error": "API key missing required scope. Needed one of: tickets.read, admin",
  "request_id": "req_8f2c1a9d4b7e"
}
Thiếu _api_key / không hợp lệ_ap_key

Không có phím nào được gửi, hoặc khóa là sai hoặc hết hạn. HTTP 401.

missing_scope

Phím là hợp lệ nhưng thiếu phạm vi cần thiết. HTTP 403.

chỉ_ phục hồi_ trang

Chìa khóa chỉ được đọc, hoặc hành động này không nằm trong danh sách cho phép của nó. HTTP 403.

unknown_action

Không có hành động như vậy. Gọi siêu hành động cho danh sách hiện thời. HTTP 400.

Thiếu _xaam / không hợp lệ_paameter

Một tham số cần thiết không được chấp nhận, hoặc không chấp nhận. HTTP 400.

not_found

Lịch không tồn tại, hoặc không có trong vùng làm việc phím này có thể xem. HTTP 404.

plan_feature_locked

Kế hoạch của anh không bao gồm tính năng hành động này thuộc về. featurecái plan_name trong vũ khí và một upgrade_urlViệc thử lại sẽ không giúp đỡ; kế hoạch phải thay đổi. HTTP402.

license_required

Giấy phép cài đặt không hoạt động nên sẽ không có hành động nào chạy cho đến khi nó được phục hồi. HTTP402.

selling_paused

Cụ thể: cửa hàng đã bị cắt, nên không thể trích dẫn hay đặt hàng. HTTP400.

rate_limited

Giới hạn giờ cho khóa này đã được dùng. HTTP 429.

server_error

Có gì đó không ổn về phía chúng tôi. Yêu cầu để xác định nếu bạn cần báo cáo nó. HTTP 500.

Các phần bổ sung an toàn

Nếu một chữ viết ra thời gian bạn không thể biết được nó đã hạ cánh chưa. idempotency_key và một lặp lại của cùng một cuộc gọi trả lại kết quả ban đầu thay vì làm công việc hai lần.

Ghi bất lực
{
  "action": "tickets.reply",
  "ticket_id": 4192,
  "body": "Thanks, that is now fixed.",
  "idempotency_key": "your-unique-id-for-this-attempt"
}
Nó kéo dài bao lâu

Name 24 giờ chống lại cùng một hành động và API Chìa khóa.

Những gì bạn nhận được

Phản ứng ban đầu, cộng với sự đồng nhất_replay: đúng vậy để bạn có thể nói nó là một chương trình lặp lại.

Lỗi vẫn còn được thử lại

Chỉ ghi thành công. Nếu một cuộc gọi bị lỗi, gửi lại nó với cùng phím chạy nó một lần nữa, đó là điều bạn muốn.

Đọc

Đọc không để ý đến chìa khóa, lặp lại một đọc sách là vô hại.

Thử mà không thay đổi gì

Thêm dry_run: true viết thư nào. Phím, phạm vi và tham số của bạn đều được kiểm tra chính xác như bình thường, rồi cuộc gọi dừng lại trước khi tạo hay thay đổi.

Chạy khô: kiểm tra chứng minh và tải an toàn
{
  "action": "tickets.update",
  "ticket_id": 4192,
  "status": "closed",
  "dry_run": true
}

{
  "success": true,
  "dry_run": true,
  "would_execute": true,
  "message": "Authorised and validated. No write was performed because dry_run was set."
}
Dùng « khô_run » trong khi bạn đang xây dựng. Đó là cách nhanh nhất để xác nhận một phím có các phạm vi đúng và trọng tải của bạn được định dạng chính xác, mà không cần tạo dữ liệu thử nghiệm bạn phải làm sạch.

Giới hạn

Giới hạn & đơn

Giới hạn giờ mỗi người có thể cấu hình API Khóa (mặc định 1000 Yêu cầu mỗi giờ. Đặt nó trong mỗi phím dưới Thiết lập,API Chìa khóa.

Khi vượt quá

HTTP 429 với tỷ lệ mã_ giới hạn , cộng với một bộ phát thanh lại cho bạn biết cần phải đợi bao nhiêu giây. Giới hạn đặt lại ở đầu đồng hồ sau.

Biết được vị trí của mình

Mọi phản ứng đều chứa X-RateLimit-Limit, X-RateLimit và X-ReateLimit-Reset (một nhãn thời gian Unix). Xem vẫn và chậm lại trước khi chạy ra ngoài thay vì chờ bị từ chối.

Nói 429 từ 401

A 429 Có nghĩa là đợi và thử lại. 401 có nghĩa là chính chìa khóa là sai hoặc hết hạn, vì vậy việc thử lại sẽ không giúp đỡ cho đến khi bạn sửa chữa chìa khóa.

Bảo vệ vũ khí toàn lực

Thất bại lặp đi lặp lại nỗ lực tự động từ mộtIPChìa khóa hợp lệ không bao giờ làm hỏng.

Tập tốt nhất

Trở lại khi còn lại được thấp, và restary danh dự sau khi một 429 Thay vì thử lại ngay lập tức.

Phiên bản và sự ổn định

Phiên bản hiện thời

Mọi phản hồi đều có X-OpsIQ-API-Version và X-OpsIQ-API-Status để anh có thể xác nhận mình đang nói chuyện với ai.

Làm sao anh được cảnh báo?

Nếu một phiên bản nào đó được nghỉ hưu, phản ứng sẽ đạt được sự thoái thác tiêu chuẩn và chương trình chiếu phim Sunset, và các hoạt động bị bác bỏ và hoàng hôn.

Cái gì không thay đổi?

Đang tồn tại tên hành động, tham số và mã lỗi của chúng. Hành động mới và trường tùy chọn mới có thể được thêm vào bất cứ lúc nào, vì vậy bỏ qua trường bạn không nhận ra thay vì bị lỗi.

Một sự kết hợp hoàn chỉnh, bắt đầu để kết thúc

Đây là toàn bộ các vòng lặp: tìm công việc, đọc nó, làm theo và xác nhận những gì bạn đã làm.

Toàn bộ các vé làm việc tràn ngập API
# 1. Discover what this install offers and what each action needs.
POST /api/v1.php
{"action":"meta.actions"}

# 2. Find the urgent open tickets.
POST /api/v1.php
Authorization: Bearer opq_your_api_key
{"action":"tickets.list","status":"open","priority":"urgent","per_page":25}

# 3. Read one, including its conversation history.
{"action":"tickets.get","ticket_id":4192}

# 4. Reply, safely enough to retry if the network drops.
{"action":"tickets.reply","ticket_id":4192,
 "body":"We have issued the refund.","idempotency_key":"reply-4192-attempt-1"}

# 5. Close it.
{"action":"tickets.update","ticket_id":4192,"status":"closed"}

# 6. Page through anything larger: keep going until has_more is false.
{"action":"tickets.list","page":2,"per_page":50}
💡
Mọi thứ trên đều hoạt động theo cùng một cách cho các cuộc đối thoại: danh sách. list, talks. get, talk. send và talkss. date theo hình mẫu, tham số và hình thức trả lời giống hệt nhau.

Thêm nhiều ví dụ hữu ích

Mỗi mảnh này là một mảnh hoàn chỉnh, có thể chạy được của một sự tích hợp thực sự hơn là một phần nhỏ.

Trang qua mọi đĩa nhạc, trong ba ngôn ngữ

Quy tắc ở đâu cũng giống nhau: tiếp tục yêu cầu trang kế tiếp cho đến khi has_more Không bao giờ đoán được.

Python 2 trang qua mỗi vé mở
import requests

API  = "https://your-opsiq-domain.com/api/v1.php"
HEAD = {"Authorization": "Bearer opq_your_api_key"}

def every(action, **params):
    """Yield every record for a list action, one page at a time."""
    page = 1
    while True:
        r = requests.post(API, headers=HEAD,
                          json={"action": action, "page": page, "per_page": 200, **params},
                          timeout=30)
        r.raise_for_status()
        body = r.json()
        if not body.get("success"):
            raise RuntimeError(f"{body.get('code')}: {body.get('error')}")
        yield from body.get("items", [])
        if not body.get("has_more"):
            return
        page += 1

for ticket in every("tickets.list", status="open"):
    print(ticket["ticket_number"], ticket["subject"])
nút. js . trang qua mọi đầu mối
const API = "https://your-opsiq-domain.com/api/v1.php";
const HEAD = { Authorization: "Bearer opq_your_api_key", "Content-Type": "application/json" };

async function* every(action, params = {}) {
  for (let page = 1; ; page++) {
    const res  = await fetch(API, {
      method: "POST",
      headers: HEAD,
      body: JSON.stringify({ action, page, per_page: 200, ...params }),
    });
    const body = await res.json();
    if (!body.success) throw new Error(`${body.code}: ${body.error}`);
    yield* body.items ?? [];
    if (!body.has_more) return;
  }
}

for await (const contact of every("crm.contacts.list", { status: "lead" })) {
  console.log(contact.email);
}
PHP_· trang qua mỗi vé mở
<?php
$api = "https://your-opsiq-domain.com/api/v1.php";

function opsiq(string $action, array $params = []): array {
    global $api;
    $ch = curl_init($api);
    curl_setopt_array($ch, [
        CURLOPT_POST           => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER     => [
            "Authorization: Bearer opq_your_api_key",
            "Content-Type: application/json",
        ],
        CURLOPT_POSTFIELDS => json_encode(["action" => $action] + $params),
        CURLOPT_TIMEOUT    => 30,
    ]);
    $body = json_decode((string)curl_exec($ch), true) ?: [];
    curl_close($ch);
    if (empty($body["success"])) {
        throw new RuntimeException(($body["code"] ?? "error") . ": " . ($body["error"] ?? "unknown"));
    }
    return $body;
}

$page = 1;
do {
    $res = opsiq("tickets.list", ["status" => "open", "page" => $page, "per_page" => 200]);
    foreach ($res["items"] as $t) {
        echo $t["ticket_number"], " ", $t["subject"], PHP_EOL;
    }
    $page++;
} while (!empty($res["has_more"]));

Giải quyết mọi thất bại.APIcó thể trở lại

Chi nhánh trên codeKhông bao giờ nói về errorCái gói này là toàn bộ hợp đồng trong một chức năng.

Python 2/ một trình khách xử lý mọi mã lỗi một cách đúng đắn
import time, requests

RETRYABLE = {"server_error", "handler_unavailable"}

def call(action, **params):
    for attempt in range(4):
        r = requests.post(API, headers=HEAD, json={"action": action, **params}, timeout=30)
        body = r.json()
        if body.get("success"):
            return body

        code = body.get("code")

        if code == "rate_limited":
            # Honour Retry-After rather than guessing.
            time.sleep(int(r.headers.get("Retry-After", 60)))
            continue

        if code in RETRYABLE:
            time.sleep(2 ** attempt)
            continue

        # Everything below is permanent: retrying cannot fix it.
        if code == "plan_feature_locked":
            raise RuntimeError(f"Plan {body['plan_name']} lacks {body['feature']}: {body['upgrade_url']}")
        if code in ("missing_scope", "read_only_key", "action_restricted"):
            raise RuntimeError(f"This API key cannot do that: {body['error']}")
        if code in ("invalid_api_key", "missing_api_key"):
            raise RuntimeError("The key is wrong or expired; retrying will not help.")
        raise RuntimeError(f"{code}: {body.get('error')} (request_id {body.get('request_id')})")

    raise RuntimeError("Gave up after repeated retries")

Trả lời sai trong vòng một giờ

Hãy đọc điểm thấp, mở vé cho mỗi người, và đừng bao giờ hành động hai lần.

Đóng vòng lặp lại với những khách hàng không vui
# 1. Yesterday's detractors.
POST /api/v1.php
{"action":"tickets.csat.list","filters":{"max_rating":2},"days":1,"per_page":100}

# 2. For each one, open a follow-up ticket. The idempotency key is derived
#    from the response id, so re-running the job creates nothing twice.
POST /api/v1.php
{"action":"tickets.open",
 "customer_email":"[email protected]",
 "subject":"Following up on your feedback",
 "body":"We saw your rating and want to put it right.",
 "priority":"high",
 "idempotency_key":"csat-followup-8821"}

# 3. The same shape works for chat: conversations.ratings.list with
#    {"filters":{"max_stars":2},"days":1} returns the comment, what
#    prompted the rating and which agent it is credited to.

Hãy trích dẫn một món đồ và hành động theo câu trả lời của người thương nhân

Một lời từ chối cho bạn biết những gì phải thu thập
POST /api/v1.php
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47","quantity":1}

# The merchant needs more from the customer before it can price this:
{
  "success": false,
  "code": "quote_refused",
  "error": "We need the domain this hosting plan is for.",
  "actionable": true,
  "missing": ["domain"]
}

# Ask the customer for exactly what "missing" names, then quote again.
POST /api/v1.php
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47",
 "fields":{"domain":"example.ng"}}

{
  "success": true,
  "source": "whmcs",
  "quote": {
    "quote_id": "…",
    "totals": { "total": { "amount_minor": 306027, "currency": "NGN" }, "currency": "NGN" },
    "expires_at": "2026-09-05T12:34:56+00:00"
  },
  "ordering": { "creates_order": false, "confirm_via_api": false }
}
⚠️
Hiện trình khách totals.total Số lượng không luôn tăng lên giá đơn vị — khách sạn trích dẫn một phòng trong ba đêm — vì vậy con số mà bạn tính có thể khác với những gì người lái buôn sẽ thật sự tính.

Một bộ nhận kết nối web an toàn để chạy trong sản xuất

Kiểm tra, làm việc, trả lời nhanh, rồi làm lại công việc, để sự kiện tương tự có thể đến nhiều lần.

PHP_ 2; một bộ nhận mạng hình con rối sản xuất
<?php
// (verification exactly as in the Webhooks section, omitted here for brevity)

$event    = json_decode($raw, true);
$name     = $_SERVER["HTTP_X_OPSIQ_EVENT"] ?? ($event["event"] ?? "");
$delivery = $_SERVER["HTTP_X_OPSIQ_DELIVERY"] ?? "";

// 1. Already seen this delivery? Say OK and stop — do not redo the work.
if ($db->alreadyProcessed($delivery)) {
    http_response_code(200);
    exit(json_encode(["ok" => true, "duplicate" => true]));
}

// 2. Answer FAST. Anything slow belongs on your own queue: OpsIQ treats a
//    timeout as a failure and will retry the whole delivery.
$db->markProcessed($delivery);
$queue->push($name, $event);

http_response_code(200);
echo json_encode(["ok" => true]);

// 3. Your worker then routes on the event name.
//    conversation.rated        -> alert the team on a 1 or 2 star rating
//    ticket.created            -> mirror into your own helpdesk
//    crm.deal.won              -> post to #sales-alerts
//    commerce.payment.confirmed-> release the order in your fulfilment system

Kế hoạch và quyền lợi

Mỗi hành động thuộc về một sản phẩm, và kế hoạch của bạn quyết định bạn có những tính năng nào. Nếu kế hoạch không bao gồm một tính năng, câu trả lời hành động 402 — sau khi kiểm tra chìa khóa, một người gọi không xác nhận biết gì về kế hoạch của bạn, và trước khi mọi thứ được tạo ra, một văn bản bị chặn không bao giờ phân nửa.

Name
{
  "success": false,
  "code": "plan_feature_locked",
  "feature": "commerce",
  "plan_locked": true,
  "plan_name": "Growth",
  "upgrade_url": "https://…",
  "request_id": "req_8f2c1a9d4b7e"
}
Cách phân biệt nó với vấn đề quyền hạn

A403có nghĩa là chìa khóa quá hẹp — đặt lại nó với phạm vi đúng và nó hoạt động.402có nghĩa là lời tiên tri không có đặc điểm — không chìa khóa nào có thể mở được, kế hoạch phải thay đổi.

Đừng thử lại a402

Không phải tạm thời, mà là mặt đất. upgrade_url cho người sở hữu tài khoản thay vì lùi bước và thử lại.

Phạm vi quản trị không đi qua nó

Các bản sao thể hiện những gì các nhà xuất bản chính ủy thác; kế hoạch diễn tả những gì tài khoản đã mua.402Để có một điểm thiếu trong kế hoạch.

Tìm hiểu trước khi lên tàu

Hạt feature mỗi hành động cần được xuất bản trong thư mục hành động bên dưới và bên trong meta.actionĐể bạn có thể kiểm tra vào lúc xây dựng thay vì khám phá nó trong sản xuất.

Cách nhanh nhất để biết chính xác chìa khóa nằm ở đâu. meta.meNó báo cáo rằng kế hoạch về vũ lực, mọi tính năng của nó, và mỗi hành động của chiếc chìa khóa này không thể gọi với lý do cho mỗi cái.

meta. me — những gì chìa khóa này thực sự có thể làm
POST /api/v1.php
Authorization: Bearer opq_your_api_key

{"action":"meta.me"}

{
  "success": true,
  "key": { "name": "Reporting", "scopes": ["tickets.read"], "permissions_mode": "read_only" },
  "plan": { "name": "Growth", "features": { "ticket_system": true, "commerce": false } },
  "capabilities": {
    "available_action_count": 812,
    "blocked_actions": {
      "commerce.orders.list": "plan_locked:commerce",
      "tickets.reply":        "read_only"
    }
  }
}
Gọi meta. I trước khi sự tích hợp diễn ra khác nhau giữa hai cài đặt. Nó trả lời "Tại sao phím này không thể làm điều đó" trong một yêu cầu, mà không có ai mở quảng cáo.

Trích dẫn một cái giá

commerce.quotes.create Giá một món hàng cho một khách hàng, nhưng không tạo ra thứ tự — không có trật tự, không có phiên họp thanh toán, không giữ lại — vì thế có thể gọi điện trong khi khách hàng vẫn đang quyết định.

Dấu chấm câu trích dẫn một mục
POST /api/v1.php
Authorization: Bearer opq_your_api_key

# Your own Store
{"action":"commerce.quotes.create","source":"store","item_id":"12","quantity":2}

# A connected merchant platform, priced for a known customer
{"action":"commerce.quotes.create","source":"whmcs","item_id":"47",
 "fields":{"domain":"example.ng"},
 "customer":{"connector_customer_id":"1042"}}
Tổng số thương nhân thắng

Để có nền tảng kết nối, tổng số người buôn bán đó không bao giờ được tính lại ở đây.

Từ chối cho bạn biết những gì còn thiếu

Nếu người thương nhân cần nhiều hơn từ khách hàng, bạn sẽ có quote_refused có một missing Hãy liệt kê các cánh đồng để thu thập, và lời của người thương nhân phải trình bày.

Trật tự không phải là...APIcuộc gọi

Một câu trích dẫn có ý nghĩa. xác nhận điều gì xảy ra khi khách hàng ở đâu - thẻ đã ký tên trong trò chuyện, hoặc tiền thanh toán của chính thương nhân - không bao giờ thông quaAPICâu trả lời cho biết như vậy trong ordering.

Khi bán bị tạm dừng

Nếu cửa hàng đã bán tắt, trích dẫn câu trả lời selling_paused Thay vì đòi giá những thứ không ai mua được.

Những điểm kết thúc khác

Hầu hết mọi thứ bạn cần là một PST để /api/v1.phpĐây là những trường hợp ngoại lệ, và mỗi trường hợp.

/api/v1/openapi.php · /api/v1/postman.php · /api/docs/

Không cần chìa khóa nào, để bạn có thể khám phá trước khi bạn có nó.

/api/ai_stream.php

Các sự kiện máy phục vụ để trả lời các câu hỏi trò chuyện trực tiếp khi chúng được tạo ra. Một luồng, không phải aJSONdiễn.

/api/writing.php

Kết thúc của hệ điều hành cũ, tất cả những gì nó làm cũng có sẵn như writing.* hành động vào/api/v1.php,Đó là nơi làm việc mới.

/api/inbox_copilot.php

Nháp, viết lại và viết lại cho một hộp thư đến được nhúng trong quảng cáo của riêng bạn.

/api/v1/si/…

Thông minh như một chiến dịch nhỏAPI— các địa điểm, bò, vấn đề, từ khóa, thu nhập — cho các đường ống CN muốn bắt đầu bò sau khi triển khai và đọc kết quả.

/api/connectors.php?slug=&token=

Nơi một nền tảng kết nối PST tự lắp cho mình những cái móc kéo. Nó được đúc khi bạn bật trình kết nối.

/api/integrations/*.php

Động cơ tích hợp: chạy và xác nhận hành động, bán hàng, nhân dạng và sự kiện hành trình.APITrình xây dựng & Webok.

💡
Tất cả đều tuân theo cùng một kế hoạch quy tắc như hành động.402Ở đây cũng vậy, trong cùng một hình dạng.

Mọi hành động, với phạm vi cần thiết

Danh sách này được tạo ra từ mục lục đang chạy, vì vậy nó luôn khớp với phiên bản bạn đang có. meta.actions cung cấp thông tin tương tự như JSON.

2420 named actions: 804 reads, 1616 writes and 69 scopes. Every registered administrator JSON operation has a stable named action. OpenAPI: /api/v1/openapi.php. Postman: /api/v1/postman.php. Contract quality: declared_dynamic: 606; explicit: 63; route_inferred: 1633; source_inferred: 118.

administration (25)

administration.2fa.disable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Disable

administration.2fa.enable

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Enable

administration.2fa.recovery.regenerate

Write. Scope: administration.write, admin. Contract: route_inferred. Admin 2fa Recovery Regenerate

administration.2fa.setup

Read. Scope: administration.read, admin. Contract: route_inferred. Admin 2fa Setup

administration.2fa.status

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin 2fa Status

administration.ai.train.from.reply

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Ai Train From Reply

administration.brain.cancel

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Brain Cancel

administration.brain.view

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Brain View

administration.chat.access.check

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Access Check

administration.chat.create.ticket.on.behalf

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Create Ticket On Behalf

administration.chat.draft.ticket.from.thread

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Chat Draft Ticket From Thread

administration.conv.delete

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Delete

administration.conv.get

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Get

administration.conv.list

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv List

administration.conv.new

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv New

administration.conv.save

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Conv Save

administration.notification.prefs.get

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Notification Prefs Get

administration.notification.prefs.save

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Notification Prefs Save

administration.notifications.list

Read. Scope: administration.read, admin. Contract: route_inferred. Admin Notifications List

administration.notifications.mark.all.read

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Notifications Mark All Read

administration.notifications.mark.read

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Notifications Mark Read

administration.notifications.pulse

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Notifications Pulse

administration.online.list

Read. Scope: administration.read, admin. Contract: declared_dynamic. Admin Online List

administration.presence.ping

Write. Scope: administration.write, admin. Contract: declared_dynamic. Admin Presence Ping

administration.realtime.token

Write. Scope: administration.write, admin. Contract: route_inferred. Admin Realtime Token

phân tích (43)

analytics.add.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Add Widget

analytics.analytics.connectors.catalog

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Connectors Catalog

analytics.analytics.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Data

analytics.analytics.export

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export

analytics.analytics.export.csv

Read. Scope: analytics.read, admin. Contract: route_inferred. Analytics Export Csv

analytics.analytics.import

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Import

analytics.analytics.report

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Report

analytics.analytics.segments.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Delete

analytics.analytics.segments.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Segments List

analytics.analytics.segments.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Analytics Segments Save

analytics.analytics.status

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Analytics Status

analytics.clear.all

Write. Scope: analytics.write, admin. Contract: declared_dynamic. Replay Clear All

analytics.compute

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Compute

analytics.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Create

analytics.create.route.dashboard.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Create

analytics.create.route.report.create

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Create

analytics.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Delete

analytics.delete.route.dashboard.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Delete

analytics.delete.route.funnels.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Delete

analytics.delete.route.report.delete

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Delete

analytics.events

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Events

analytics.export

Read. Scope: analytics.read, admin. Contract: source_inferred. Analytics Export

analytics.get

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Get

analytics.layout.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Layout Save

analytics.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Ab Test List

analytics.list.route.dashboard.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Dashboard List

analytics.list.route.funnels.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Funnels List

analytics.list.route.report.list

Read. Scope: analytics.read, admin. Contract: declared_dynamic. Report List

analytics.remove.widget

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Remove Widget

analytics.rename

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Rename

analytics.results

Read. Scope: analytics.read, admin. Contract: route_inferred. Ab Test Results

analytics.save

Write. Scope: analytics.write, admin. Contract: route_inferred. Funnels Save

analytics.save.widgets

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Save Widgets

analytics.scheduled.list

Read. Scope: analytics.read, admin. Contract: explicit. List scheduled analytics reports for an operator Required fields: admin_id.

analytics.sections.list

Read. Scope: analytics.read, admin. Contract: explicit. List analytics report sections and date presets

analytics.send.now

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Send Now

analytics.sessions

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Sessions

analytics.step.visitors

Read. Scope: analytics.read, admin. Contract: route_inferred. Funnels Step Visitors

analytics.timeline

Read. Scope: analytics.read, admin. Contract: route_inferred. Replay Timeline

analytics.toggle.shared

Write. Scope: analytics.write, admin. Contract: route_inferred. Dashboard Toggle Shared

analytics.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Ab Test Update

analytics.update.route.report.update

Write. Scope: analytics.write, admin. Contract: route_inferred. Report Update

analytics.widget.data

Read. Scope: analytics.read, admin. Contract: route_inferred. Dashboard Widget Data

automations (6)

automations.actions.list

Read. Scope: automations.read, admin. Contract: explicit. List integration actions

automations.delete

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Delete

automations.list

Read. Scope: automations.read, admin. Contract: route_inferred. Workflow List

automations.runs.list

Read. Scope: automations.read, admin. Contract: explicit. List automation execution history

automations.save

Write. Scope: automations.write, admin. Contract: route_inferred. Workflow Save

automations.triggers.list

Read. Scope: automations.read, admin. Contract: explicit. List integration triggers

Trò chuyện (40)

chat.call.start

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Call Start

chat.cobrowse.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Cobrowse Send

chat.feedback

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Feedback

chat.feedback.digest

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Feedback Digest

chat.form.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Delete

chat.form.get

Read. Scope: chat.read, admin. Contract: route_inferred. Chat Form Get

chat.form.list

Read. Scope: chat.read, admin. Contract: declared_dynamic. Chat Form List

chat.form.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Save

chat.form.set.default

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Form Set Default

chat.meeting.decide

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Decide

chat.meeting.outcome.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Outcome Set

chat.meeting.type.delete

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Type Delete

chat.meeting.type.save

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Type Save

chat.meeting.types.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meeting Types List

chat.meetings.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Meetings List

chat.online.admins

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Online Admins

chat.permissions.list

Write. Scope: admin. Contract: route_inferred. Chat Permissions List

chat.permissions.revoke

Write. Scope: admin. Contract: route_inferred. Chat Permissions Revoke

chat.permissions.save

Write. Scope: admin. Contract: route_inferred. Chat Permissions Save

chat.permissions.upload.avatar

Write. Scope: admin. Contract: route_inferred. Chat Permissions Upload Avatar

chat.reaction.toggle

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Reaction Toggle

chat.saved_replies.add

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Add Retry-safe with idempotency_key.

chat.saved_replies.list

Read. Scope: chat.read, admin. Contract: explicit. List workspace and personal saved replies

chat.saved_replies.save

Write. Scope: chat.write, admin. Contract: source_inferred. Chat Saved Replies Save Retry-safe with idempotency_key.

chat.set.persona

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Set Persona

chat.snooze.clear

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Clear

chat.snooze.set

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Snooze Set

chat.transfer.thread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Transfer Thread

chat.transfer.unread

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Transfer Unread

chat.typing.preview

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Typing Preview

chat.whisper.ai.summary

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Ai Summary

chat.whisper.controls

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Controls

chat.whisper.delete.room

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Delete Room

chat.whisper.list

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper List

chat.whisper.mentions

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Mentions

chat.whisper.rooms

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Rooms

chat.whisper.save.controls

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Save Controls

chat.whisper.send

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Send

chat.whisper.targets

Write. Scope: chat.write, admin. Contract: declared_dynamic. Chat Whisper Targets

chat.whisper.unread

Write. Scope: chat.write, admin. Contract: route_inferred. Chat Whisper Unread

Thương mại (11)

commerce.analytics.snapshot

Read. Scope: commerce.read, analytics.read, admin. Contract: explicit. Read privacy-safe storefront analytics

commerce.orders.get

Read. Scope: commerce.read, admin. Contract: explicit. Get one Store order with its line items

commerce.orders.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store orders in the bound workspace

commerce.pages.list

Read. Scope: commerce.read, admin. Contract: explicit. List storefront pages and promotional modals

commerce.products.get

Read. Scope: commerce.read, admin. Contract: explicit. Get one Store product with its variants Required fields: product_id.

commerce.products.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store products in the bound workspace

commerce.quotes.create

Write. Scope: commerce.write, admin. Contract: explicit. Quote an item for a customer (creates nothing) Required fields: source, item_id. Retry-safe with idempotency_key.

commerce.readiness.get

Read. Scope: commerce.read, admin. Contract: explicit. Check demo readiness and merchant go-live readiness

commerce.refunds.list

Read. Scope: commerce.read, admin. Contract: explicit. List Store refund requests in the bound workspace

commerce.storefront.catalog.get

Read. Scope: commerce.read, admin. Contract: explicit. Discover Store themes, designs, blocks and promotional shells

commerce.storefront.get

Read. Scope: commerce.read, admin. Contract: explicit. Get the bound workspace storefront configuration

communications (21)

communications.auth.check

Read. Scope: admin. Contract: route_inferred. Email Auth Check

communications.campaign.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Delete

communications.campaign.save

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Save

communications.campaign.send

Write. Scope: communications.write, admin. Contract: route_inferred. Push Campaign Send

communications.campaigns.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Push Campaigns List

communications.drafts.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Delete

communications.drafts.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Drafts List

communications.drafts.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Save

communications.drafts.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Drafts Send

communications.mailboxes.delete

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Delete

communications.mailboxes.list

Read. Scope: communications.read, admin. Contract: route_inferred. Email Mailboxes List

communications.mailboxes.poll

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Poll

communications.mailboxes.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Mailboxes Save

communications.mailboxes.test

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Mailboxes Test

communications.pipe.regen.token

Write. Scope: communications.write, admin. Contract: declared_dynamic. Email Pipe Regen Token

communications.platform.list

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Platform List

communications.platform.send

Write. Scope: communications.write, admin. Contract: route_inferred. Email Platform Send

communications.settings.get

Read. Scope: communications.read, admin. Contract: declared_dynamic. Email Settings Get

communications.settings.save

Write. Scope: communications.write, admin. Contract: route_inferred. Email Settings Save

communications.settings.test

Read. Scope: communications.read, admin. Contract: route_inferred. Email Settings Test

communications.vapid.generate

Write. Scope: communications.write, admin. Contract: declared_dynamic. Push Vapid Generate

connector_builder (11)

connector_builder.export

Read. Scope: connector_builder.read, admin. Contract: explicit. Export a generated connector Required fields: slug.

connector_builder.generate

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Generate a connector package Required fields: spec.

connector_builder.get

Read. Scope: connector_builder.read, admin. Contract: route_inferred. Load a Builder specification Required fields: slug.

connector_builder.import.curl

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import cURL into Connector Builder

connector_builder.import.openapi

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import OpenAPI into Connector Builder

connector_builder.import.postman

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Import Postman into Connector Builder

connector_builder.list

Read. Scope: connector_builder.read, admin. Contract: declared_dynamic. List Builder connectors

connector_builder.profiles

Read. Scope: connector_builder.read, connectors.read, admin. Contract: source_inferred. List Connector Builder profiles and capability contracts

connector_builder.test

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Run Builder conformance tests Required fields: slug.

connector_builder.update

Write. Scope: connector_builder.write, admin. Contract: route_inferred. Update a generated connector Required fields: slug, spec.

connector_builder.validate

Read. Scope: connector_builder.read, admin. Contract: route_inferred. Validate a Builder specification Required fields: spec.

connectors (51)

connectors.action

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Action

connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Start connector backfill Required fields: slug.

connectors.backfill.route.connectors.backfill

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Backfill

connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Read connector backfill status Required fields: slug.

connectors.backfill.status.route.connectors.backfill.status

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Backfill Status

connectors.builder.ai.actions

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Actions

connectors.builder.ai.draft

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Draft

connectors.builder.ai.handler

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Ai Handler

connectors.builder.ai.map

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Ai Map

connectors.builder.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Delete

connectors.builder.dry.run

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Dry Run

connectors.builder.generate

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Generate

connectors.builder.import.curl

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Curl

connectors.builder.import.openapi

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Openapi

connectors.builder.import.postman

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Import Postman

connectors.builder.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder List

connectors.builder.load

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Load

connectors.builder.marketplace.apply

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Apply

connectors.builder.marketplace.link

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Link

connectors.builder.marketplace.status

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Marketplace Status

connectors.builder.marketplace.submit

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Marketplace Submit

connectors.builder.schema

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors Builder Schema

connectors.builder.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test

connectors.builder.test.action

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Test Action

connectors.builder.update

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Builder Update

connectors.builder.validate

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Builder Validate

connectors.contacts.import

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Contacts Import

connectors.contract

Read. Scope: connectors.read, connector_builder.read, admin. Contract: source_inferred. Read the canonical connector capability contract

connectors.customers.sync

Write. Scope: connectors.write, admin. Contract: route_inferred. Synchronize connector customers Required fields: slug.

connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Disable a connector Required fields: slug.

connectors.disable.route.connectors.disable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Disable

connectors.email.account.department

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Department

connectors.email.account.remove

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Email Account Remove

connectors.email.account.routing

Read. Scope: connectors.read, admin. Contract: route_inferred. Connector Email Account Routing

connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Enable a connector Required fields: slug.

connectors.enable.route.connectors.enable

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Enable

connectors.get

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Get

connectors.get.route.connectors.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Get

connectors.install

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Install

connectors.integrity.scan

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connector Integrity Scan

connectors.list

Read. Scope: connectors.read, admin. Contract: explicit. List installed connectors and capabilities

connectors.list.route.connectors.list

Read. Scope: connectors.read, admin. Contract: declared_dynamic. Connectors List

connectors.oauth.start

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Oauth Start

connectors.settings.get

Read. Scope: connectors.read, admin. Contract: route_inferred. Read connector settings Required fields: slug.

connectors.settings.save

Write. Scope: connectors.write, admin. Contract: route_inferred. Save connector settings Required fields: slug, settings.

connectors.shared.oauth.delete

Write. Scope: connectors.write, admin. Contract: route_inferred. Connector Shared Oauth Delete

connectors.sync.customers

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Sync Customers

connectors.test

Read. Scope: connectors.read, admin. Contract: source_inferred. Connectors Test

connectors.test.route.connectors.test

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Test

connectors.uninstall

Write. Scope: connectors.write, admin. Contract: route_inferred. Connectors Uninstall

connectors.workflow.recipes

Read. Scope: connectors.read, admin. Contract: route_inferred. Connectors Workflow Recipes

conversations (38)

conversations.ai.draft

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Draft

conversations.ai.rewrite

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Ai Rewrite

conversations.archive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Archive

conversations.assign

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Assign

conversations.assignees

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Assignees

conversations.bulk

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Bulk

conversations.clear

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear

conversations.clear.all

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Clear All

conversations.customer.tickets

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Customer Tickets

conversations.decline

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Decline

conversations.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete

conversations.delete.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Delete Last

conversations.edit.last

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Edit Last

conversations.export

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Export

conversations.forget.visitor

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Forget Visitor

conversations.get

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Get

conversations.history

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat History

conversations.list

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations List

conversations.messages

Read. Scope: conversations.read, admin. Contract: source_inferred. Conversations Messages

conversations.ratings.list

Read. Scope: conversations.read, admin. Contract: explicit. List rated Client Chat conversations

conversations.resolve

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Resolve

conversations.saved.replies

Write. Scope: conversations.write, admin. Contract: declared_dynamic. Admin Client Chat Saved Replies

conversations.saved.reply.add

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Add

conversations.saved.reply.ai.generate

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Ai Generate

conversations.saved.reply.delete

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Delete

conversations.saved.reply.save

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Saved Reply Save

conversations.send

Write. Scope: conversations.write, admin. Contract: source_inferred. Conversations Send Retry-safe with idempotency_key.

conversations.send.route.admin.client.chat.send

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Send

conversations.tags.set

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Tags Set

conversations.thread

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Thread

conversations.threads

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Threads

conversations.toggle

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle

conversations.toggle.attachments

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Attachments

conversations.toggle.call.button

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Toggle Call Button

conversations.typing

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Typing

conversations.unarchive

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Unarchive

conversations.update

Write. Scope: conversations.write, admin. Contract: explicit. Update a conversation status, assignment or subject Retry-safe with idempotency_key.

conversations.upload

Write. Scope: conversations.write, admin. Contract: route_inferred. Admin Client Chat Upload

crm (260)

crm.ab.results

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ab Results

crm.access.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Access Set

crm.access_log.list

Read. Scope: admin. Contract: source_inferred. Crm Access Log List

crm.account.health

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health

crm.account.health.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Account Health Board

crm.account.health.refresh

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Account Health Refresh

crm.account.plan.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Get

crm.account.plan.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plan Save

crm.account.plans.due

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Account Plans Due

crm.account.timeline

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Account Timeline

crm.activities.list

Read. Scope: crm.read. Contract: explicit. List CRM contact activities

crm.activities.record

Write. Scope: crm.write. Contract: explicit. Record a CRM contact activity Required fields: contact_id, activity_type. Retry-safe with idempotency_key.

crm.activity.feed

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Activity Feed

crm.agent.toggle

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Agent Toggle

crm.ai.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Get

crm.ai.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Save

crm.ai.policy.simulate

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ai Policy Simulate

crm.ai.trace

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Ai Trace

crm.approval.decide

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Decide

crm.approval.delegate.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Delegate Set

crm.approval.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Approval List

crm.approval.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Get

crm.approval.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Policy Save

crm.approval.settings

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Approval Settings

crm.approve.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Apply

crm.approve.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Approve List

crm.approve.reject

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Reject

crm.approve.update

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Approve Update

crm.ask

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Ask

crm.assign.owner

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Assign Owner

crm.assignment.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Assignment Get

crm.assignment.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Assignment Save

crm.attachment.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Delete

crm.attachment.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Attachment List

crm.attachment.upload

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Attachment Upload

crm.autobook.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autobook Meeting

crm.autodeal.mode

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Autodeal Mode

crm.book.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Book Meeting

crm.booking.link.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Booking Link Save

crm.booking.links.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Booking Links List

crm.build.apply

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Apply

crm.build.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build Get

crm.build.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Build List

crm.build.plan

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Plan

crm.build.rollback

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Build Rollback

crm.bulk

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Bulk

crm.bundle.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Bundle Set

crm.calendar.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Calendar Status

crm.capture.status

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Capture Status

crm.comm.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Get

crm.comm.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Comm Policy Save

crm.command.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Command Snapshot

crm.companies.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Companies List

crm.company.hierarchy

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Hierarchy

crm.company.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Company Save

crm.company.set.parent

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Company Set Parent

crm.company.suggest.related

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Company Suggest Related

crm.connectors.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Connectors Catalog

crm.consent_log.list

Read. Scope: crm.read. Contract: source_inferred. Crm Consent Log List

crm.contact.churn

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Contact Churn

crm.contact.draft.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Draft Email

crm.contact.enrich

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Enrich

crm.contact.propose.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contact Propose Email

crm.contacts.detail

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Detail

crm.contacts.erase

Write. Scope: admin. Contract: source_inferred. Crm Contacts Erase Retry-safe with idempotency_key.

crm.contacts.export

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Export

crm.contacts.import.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Import List

crm.contacts.import.run

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Import Run Retry-safe with idempotency_key.

crm.contacts.list

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts List

crm.contacts.next_action

Read. Scope: crm.read. Contract: source_inferred. Crm Contacts Next Action

crm.contacts.open_chat

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Chat Retry-safe with idempotency_key.

crm.contacts.open_ticket

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Open Ticket Retry-safe with idempotency_key.

crm.contacts.resync

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Resync Retry-safe with idempotency_key.

crm.contacts.save

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Save Retry-safe with idempotency_key.

crm.contacts.send_email

Write. Scope: crm.write. Contract: source_inferred. Crm Contacts Send Email Retry-safe with idempotency_key.

crm.contacts.upsert

Write. Scope: crm.write. Contract: explicit. Crm Contacts Upsert Required fields: email. Retry-safe with idempotency_key.

crm.contract.amend

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Amend

crm.contract.price.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Price Set

crm.contract.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Save

crm.contract.usage

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contract Usage

crm.contracts.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Contracts List

crm.conversation.intel

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Conversation Intel

crm.conversions.goals.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Delete Retry-safe with idempotency_key.

crm.conversions.goals.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions Goals List

crm.conversions.goals.save

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Goals Save Retry-safe with idempotency_key.

crm.conversions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Conversions List

crm.conversions.record

Write. Scope: crm.write. Contract: source_inferred. Crm Conversions Record Retry-safe with idempotency_key.

crm.create.video.meeting

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Create Video Meeting

crm.customer.auto.sync

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Customer Auto Sync

crm.customer.auto.sync.status

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Auto Sync Status

crm.customer.emails

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Emails

crm.customer.payments

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Customer Payments

crm.data.steward.bulk.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Bulk Propose

crm.data.steward.inbox

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Data Steward Inbox

crm.data.steward.propose

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Data Steward Propose

crm.deal.advance

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Advance

crm.deal.coach

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Coach

crm.deal.coach.action

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Deal Coach Action

crm.deal.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deal Get

crm.deal.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Save

crm.deal.splits.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Deal Splits Get

crm.deal.splits.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Deal Splits Set

crm.deals.advance

Write. Scope: crm.write. Contract: explicit. Advance a CRM deal to another stage Required fields: deal_id, stage_id. Retry-safe with idempotency_key.

crm.deals.create

Write. Scope: crm.write. Contract: explicit. Create a CRM deal Required fields: title. Retry-safe with idempotency_key.

crm.deals.detail

Read. Scope: crm.read. Contract: explicit. Get one CRM deal Required fields: deal_id.

crm.deals.list

Read. Scope: crm.read. Contract: explicit. List CRM deals

crm.deals.list.route.crm.deals.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Deals List

crm.deals.update

Write. Scope: crm.write. Contract: explicit. Update a CRM deal Required fields: deal_id. Retry-safe with idempotency_key.

crm.detail

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Detail

crm.draft.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Draft Outreach

crm.enrich.account

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Enrich Account

crm.erase

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Erase

crm.events.catalog

Read. Scope: crm.read. Contract: explicit. List subscribable CRM domain events

crm.events.list

Read. Scope: crm.read. Contract: explicit. List durable CRM domain events

crm.export

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Export

crm.export.all

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Export All

crm.field.add

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Add

crm.field.policy.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Get

crm.field.policy.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Policy Save

crm.field.remove

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Field Remove

crm.fields.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Fields List

crm.forecast.board

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forecast Board

crm.forecast.snapshot

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Forecast Snapshot

crm.form.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Form Save

crm.forms.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Forms List

crm.health.repair.catalog

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Repair Catalog

crm.health.smoke

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Health Smoke

crm.health.snapshot

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Health Snapshot

crm.home.persona.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Home Persona Set

crm.identity.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Get

crm.identity.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Identity Rules Save

crm.import.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Import List

crm.import.run

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Import Run

crm.inbound.activity

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Activity

crm.inbound.endpoints.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Delete Retry-safe with idempotency_key.

crm.inbound.endpoints.list

Read. Scope: crm.read. Contract: source_inferred. Crm Inbound Endpoints List

crm.inbound.endpoints.save

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Save Retry-safe with idempotency_key.

crm.inbound.endpoints.test

Write. Scope: crm.write. Contract: source_inferred. Crm Inbound Endpoints Test Retry-safe with idempotency_key.

crm.leaderboard

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Leaderboard

crm.lifecycle.evaluate

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Evaluate Retry-safe with idempotency_key.

crm.lifecycle.rules.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Delete Retry-safe with idempotency_key.

crm.lifecycle.rules.list

Read. Scope: crm.read. Contract: source_inferred. Crm Lifecycle Rules List

crm.lifecycle.rules.save

Write. Scope: crm.write. Contract: source_inferred. Crm Lifecycle Rules Save Retry-safe with idempotency_key.

crm.list

Read. Scope: crm.read, admin. Contract: route_inferred. Contacts List

crm.mailbox.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Mailbox Status

crm.meeting.book

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Book

crm.meeting.cancel

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Cancel

crm.meeting.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Meeting List

crm.meeting.reschedule.accept

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Accept

crm.meeting.reschedule.reject

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Meeting Reschedule Reject

crm.merge

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Merge

crm.message.send

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Message Send

crm.messaging.provider.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Delete

crm.messaging.provider.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Messaging Provider Save

crm.messaging.provider.test

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Messaging Provider Test

crm.messaging.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Messaging Status

crm.next.action

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Next Action

crm.object.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Object Save

crm.objects.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Objects List

crm.offline.pull

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Pull

crm.offline.push

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Offline Push

crm.open.chat

Read. Scope: crm.read, admin. Contract: route_inferred. Contact Open Chat

crm.open.ticket

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Open Ticket

crm.outreach.campaigns.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Delete Retry-safe with idempotency_key.

crm.outreach.campaigns.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Campaigns List

crm.outreach.campaigns.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Save Retry-safe with idempotency_key.

crm.outreach.campaigns.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Campaigns Send Retry-safe with idempotency_key.

crm.outreach.send

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Send Retry-safe with idempotency_key.

crm.outreach.templates.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Delete Retry-safe with idempotency_key.

crm.outreach.templates.list

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates List

crm.outreach.templates.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Outreach Templates Preview

crm.outreach.templates.save

Write. Scope: crm.write. Contract: source_inferred. Crm Outreach Templates Save Retry-safe with idempotency_key.

crm.payments.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Payments Status

crm.pipeline.data

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Pipeline Data

crm.price.resolve

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Price Resolve

crm.pricebook.entry.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Entry Set

crm.pricebook.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebook Save

crm.pricebooks.list

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Pricebooks List

crm.privacy_settings.get

Read. Scope: crm.read. Contract: source_inferred. Crm Privacy Settings Get

crm.privacy_settings.save

Write. Scope: admin. Contract: source_inferred. Crm Privacy Settings Save Retry-safe with idempotency_key.

crm.product.archive

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Product Archive

crm.product.revenue

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Product Revenue

crm.product.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Product Save

crm.products.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Products List

crm.propose.meeting

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Propose Meeting

crm.propose.outreach

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Propose Outreach

crm.prospecting.dashboard

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Prospecting Dashboard

crm.prospecting.icp.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Icp Save

crm.prospecting.import

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Import

crm.prospecting.research

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Prospecting Research

crm.prospecting.score

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Score

crm.prospecting.sequence

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Prospecting Sequence

crm.qualification.checklist.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Qualification Checklist Get

crm.qualification.checklist.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Qualification Checklist Save

crm.quota.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quota Save

crm.quote.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quote Get

crm.quote.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Quote Save

crm.quotes.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Quotes List

crm.record.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Delete

crm.record.fields.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Fields Get

crm.record.fields.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Fields Save

crm.record.get

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record Get

crm.record.history

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Record History

crm.record.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Save

crm.record.share.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Set

crm.record.share.unset

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Share Unset

crm.record.shares

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Record Shares

crm.records.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Records List

crm.restore.email.consent

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Restore Email Consent

crm.resync.from.platform

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Resync From Platform

crm.retention.catalog

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Retention Catalog

crm.revert

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Revert

crm.runtime.policy.get

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Get

crm.runtime.policy.remote.wipe

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Runtime Policy Remote Wipe

crm.runtime.policy.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Runtime Policy Save

crm.save

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Save

crm.scoring.rule.ai

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Ai

crm.scoring.rule.delete

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Delete

crm.scoring.rule.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Scoring Rule List

crm.scoring.rule.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Scoring Rule Save

crm.segments.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Delete Retry-safe with idempotency_key.

crm.segments.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments List

crm.segments.members

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Members

crm.segments.preview

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Preview

crm.segments.save

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Save Retry-safe with idempotency_key.

crm.segments.suggestions.accept

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Accept Retry-safe with idempotency_key.

crm.segments.suggestions.dismiss

Write. Scope: crm.write. Contract: source_inferred. Crm Segments Suggestions Dismiss Retry-safe with idempotency_key.

crm.segments.suggestions.list

Read. Scope: crm.read. Contract: source_inferred. Crm Segments Suggestions List

crm.semantic.search

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Semantic Search

crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Contact Send Email

crm.send.email.route.crm.send.email

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Email

crm.send.for.signature

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send For Signature

crm.send.payment.link

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Send Payment Link

crm.sequence.action

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sequence Action

crm.sequence.runs

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Sequence Runs

crm.setup.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Setup Status

crm.sharing.rules.get

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Get

crm.sharing.rules.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Sharing Rules Save

crm.subject.registry

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Subject Registry

crm.subscriptions.list

Read. Scope: crm.read, admin. Contract: route_inferred. Crm Subscriptions List

crm.subscriptions.rollup

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Subscriptions Rollup

crm.subscriptions.sync

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Subscriptions Sync

crm.task.create

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Task Create

crm.tasks.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Tasks List

crm.team.parent.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Parent Set

crm.team.rules.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Rules Set

crm.team.save

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Team Save

crm.teams.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Teams List

crm.territory.set

Write. Scope: crm.write, admin. Contract: route_inferred. Crm Territory Set

crm.video.status

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Video Status

crm.views.delete

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Delete

crm.views.list

Read. Scope: crm.read, admin. Contract: declared_dynamic. Crm Views List

crm.views.save

Write. Scope: crm.write, admin. Contract: declared_dynamic. Crm Views Save

crm.webhooks.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Delete Retry-safe with idempotency_key.

crm.webhooks.list

Read. Scope: crm.read. Contract: explicit. List CRM outbound webhook endpoints and recent deliveries

crm.webhooks.save

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Save Retry-safe with idempotency_key.

crm.webhooks.test

Write. Scope: crm.write. Contract: source_inferred. Crm Webhooks Test Retry-safe with idempotency_key.

crm.workflows.delete

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Delete Retry-safe with idempotency_key.

crm.workflows.list

Read. Scope: crm.read. Contract: source_inferred. Crm Workflows List

crm.workflows.save

Write. Scope: crm.write. Contract: source_inferred. Crm Workflows Save Retry-safe with idempotency_key.

khách (44)

customers.analyze

Write. Scope: customers.write, journey.write, admin. Contract: route_inferred. Analyze a customer journey with AI Required fields: client_id.

customers.behaviour

Read. Scope: admin. Contract: route_inferred. Cdp Behaviour

customers.behaviour.analyze

Write. Scope: admin. Contract: route_inferred. Cdp Behaviour Analyze

customers.chat.embed.backfill

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Embed Backfill

customers.chat.embed.status

Read. Scope: customers.read, admin. Contract: declared_dynamic. Client Chat Embed Status

customers.chat.faq.ai.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Ai Generate

customers.chat.faq.approve.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Approve All

customers.chat.faq.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Delete

customers.chat.faq.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Delete All

customers.chat.faq.export

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Faq Export

customers.chat.faq.generate

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Generate

customers.chat.faq.import

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Import

customers.chat.faq.list

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq List

customers.chat.faq.save

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Save

customers.chat.faq.set.help

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help

customers.chat.faq.set.help.all

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Set Help All

customers.chat.faq.status

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Faq Status

customers.chat.grant.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Grant Upload

customers.chat.help.set.slug

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Help Set Slug

customers.chat.knowledge.crawl.step

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Crawl Step

customers.chat.knowledge.delete

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Delete

customers.chat.knowledge.delete.all

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete All

customers.chat.knowledge.delete.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Delete Duplicates

customers.chat.knowledge.duplicates

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Duplicates

customers.chat.knowledge.export.json

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Knowledge Export Json

customers.chat.knowledge.import.json

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Import Json

customers.chat.knowledge.preview

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Preview

customers.chat.knowledge.recrawl

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Recrawl

customers.chat.knowledge.test.url

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Knowledge Test Url

customers.chat.revoke.upload

Write. Scope: customers.write, admin. Contract: route_inferred. Client Chat Revoke Upload

customers.chat.upload.agent.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Agent Avatar

customers.chat.upload.ai.avatar

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Ai Avatar

customers.chat.upload.icon

Write. Scope: customers.write, admin. Contract: declared_dynamic. Client Chat Upload Icon

customers.client.analyze

Write. Scope: admin. Contract: route_inferred. Cdp Client Analyze

customers.client.delete

Write. Scope: admin. Contract: route_inferred. Cdp Client Delete

customers.client.export

Write. Scope: admin. Contract: route_inferred. Cdp Client Export

customers.client.journey

Read. Scope: admin. Contract: route_inferred. Cdp Client Journey

customers.client.prepare.outreach

Write. Scope: customers.write, admin. Contract: route_inferred. Cdp Client Prepare Outreach

customers.clients.list

Read. Scope: admin. Contract: route_inferred. Cdp Clients List

customers.detail

Read. Scope: customers.read, admin. Contract: route_inferred. Client Detail

customers.get

Read. Scope: customers.read, crm.read, admin. Contract: route_inferred. Get a customer profile Required fields: client_id.

customers.journey

Read. Scope: customers.read, journey.read, admin. Contract: route_inferred. Get a complete customer journey Required fields: client_id.

customers.list

Read. Scope: customers.read, crm.read, admin. Contract: route_inferred. List known customers

customers.outreach.prepare

Write. Scope: customers.write, crm.write, admin. Contract: route_inferred. Prepare CRM outreach for a customer Required fields: client_id.

departments (1)

departments.list

Read. Scope: departments.read, admin. Contract: source_inferred. Departments List

Thư điện tử (2)

email.template.send

Write. Scope: email.write, admin. Contract: source_inferred. Send one governed workspace email template Required fields: template, to. Retry-safe with idempotency_key.

email.templates.list

Read. Scope: email.read, admin. Contract: source_inferred. List email templates available to this workspace

engagement (163)

engagement.ab.autowinner

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ab Autowinner

engagement.ab.bandit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ab Bandit

engagement.address.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Address Get

engagement.address.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Address Save

engagement.ai.agent

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Agent

engagement.ai.analyze

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Analyze

engagement.ai.compile.profile

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Compile Profile

engagement.ai.copy

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Copy

engagement.ai.critique

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Critique

engagement.ai.decide

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Decide

engagement.ai.design

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Design

engagement.ai.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Edit

engagement.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Generate

engagement.ai.ideas

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Ideas

engagement.ai.image

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image

engagement.ai.image.edit

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Image Edit

engagement.ai.localize

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Localize

engagement.ai.logo

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Logo

engagement.ai.media.jobs

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Media Jobs

engagement.ai.narrative

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Narrative

engagement.ai.responsive

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Ai Responsive

engagement.ai.variants

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Ai Variants

engagement.ai.video.start

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Start

engagement.ai.video.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Ai Video Status

engagement.approval.decide

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Approval Decide

engagement.approval.request

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Approval Request

engagement.approvals.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Approvals List

engagement.asset.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Delete

engagement.asset.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Asset Upload

engagement.assets.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Assets List

engagement.audience.materialize

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Materialize

engagement.audience.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Audience Save

engagement.audience.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Audience Test

engagement.audit.export

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Audit Export

engagement.autoresponder.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Autoresponder Get

engagement.autoresponder.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Autoresponder Save

engagement.bank.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Delete

engagement.bank.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Bank List

engagement.bank.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Save

engagement.bank.used

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Bank Used

engagement.blackouts.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Blackouts Get

engagement.blackouts.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Blackouts Save

engagement.brand.kit.bootstrap

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Bootstrap

engagement.brand.kit.font.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Brand Kit Font Upload

engagement.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Brand Kit Get

engagement.brand.kit.get.route.survey.brand.kit.get

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Brand Kit Get

engagement.brand.kit.save

Write. Scope: engagement.write, admin. Contract: declared_dynamic. Promo Brand Kit Save

engagement.brand.kit.save.route.survey.brand.kit.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Brand Kit Save

engagement.campaign.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Archive

engagement.campaign.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Delete

engagement.campaign.duplicate

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Duplicate

engagement.campaign.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Get

engagement.campaign.launch

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Launch

engagement.campaign.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign List

engagement.campaign.pause

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Pause

engagement.campaign.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Preview

engagement.campaign.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Publish

engagement.campaign.rollback

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Rollback

engagement.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Save

engagement.campaign.save.route.survey.campaign.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Campaign Save

engagement.campaign.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Campaign Toggle

engagement.campaign.versions

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Campaign Versions

engagement.comment.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Comment Add

engagement.comments.add

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Add

engagement.comments.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Delete

engagement.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Comments List

engagement.comments.list.route.survey.comments.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Comments List

engagement.comments.resolve

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Comments Resolve

engagement.connectors.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Connectors Catalog

engagement.coupon.providers

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Coupon Providers

engagement.coupons.clear

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Clear

engagement.coupons.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Coupons Stats

engagement.coupons.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Coupons Upload

engagement.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Delete

engagement.delete.route.tour.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Delete

engagement.delivery.analytics

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Analytics

engagement.delivery.dashboard

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Delivery Dashboard

engagement.deployment.ab.promote

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Ab Promote

engagement.deployment.ab.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Ab Save

engagement.deployment.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Publish

engagement.deployment.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Save

engagement.deployment.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Deployment Status

engagement.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Campaign Detail

engagement.digest.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Digest Save

engagement.feed.catalog

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Feed Catalog

engagement.feed.items

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Feed Items

engagement.geo.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Geo Preview

engagement.idle.cron.set

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Idle Cron Set

engagement.import.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Create

engagement.import.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Import Replay

engagement.leads.export

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads Export

engagement.leads.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Leads List

engagement.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Announcements List

engagement.list.route.tours.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Tours List

engagement.module.set.ai.live

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Ai Live

engagement.module.set.custom.html

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Custom Html

engagement.module.set.enabled

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Module Set Enabled

engagement.module.status

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Promo Module Status

engagement.onsite.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Onsite Preview

engagement.pause.all

Write. Scope: engagement.write, admin. Contract: declared_dynamic. Promo Pause All

engagement.presence

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Presence

engagement.preview.share

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Preview Share

engagement.push.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Push Draft

engagement.recipients.issue

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Issue

engagement.recipients.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Recipients List

engagement.recipients.revoke

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Recipients Revoke

engagement.response.detail

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Response Detail

engagement.responses.browse

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Responses Browse

engagement.rule.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Delete

engagement.rule.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Save

engagement.rule.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Proactive Rule Stats

engagement.rule.test

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Rule Test

engagement.rule.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Proactive Rule Toggle

engagement.rules.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Proactive Rules List

engagement.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Save

engagement.save.route.tour.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Save

engagement.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Stats

engagement.stats.route.tour.stats

Read. Scope: engagement.read, admin. Contract: route_inferred. Tour Stats

engagement.studio.a11y

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio A11y

engagement.studio.ai.generate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Generate

engagement.studio.ai.insights

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Insights

engagement.studio.ai.target

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Ai Target

engagement.studio.archive

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Archive

engagement.studio.assets

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio Assets

engagement.studio.create

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Create

engagement.studio.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Delete

engagement.studio.duplicate

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Duplicate

engagement.studio.event

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Studio Event

engagement.studio.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Get

engagement.studio.governance

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Governance

engagement.studio.list

Read. Scope: engagement.read, admin. Contract: declared_dynamic. Survey Studio List

engagement.studio.preview

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview

engagement.studio.preview.link

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Studio Preview Link

engagement.studio.publish

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Publish

engagement.studio.rename

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Rename

engagement.studio.revert

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Revert

engagement.studio.save.draft

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Draft

engagement.studio.save.targeting

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Save Targeting

engagement.studio.set.active

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Active

engagement.studio.set.status

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Set Status

engagement.studio.template.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Delete

engagement.studio.template.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Template Save

engagement.studio.tpl.preview

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Tpl Preview

engagement.studio.upload

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Upload

engagement.studio.webhook

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Studio Webhook

engagement.targeting.simulate

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Targeting Simulate

engagement.template.apply

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Apply

engagement.template.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Template List

engagement.template.save.custom

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Template Save Custom

engagement.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Announcement Toggle

engagement.toggle.route.tour.toggle

Write. Scope: engagement.write, admin. Contract: route_inferred. Tour Toggle

engagement.trigger.set.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Trigger Set Save

engagement.variant.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Delete

engagement.variant.list

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Variant List

engagement.variant.promote

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Promote

engagement.variant.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Variant Save

engagement.version.compare

Read. Scope: engagement.read, admin. Contract: route_inferred. Survey Version Compare

engagement.version.get

Read. Scope: engagement.read, admin. Contract: route_inferred. Promo Version Get

engagement.version.label

Write. Scope: engagement.write, admin. Contract: route_inferred. Promo Version Label

engagement.webhook.delete

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Delete

engagement.webhook.replay

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Replay

engagement.webhook.run

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Run

engagement.webhook.save

Write. Scope: engagement.write, admin. Contract: route_inferred. Survey Webhook Save

feedback (8)

feedback.analytics

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Analytics

feedback.detractors

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Detractors

feedback.get

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Get

feedback.ingest

Write. Scope: feedback.write, admin. Contract: explicit. Ingest a feedback record or external review

feedback.list

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback List

feedback.overview

Read. Scope: feedback.read, admin. Contract: source_inferred. Feedback Overview

feedback.sources.list

Read. Scope: feedback.read, admin. Contract: explicit. List Voice of Customer feedback sources

feedback.update

Write. Scope: feedback.write, admin. Contract: source_inferred. Feedback Update Retry-safe with idempotency_key.

files (1)

files.get

Read. Scope: files.read, admin. Contract: source_inferred. Files Get

h (48)

hr.agent.incident.close

Write. Scope: hr.write, admin. Contract: route_inferred. Close an agent incident — the same act that lifts the suspension it caused Required fields: incident_uuid, resolution.

hr.agent.step

Write. Scope: hr.write, admin. Contract: route_inferred. Run one agent step: gate verdict, execution and outcome reported separately Required fields: run_uuid, agent_key, tool_key, jurisdiction, purpose.

hr.agent.step.status

Read. Scope: hr.read, admin. Contract: route_inferred. What actually happened at a step (permitted, executed, proven, failed, compensated) Required fields: run_uuid, seq.

hr.agent.takeover

Write. Scope: hr.write, admin. Contract: route_inferred. A human takes an agent run; no further agent steps are accepted Required fields: run_uuid.

hr.agent.tool.grant

Write. Scope: hr.write, admin. Contract: route_inferred. Grant an agent a tool for one jurisdiction and purpose, up to a risk ceiling Required fields: agent_key, tool_key, jurisdiction, max_risk, purpose.

hr.agent.tools

Read. Scope: hr.read, admin. Contract: declared_dynamic. List the registered typed tools an agent may use, and open agent incidents

hr.ai.corrections

Write. Scope: hr.write, admin. Contract: declared_dynamic. Bundle recent reviewer corrections into a dataset; it is pending privacy review and trains nothing

hr.ai.quality.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. The AI quality board: sampled defect rate, override pressure per workflow, coaching reception

hr.booking.slots_reconcile

Write. Scope: hr.write, admin. Contract: declared_dynamic. Release booking slots whose claim never became a booked meeting

hr.connectors.certify

Write. Scope: hr.write, admin. Contract: route_inferred. Certify an HR connector (scope sandbox|production; production demands provider-side proof under dual control) Required fields: connector_class, connector_key, scope, evidence, submitted_by.

hr.connectors.health

Read. Scope: hr.read, admin. Contract: route_inferred. One connector account's health: certification level and scope, last reconciliation verdict, failures and webhook backlog Required fields: account_uuid.

hr.decisions.appeals

Write. Scope: hr.write, admin. Contract: route_inferred. File an appeal against an AI decision on a person's behalf; it must be heard by an independent human Required fields: decision_uuid, subject_type, subject_id, grounds.

hr.decisions.explanation

Read. Scope: hr.read, admin. Contract: route_inferred. Plain-language explanation of one AI decision: what was looked at, which policy, and how to appeal Required fields: decision_uuid, audience.

hr.employee.provision

Write. Scope: hr.write, admin. Contract: route_inferred. Provision seatless employee access and send the invitation Required fields: person_uuid.

hr.employee.restore

Write. Scope: hr.write, admin. Contract: route_inferred. Lift an employee access suspension (written reason required) and provision again Required fields: person_uuid, reason.

hr.experience.metrics

Read. Scope: hr.read, admin. Contract: route_inferred. Measured persona experience metrics (self-service rate, decision cycle, coaching usefulness, quality) from live journeys

hr.global.readiness

Read. Scope: hr.read, admin. Contract: declared_dynamic. The whole launch picture: 15-gate leadership score, release readiness checks and jurisdiction coverage

hr.identity.facets

Read. Scope: hr.read, admin. Contract: route_inferred. List a person's identity facets and open conflicts Required fields: person_uuid.

hr.identity.link

Write. Scope: hr.write, admin. Contract: route_inferred. Link an identity facet to a person Required fields: person_uuid, facet_type, facet_key.

hr.interview.room.connect

Write. Scope: hr.write, admin. Contract: route_inferred. Connect the AI to interview media; refuses unless media really reaches the worker Required fields: media_uuid.

hr.interview.room.consent

Write. Scope: hr.write, admin. Contract: route_inferred. Record or withdraw consent for ONE interview purpose (recording, biometric_liveness, transcription) Required fields: media_uuid, purpose, state.

hr.interview.room.pause

Write. Scope: hr.write, admin. Contract: route_inferred. Pause a live interview Required fields: media_uuid.

hr.interview.room.provision

Write. Scope: hr.write, admin. Contract: route_inferred. Provision an interview room (a place to meet — NOT AI participation) Required fields: session_uuid, transport, accommodation_route.

hr.interview.room.state

Read. Scope: hr.read, admin. Contract: route_inferred. Read an interview room, including whether the AI is actually participating Required fields: media_uuid.

hr.interview.room.takeover

Write. Scope: hr.write, admin. Contract: route_inferred. A human takes the interview; the AI cannot speak in it again Required fields: media_uuid, reason.

hr.jurisdiction.capabilities

Read. Scope: hr.read, admin. Contract: route_inferred. What this product may do in one country, per feature, with the law behind each answer Required fields: code.

hr.jurisdiction.change.raise

Write. Scope: hr.write, admin. Contract: route_inferred. Report a change in the law; a high or critical one suspends every lane in that jurisdiction at once Required fields: pack_key, summary, severity.

hr.jurisdiction.coverage

Read. Scope: hr.read, admin. Contract: declared_dynamic. Computed coverage for every market: released pack, named counsel owner, cited sources, passing tests

hr.jurisdiction.explain

Read. Scope: hr.read, admin. Contract: route_inferred. Why an action about one person is allowed, reduced or blocked, with the rule and citation Required fields: person_uuid, feature.

hr.jurisdiction.pack.release

Write. Scope: hr.write, admin. Contract: route_inferred. Put a drafted policy pack into effect; refused without a named counsel owner and a cited law Required fields: release_uuid.

hr.learning.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read courses, paths and enrolments

hr.leave.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read leave types and requests

hr.lifecycle.lanes

Read. Scope: hr.read, admin. Contract: declared_dynamic. Every lifecycle lane with its mode, KPIs and whether a live tool path really exists behind it

hr.marketplace.overview

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read HR connector accounts, conflicts and deliveries

hr.org.tree

Read. Scope: hr.read, admin. Contract: declared_dynamic. Read the organisation tree

hr.people.create

Write. Scope: hr.write, admin. Contract: route_inferred. Create an HR person Required fields: display_name.

hr.people.get

Read. Scope: hr.read, admin. Contract: route_inferred. Get one HR person Required fields: person_uuid.

hr.people.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List HR people

hr.people.update

Write. Scope: hr.write, admin. Contract: route_inferred. Update an HR person Required fields: person_uuid, display_name, primary_email.

hr.postings.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List job postings

hr.readiness.read

Read. Scope: hr.read, admin. Contract: declared_dynamic. Run the HR release readiness report

hr.release.verify

Write. Scope: hr.write, admin. Contract: declared_dynamic. Run the four HR release gates (schema, manifest, probe, readiness)

hr.requisitions.create

Write. Scope: hr.write, admin. Contract: route_inferred. Create a requisition Required fields: title, openings, justification.

hr.requisitions.list

Read. Scope: hr.read, admin. Contract: declared_dynamic. List requisitions

hr.thread.delete

Write. Scope: hr.write, admin. Contract: route_inferred. Delete a workforce conversation; refused while it is under legal hold Required fields: thread_uuid, reason.

hr.thread.legal_hold

Write. Scope: hr.write, admin. Contract: route_inferred. Place or lift a legal hold on a workforce conversation Required fields: thread_uuid, on, reason.

hr.thread.retention

Write. Scope: hr.write, admin. Contract: route_inferred. Set a conversation's retention class (standard|extended|permanent) Required fields: thread_uuid, retention_class.

hr.threads.retention_sweep

Write. Scope: hr.write, admin. Contract: declared_dynamic. Run the conversation retention sweep; legal holds are never swept

intent (6)

intent.clear

Write. Scope: intent.write, admin. Contract: declared_dynamic. Intent Clear

intent.funnel

Read. Scope: intent.read, analytics.read, admin. Contract: route_inferred. Read the intent funnel

intent.funnel.aggregate

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel Aggregate

intent.funnel.route.intent.funnel

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Funnel

intent.summary

Read. Scope: intent.read, analytics.read, admin. Contract: route_inferred. Read intent summaries

intent.summary.route.intent.summary

Read. Scope: intent.read, admin. Contract: route_inferred. Intent Summary

kb (6)

kb.faq.delete

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Delete Retry-safe with idempotency_key.

kb.faq.generate

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Generate Retry-safe with idempotency_key.

kb.faq.import

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Import Retry-safe with idempotency_key.

kb.faq.list

Read. Scope: kb.read, read, admin. Contract: source_inferred. Kb Faq List

kb.faq.save

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Save Retry-safe with idempotency_key.

kb.faq.set_status

Write. Scope: kb.write, admin. Contract: source_inferred. Kb Faq Set Status Retry-safe with idempotency_key.

knowledge (78)

knowledge.analytics.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Analytics Get

knowledge.analytics.toggle

Write. Scope: kb.write, admin. Contract: route_inferred. Help Analytics Toggle

knowledge.article.ai.refine

Read. Scope: kb.read, admin. Contract: route_inferred. Help Article Ai Refine

knowledge.article.class.bulk

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Class Bulk

knowledge.article.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Delete

knowledge.article.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Publish

knowledge.article.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Save

knowledge.article.set.category

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Category

knowledge.article.set.public

Write. Scope: kb.write, admin. Contract: route_inferred. Help Article Set Public

knowledge.articles.ai.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Ai Generate

knowledge.articles.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Bulk Delete

knowledge.articles.count

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Articles Count

knowledge.articles.get

Read. Scope: kb.read, admin. Contract: explicit. Get one Help Center article Required fields: article_id.

knowledge.articles.ids

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Ids

knowledge.articles.list

Read. Scope: kb.read, admin. Contract: route_inferred. Help Articles List

knowledge.articles.set.public.all

Write. Scope: kb.write, admin. Contract: route_inferred. Help Articles Set Public All

knowledge.categories.ai.merge

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Ai Merge

knowledge.categories.bulk.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Categories Bulk Delete

knowledge.categories.list

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Categories List

knowledge.categories.merge.dupes

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Categories Merge Dupes

knowledge.category.delete

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Delete

knowledge.category.get

Read. Scope: kb.read, admin. Contract: route_inferred. Help Category Get

knowledge.category.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Category Save

knowledge.center.article.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Article Image Upload

knowledge.center.favicon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Favicon Upload

knowledge.center.hero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Dark Upload

knowledge.center.hero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Hero Upload

knowledge.center.logo.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Dark Upload

knowledge.center.logo.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Logo Upload

knowledge.center.og.image.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Og Image Upload

knowledge.center.settings.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Settings Get

knowledge.center.settings.save

Write. Scope: kb.write, admin. Contract: route_inferred. Help Center Settings Save

knowledge.center.subhero.dark.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Dark Upload

knowledge.center.subhero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Subhero Upload

knowledge.center.translate.estimate

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Estimate

knowledge.center.translate.run

Write. Scope: kb.write, admin. Contract: route_inferred. Help Center Translate Run

knowledge.center.translate.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Center Translate Status

knowledge.center.translate.stop

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Translate Stop

knowledge.center.widget.hero.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Widget Hero Upload

knowledge.center.widget.icon.upload

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Center Widget Icon Upload

knowledge.comments.deliver.notifications

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Deliver Notifications

knowledge.comments.moderate

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Comments Moderate

knowledge.comments.moderation.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Comments Moderation List

knowledge.import.batches

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Batches

knowledge.import.connectors

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Import Connectors

knowledge.import.csv.preview

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Import Csv Preview

knowledge.import.preview

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Preview

knowledge.import.resync

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Resync

knowledge.import.run

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Run

knowledge.import.undo

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Import Undo

knowledge.insights.generate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Insights Generate

knowledge.insights.get

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Insights Get

knowledge.mark.reviewed

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Mark Reviewed

knowledge.missed.dismiss

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Dismiss

knowledge.missed.draft.article

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Draft Article

knowledge.missed.list

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Missed List

knowledge.missed.mark.published

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Missed Mark Published

knowledge.missed.refresh

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Missed Refresh

knowledge.organize.descriptions

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Descriptions

knowledge.organize.status

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Organize Status

knowledge.organize.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Organize Step

knowledge.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Publish

knowledge.reformat.revert

Write. Scope: kb.write, admin. Contract: declared_dynamic. Help Reformat Revert

knowledge.reformat.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Help Reformat Status

knowledge.reformat.step

Write. Scope: kb.write, admin. Contract: route_inferred. Help Reformat Step

knowledge.review.queue

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Review Queue

knowledge.search.gaps

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Search Gaps

knowledge.set.featured

Write. Scope: kb.write, admin. Contract: route_inferred. Help Set Featured

knowledge.set.visibility

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Set Visibility

knowledge.subdomain.allocate

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Allocate

knowledge.subdomain.check

Read. Scope: kb.read, admin. Contract: route_inferred. Help Subdomain Check

knowledge.subdomain.release

Write. Scope: kb.write, admin. Contract: route_inferred. Help Subdomain Release

knowledge.taxonomy.organize

Write. Scope: kb.write, admin. Contract: declared_dynamic. Kb Taxonomy Organize

knowledge.taxonomy.status

Read. Scope: kb.read, admin. Contract: declared_dynamic. Kb Taxonomy Status

knowledge.taxonomy.step

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Taxonomy Step

knowledge.widget.categories

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Categories

knowledge.widget.publish

Write. Scope: kb.write, admin. Contract: route_inferred. Kb Widget Publish

knowledge.widget.targets

Read. Scope: kb.read, admin. Contract: route_inferred. Kb Widget Targets

leads (6)

leads.delete

Write. Scope: leads.write, crm.write, admin. Contract: route_inferred. Delete a lead Required fields: lead_id.

leads.delete.route.lead.delete

Write. Scope: leads.write, admin. Contract: route_inferred. Lead Delete

leads.list

Read. Scope: leads.read, crm.read, admin. Contract: route_inferred. List leads

leads.stats

Read. Scope: leads.read, analytics.read, admin. Contract: declared_dynamic. Get lead statistics

leads.stats.route.leads.stats

Read. Scope: leads.read, admin. Contract: declared_dynamic. Leads Stats

leads.update

Write. Scope: leads.write, crm.write, admin. Contract: route_inferred. Update a lead Required fields: lead_id, status.

Siêu (4)

meta.action

Read. Scope: none. Contract: explicit. Get one General API action contract Required fields: name.

meta.actions

Read. Scope: none. Contract: explicit. List the complete General API contract

meta.me

Read. Scope: none. Contract: explicit. Describe the authenticated API key and active workspace

meta.scopes

Read. Scope: none. Contract: explicit. List API scopes and the actions protected by each scope

notifications (1)

notifications.list

Read. Scope: notifications.read, admin. Contract: source_inferred. Notifications List

Nền (926)

platform.add.announcement

Write. Scope: platform.write, admin. Contract: declared_dynamic. Add Announcement

platform.add.kb.article

Write. Scope: platform.write, admin. Contract: route_inferred. Add Kb Article

platform.add.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Add Todo Item

platform.ai.action.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Action Lookup

platform.ai.anomaly.detect

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Anomaly Detect

platform.ai.brain.add

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Add

platform.ai.brain.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Delete

platform.ai.brain.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Edit

platform.ai.brain.list

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain List

platform.ai.brain.pin

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Pin

platform.ai.brain.status

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Brain Status

platform.ai.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Chat

platform.ai.confidence.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Confidence Stats

platform.ai.context.lookup

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Context Lookup

platform.ai.daily.brief

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Daily Brief

platform.ai.daily.brief.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Daily Brief Check

platform.ai.daily.brief.dismiss

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Daily Brief Dismiss

platform.ai.daily.brief.fetch

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Daily Brief Fetch

platform.ai.eval.control.summary

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Control Summary

platform.ai.eval.feedback.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Feedback Queue

platform.ai.eval.kb.gap.queue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Kb Gap Queue

platform.ai.eval.load

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Load

platform.ai.eval.replay.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Replay History

platform.ai.eval.run

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Run

platform.ai.eval.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Eval Save

platform.ai.eval.score.answer

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Eval Score Answer

platform.ai.eval.simulate

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Eval Simulate

platform.ai.feedback.analysis

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Analysis

platform.ai.feedback.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Feedback Stats

platform.ai.history.archive

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Archive

platform.ai.history.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Clear All

platform.ai.history.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Delete

platform.ai.history.export.csv

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Export Csv

platform.ai.history.get

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Get

platform.ai.history.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History List

platform.ai.history.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai History Stats

platform.ai.insight.clear

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Clear

platform.ai.insight.history

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight History

platform.ai.insight.report.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Insight Report Delete

platform.ai.insight.report.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Insight Report Get

platform.ai.instructions.compress

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Compress

platform.ai.instructions.connector.templates

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Connector Templates

platform.ai.instructions.example

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Instructions Example

platform.ai.instructions.load

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Load

platform.ai.instructions.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Instructions Preview

platform.ai.instructions.reset

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Reset

platform.ai.instructions.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Ai Instructions Save

platform.ai.page.insights

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Page Insights

platform.ai.popup.regen

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Popup Regen

platform.ai.quality.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Quality View

platform.ai.reasoning.chain.get

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Reasoning Chain Get

platform.ai.score.lead

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Score Lead

platform.ai.smart.alerts

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Smart Alerts

platform.ai.spoke

Read. Scope: platform.read, admin. Contract: route_inferred. Ai Spoke

platform.ai.triage.accuracy

Read. Scope: platform.read, admin. Contract: declared_dynamic. Ai Triage Accuracy

platform.ai.whmcs.chat

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Whmcs Chat

platform.ai.writing

Write. Scope: platform.write, admin. Contract: route_inferred. Ai Writing

platform.api.keys.catalog

Read. Scope: admin. Contract: declared_dynamic. Api Keys Catalog

platform.api.keys.create

Write. Scope: admin. Contract: route_inferred. Api Keys Create

platform.api.keys.delete

Write. Scope: admin. Contract: route_inferred. Api Keys Delete

platform.api.keys.list

Read. Scope: admin. Contract: declared_dynamic. Api Keys List

platform.api.keys.revoke

Write. Scope: admin. Contract: route_inferred. Api Keys Revoke

platform.api.keys.update

Write. Scope: admin. Contract: route_inferred. Api Keys Update

platform.audit.export

Read. Scope: admin. Contract: route_inferred. Audit Export

platform.blocked

Write. Scope: platform.write, admin. Contract: route_inferred. Blocked

platform.campaigns

Read. Scope: platform.read, admin. Contract: declared_dynamic. Campaigns

platform.chart.browsers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Browsers

platform.chart.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Countries

platform.chart.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Devices

platform.chart.hourly

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Hourly

platform.chart.new.returning

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart New Returning

platform.chart.os

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Os

platform.chart.sources

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chart Sources

platform.chart.visitors

Read. Scope: platform.read, admin. Contract: route_inferred. Chart Visitors

platform.chatbot.flow.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Delete

platform.chatbot.flow.get

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Get

platform.chatbot.flow.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Save

platform.chatbot.flow.stats

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Flow Stats

platform.chatbot.flow.test.advance

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Test Advance

platform.chatbot.flow.test.start

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Test Start

platform.chatbot.flow.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Flow Toggle

platform.chatbot.flows.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Chatbot Flows List

platform.chatbot.node.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Delete

platform.chatbot.node.save

Write. Scope: platform.write, admin. Contract: route_inferred. Chatbot Node Save

platform.chatbot.nodes.list

Read. Scope: platform.read, admin. Contract: route_inferred. Chatbot Nodes List

platform.clear.admin.chat.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Clear Admin Chat History

platform.command.center.view

Read. Scope: platform.read, admin. Contract: declared_dynamic. Command Center View

platform.commerce.actf.execute

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Actf Execute

platform.commerce.actf.policy.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Actf Policy Save

platform.commerce.actf.review

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Actf Review

platform.commerce.actf.simulate

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Actf Simulate

platform.commerce.analytics.report

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Analytics Report

platform.commerce.analytics.report.email

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Analytics Report Email

platform.commerce.autonomy.issue

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Autonomy Issue

platform.commerce.autonomy.status

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Autonomy Status

platform.commerce.collections.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Collections Delete

platform.commerce.collections.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Collections Save

platform.commerce.customer.block

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Block

platform.commerce.customer.credit.add

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Credit Add

platform.commerce.customer.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Customer Save

platform.commerce.customers.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Customers List

platform.commerce.digital.codes.import

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Digital Codes Import

platform.commerce.digital.config.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Digital Config Save

platform.commerce.digital.file.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Digital File Upload

platform.commerce.fulfilment.transition

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Fulfilment Transition

platform.commerce.intelligence.economics.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Economics Save

platform.commerce.intelligence.market.price.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Market Price Save

platform.commerce.intelligence.market.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Intelligence Market Save

platform.commerce.kit.apply

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Kit Apply

platform.commerce.kit.preview

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Kit Preview

platform.commerce.kits.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Kits List

platform.commerce.launch.readiness

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Launch Readiness

platform.commerce.menu.ai.build

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Menu Ai Build

platform.commerce.menus.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Menus Save

platform.commerce.merchandising.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Merchandising Save

platform.commerce.midmarket.operations

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Midmarket Operations

platform.commerce.onboarding.ai.draft

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Onboarding Ai Draft

platform.commerce.onboarding.apply

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Onboarding Apply

platform.commerce.option.sets.generate

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Option Sets Generate

platform.commerce.option.sets.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Option Sets Save

platform.commerce.option.templates

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Option Templates

platform.commerce.order.refundable

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Order Refundable

platform.commerce.order.ship

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Order Ship

platform.commerce.order.shipments

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Order Shipments

platform.commerce.orders.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Orders List

platform.commerce.orders.transition

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Orders Transition

platform.commerce.page.ai.draft

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Ai Draft

platform.commerce.page.ai.refine

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Ai Refine

platform.commerce.page.render

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Page Render

platform.commerce.pages.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Pages Delete

platform.commerce.pages.list

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Pages List

platform.commerce.pages.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Pages Save

platform.commerce.price.advice

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Price Advice

platform.commerce.products.ai.copy

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Ai Copy

platform.commerce.products.bulk

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Bulk

platform.commerce.products.catalog.meta

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Catalog Meta

platform.commerce.products.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Delete

platform.commerce.products.duplicate

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Duplicate

platform.commerce.products.export.csv

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products Export Csv

platform.commerce.products.image.alt.ai

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Products Image Alt Ai

platform.commerce.products.image.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Image Delete

platform.commerce.products.image.update

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Image Update

platform.commerce.products.image.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Image Upload

platform.commerce.products.images.list

Read. Scope: commerce.read, admin. Contract: route_inferred. Commerce Products Images List

platform.commerce.products.images.reorder

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Images Reorder

platform.commerce.products.import.csv

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Products Import Csv

platform.commerce.products.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Products List

platform.commerce.products.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Products Save

platform.commerce.refunds.complete.manual

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Refunds Complete Manual

platform.commerce.refunds.request

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Refunds Request

platform.commerce.returns.transition

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Returns Transition

platform.commerce.size.charts.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Size Charts Delete

platform.commerce.size.charts.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Size Charts Save

platform.commerce.store.maturity

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Store Maturity

platform.commerce.storefront.brand.import

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Brand Import

platform.commerce.storefront.domain.remove

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Domain Remove

platform.commerce.storefront.domain.set

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Domain Set

platform.commerce.storefront.logo.upload

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Storefront Logo Upload

platform.commerce.storefront.page.ai.seo

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Storefront Page Ai Seo

platform.commerce.storefront.slug.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Storefront Slug Save

platform.commerce.supply.chain

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Supply Chain

platform.commerce.variants.delete

Write. Scope: commerce.write, admin. Contract: route_inferred. Commerce Variants Delete

platform.commerce.variants.save

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Variants Save

platform.commerce.wallet.topup.refund

Write. Scope: commerce.write, admin. Contract: declared_dynamic. Commerce Wallet Topup Refund

platform.commerce.wallet.topups.list

Read. Scope: commerce.read, admin. Contract: declared_dynamic. Commerce Wallet Topups List

platform.complete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Complete Todo Item

platform.consent.log.list

Read. Scope: platform.read, admin. Contract: route_inferred. Consent Log List

platform.countries

Read. Scope: platform.read, admin. Contract: declared_dynamic. Countries

platform.country.detail

Read. Scope: platform.read, admin. Contract: route_inferred. Country Detail

platform.custom.code.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Approve

platform.custom.code.disable

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Disable

platform.custom.code.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Reject

platform.custom.code.rollback

Write. Scope: platform.write, admin. Contract: route_inferred. Custom Code Rollback

platform.custom.code.status

Read. Scope: platform.read, admin. Contract: route_inferred. Custom Code Status

platform.delete.todo.item

Write. Scope: platform.write, admin. Contract: route_inferred. Delete Todo Item

platform.devices

Read. Scope: platform.read, admin. Contract: declared_dynamic. Devices

platform.diag.check.resolutions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Check Resolutions

platform.diag.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Dismiss

platform.diag.event.taxonomy

Read. Scope: platform.read, admin. Contract: declared_dynamic. Diag Event Taxonomy

platform.diag.identity.restitch

Write. Scope: admin. Contract: declared_dynamic. Diag Identity Restitch

platform.diag.recheck

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Recheck

platform.diag.recheck.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Diag Recheck All

platform.diag.report

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Report

platform.diag.unmute

Write. Scope: platform.write, admin. Contract: route_inferred. Diag Unmute

platform.dismiss.credit.alert

Write. Scope: admin. Contract: route_inferred. Dismiss Credit Alert

platform.domain.knowledge.ai.generate

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Ai Generate

platform.domain.knowledge.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Delete

platform.domain.knowledge.list

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge List

platform.domain.knowledge.save

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Save

platform.domain.knowledge.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Knowledge Toggle

platform.domain.verify.add

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Add

platform.domain.verify.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Domain Verify List

platform.domain.verify.recheck

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Recheck

platform.domain.verify.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Domain Verify Remove

platform.dynamic.action.dispatch

Write. Scope: platform.write, admin. Contract: route_inferred. Dynamic Action Dispatch

platform.events.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Events Clear All

platform.events.list

Read. Scope: platform.read, admin. Contract: route_inferred. Events List

platform.experiment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Delete

platform.experiment.results

Read. Scope: platform.read, admin. Contract: route_inferred. Experiment Results

platform.experiment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Experiment Save

platform.experiments.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Experiments Clear All

platform.experiments.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Experiments List

platform.failed.logins.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear All

platform.failed.logins.clear.history

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins Clear History

platform.failed.logins.journey

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Journey

platform.failed.logins.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Failed Logins List

platform.failed.logins.unblock

Write. Scope: platform.write, admin. Contract: route_inferred. Failed Logins Unblock

platform.feedback.analysis.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Analysis Get

platform.feedback.analysis.run

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Analysis Run

platform.feedback.analytics.all

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics All

platform.feedback.analytics.detractors

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Detractors

platform.feedback.analytics.metrics

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Metrics

platform.feedback.analytics.overview

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Overview

platform.feedback.analytics.segments

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Segments

platform.feedback.analytics.sentiment

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Sentiment

platform.feedback.analytics.themes

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Themes

platform.feedback.analytics.trends

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Analytics Trends

platform.feedback.assignees.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Assignees List

platform.feedback.event.outbox.drain

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Event Outbox Drain

platform.feedback.exports.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Exports Create

platform.feedback.exports.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Exports Get

platform.feedback.external.review.ingest

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback External Review Ingest

platform.feedback.ingest.create

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Ingest Create

platform.feedback.items.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Assign

platform.feedback.items.evidence

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Evidence

platform.feedback.items.follow.up.complete

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Complete

platform.feedback.items.follow.up.set

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Follow Up Set Required fields: bool.

platform.feedback.items.get

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items Get

platform.feedback.items.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback Items List

platform.feedback.items.mark.read

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Mark Read

platform.feedback.items.notes.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Notes Add

platform.feedback.items.set.priority

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Priority

platform.feedback.items.set.status

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Set Status

platform.feedback.items.tags.add

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Add

platform.feedback.items.tags.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Items Tags Remove

platform.feedback.list

Read. Scope: platform.read, admin. Contract: route_inferred. Feedback List

platform.feedback.reconciliation

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reconciliation

platform.feedback.reports.delete

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Reports Delete

platform.feedback.reports.email

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Email

platform.feedback.reports.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports Get

platform.feedback.reports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Reports List

platform.feedback.satisfaction.advice.last

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advice Last

platform.feedback.satisfaction.advise

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Advise

platform.feedback.satisfaction.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Satisfaction Overview

platform.feedback.sources.health

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources Health

platform.feedback.sources.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Feedback Sources List

platform.feedback.sources.rebuild

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Rebuild

platform.feedback.sources.replay

Write. Scope: platform.write, admin. Contract: route_inferred. Feedback Sources Replay

platform.feedback.stats

Write. Scope: platform.write, admin. Contract: declared_dynamic. Feedback Stats

platform.fx.refresh.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. Fx Refresh Now

platform.geoip.autodetect

Read. Scope: platform.read, admin. Contract: declared_dynamic. Geoip Autodetect

platform.get.admin.chat.history

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Admin Chat History

platform.get.ai.snapshot

Write. Scope: platform.write, admin. Contract: route_inferred. Get Ai Snapshot

platform.get.campaign.groups

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Campaign Groups

platform.get.client.chat.knowledge.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Client Chat Knowledge Overview

platform.get.kb.categories

Read. Scope: platform.read, admin. Contract: route_inferred. Get Kb Categories

platform.get.live.health.snapshot

Read. Scope: platform.read, admin. Contract: route_inferred. Get Live Health Snapshot

platform.get.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Get Pwa Chat Prefs

platform.get.servers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Servers

platform.get.survey.config

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Survey Config

platform.get.ticket.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Ticket Options

platform.get.ticket.thread

Read. Scope: platform.read, admin. Contract: route_inferred. Get Ticket Thread

platform.get.todo.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Get Todo List

platform.get.widget.advanced

Read. Scope: platform.read, admin. Contract: route_inferred. Get Widget Advanced

platform.governance.summary

Read. Scope: platform.read, admin. Contract: route_inferred. Governance Summary

platform.groups.create

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Create

platform.groups.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Delete

platform.groups.list

Write. Scope: platform.write, admin. Contract: route_inferred. Groups List

platform.groups.rename

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Rename

platform.groups.set.primary

Write. Scope: platform.write, admin. Contract: route_inferred. Groups Set Primary

platform.hc.preview.mint

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Preview Mint

platform.hc.template.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Apply

platform.hc.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Delete

platform.hc.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hc Template Preview

platform.hc.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hc Template Save

platform.hc.templates.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Templates List

platform.hc.translation.review.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review Get

platform.hc.translation.review.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hc Translation Review List

platform.hc.translation.review.revert

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Revert

platform.hc.translation.review.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hc Translation Review Save

platform.heatmap

Read. Scope: platform.read, admin. Contract: route_inferred. Heatmap

platform.hr.access.grant.manual

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Grant Manual

platform.hr.access.policy.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Access Policy List

platform.hr.access.policy.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Policy Set

platform.hr.access.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Request

platform.hr.access.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Access Revoke

platform.hr.accommodation.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Accommodation List

platform.hr.accommodation.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Accommodation Resolve

platform.hr.agent.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Assign

platform.hr.agent.compensation.retry

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Compensation Retry

platform.hr.agent.compensation.sweep

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Agent Compensation Sweep

platform.hr.agent.compensations

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Agent Compensations

platform.hr.agent.incident.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Incident Close

platform.hr.agent.register

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Register

platform.hr.agent.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Step

platform.hr.agent.step.status

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Agent Step Status

platform.hr.agent.tool.auth

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Tool Auth

platform.hr.agent.tool.grant

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Agent Tool Grant

platform.hr.agent.tools

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Agent Tools

platform.hr.ai.act.build

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Ai Act Build

platform.hr.ai.act.export

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Act Export

platform.hr.ai.act.fria.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Fria Record

platform.hr.ai.act.notice.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Notice Publish

platform.hr.ai.act.overseer.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Overseer Assign

platform.hr.ai.act.overseer.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Act Overseer Revoke

platform.hr.ai.act.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Act Overview

platform.hr.ai.metering.export

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Ai Metering Export

platform.hr.ai.metering.overview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Ai Metering Overview

platform.hr.ai.metering.settings.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Ai Metering Settings Save

platform.hr.ai.status

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Ai Status

platform.hr.analytics.ask

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Analytics Ask

platform.hr.analytics.snapshot

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Analytics Snapshot

platform.hr.app.move

Write. Scope: platform.write, admin. Contract: route_inferred. Hr App Move

platform.hr.appeal.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Appeal List

platform.hr.appeal.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Appeal Resolve

platform.hr.application.history

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Application History

platform.hr.application.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Application List

platform.hr.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Assign

platform.hr.auto.offer.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Auto Offer Run

platform.hr.autonomy.lane.demote

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Demote

platform.hr.autonomy.lane.install

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Autonomy Lane Install

platform.hr.autonomy.lane.promote

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Promote

platform.hr.autonomy.lane.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Autonomy Lane Review

platform.hr.autonomy.lane.shadow

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Autonomy Lane Shadow

platform.hr.autonomy.lanes

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Autonomy Lanes

platform.hr.autonomy.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Autonomy Overview

platform.hr.availability.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Availability Save

platform.hr.band.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Band Approve

platform.hr.band.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Band List

platform.hr.band.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Band Save

platform.hr.benchmarks.contribute.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Benchmarks Contribute Now

platform.hr.benchmarks.opt.in

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benchmarks Opt In

platform.hr.benchmarks.opt.out

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Benchmarks Opt Out

platform.hr.benchmarks.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Benchmarks Overview

platform.hr.benefit.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benefit Enroll

platform.hr.benefit.plan.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Benefit Plan Save

platform.hr.bias.audit.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Bias Audit List

platform.hr.bias.audit.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Bias Audit Run

platform.hr.booking.link.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Booking Link Save

platform.hr.booking.slots.reconcile

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Booking Slots Reconcile

platform.hr.breaker.reset

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Breaker Reset

platform.hr.broadcast.audience.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Broadcast Audience Options

platform.hr.broadcast.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Broadcast List

platform.hr.broadcast.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Broadcast Preview

platform.hr.broadcast.send

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Broadcast Send

platform.hr.budget.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Budget Set

platform.hr.calibration.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Close

platform.hr.calibration.move

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Move

platform.hr.calibration.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Calibration Open

platform.hr.capabilities.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Capabilities Get

platform.hr.capability.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Capability Set

platform.hr.capability.trail

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Capability Trail

platform.hr.cards.refresh

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Cards Refresh

platform.hr.case.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Assign

platform.hr.case.attachment.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Attachment Add

platform.hr.case.attachment.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Attachment List

platform.hr.case.categories

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Case Categories

platform.hr.case.event.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Event Add

platform.hr.case.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Get

platform.hr.case.grant.access

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Case Grant Access

platform.hr.case.intake.mailbox

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Intake Mailbox

platform.hr.case.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Case List

platform.hr.case.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Open

platform.hr.case.route

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Route

platform.hr.case.thread

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Thread

platform.hr.case.tighten

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Case Tighten

platform.hr.certification.define

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Certification Define

platform.hr.certification.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Certification List

platform.hr.certification.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Certification Record

platform.hr.certification.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Certification State

platform.hr.certification.types

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Certification Types

platform.hr.check.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Check List

platform.hr.check.manual.result

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Manual Result

platform.hr.check.order

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Order

platform.hr.check.requery

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Requery

platform.hr.check.void

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Check Void

platform.hr.checkin.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Checkin Record

platform.hr.coach.feedback

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Coach Feedback

platform.hr.coach.me

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Coach Me

platform.hr.coach.receive

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Coach Receive

platform.hr.comp.change.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Comp Change Approve

platform.hr.comp.change.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Comp Change Request

platform.hr.compliance.build

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Compliance Build

platform.hr.compliance.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Compliance List

platform.hr.connector.cert.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Cert Revoke

platform.hr.connector.cert.submissions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Connector Cert Submissions

platform.hr.connector.cert.submit

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Cert Submit

platform.hr.connector.certify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Certify

platform.hr.connector.health

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Connector Health

platform.hr.connector.options

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Connector Options

platform.hr.connector.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Connector Revoke

platform.hr.contract.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Contract List

platform.hr.copilot.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Copilot Apply

platform.hr.copilot.plan

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Copilot Plan

platform.hr.copilot.recipes

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Copilot Recipes

platform.hr.copilot.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Copilot Reject

platform.hr.correction.dataset.build

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Correction Dataset Build

platform.hr.correction.datasets

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Correction Datasets

platform.hr.correction.privacy.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Correction Privacy Review

platform.hr.course.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Enroll

platform.hr.course.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Save

platform.hr.course.skills.tag

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Course Skills Tag

platform.hr.decision.appeal.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal Assign

platform.hr.decision.appeal.file

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal File

platform.hr.decision.appeal.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Decision Appeal Resolve

platform.hr.decision.appeals.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Decision Appeals List

platform.hr.decision.explanation

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Decision Explanation

platform.hr.decisions.recent

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Decisions Recent

platform.hr.directory.visibility.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Directory Visibility Get

platform.hr.directory.visibility.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Directory Visibility Set

platform.hr.discipline.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Discipline Decide

platform.hr.discipline.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Discipline Propose

platform.hr.document.access.log

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Document Access Log

platform.hr.document.deletion.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Deletion Request

platform.hr.document.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Hold

platform.hr.document.intake

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Intake

platform.hr.document.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Document List

platform.hr.document.requirement.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Requirement Add

platform.hr.document.requirement.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Requirement Remove

platform.hr.document.review.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Document Review Approve

platform.hr.document.reviews

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Document Reviews

platform.hr.dsr.list

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Dsr List

platform.hr.dsr.transition

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Dsr Transition

platform.hr.email.intake.log

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Email Intake Log

platform.hr.employee.access.events

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Employee Access Events

platform.hr.employee.provision

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Provision

platform.hr.employee.restore

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Restore

platform.hr.employee.suspend

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employee Suspend

platform.hr.employment.activate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employment Activate

platform.hr.employment.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Employment End

platform.hr.enterprise.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Enterprise Approve

platform.hr.equipment.delivered

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Delivered

platform.hr.equipment.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Request

platform.hr.equipment.returned

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Equipment Returned

platform.hr.escrow.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Escrow Resolve

platform.hr.evidence.a11y.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence A11y Record

platform.hr.evidence.attest

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Attest

platform.hr.evidence.dr.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Dr Record

platform.hr.evidence.ledgers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Evidence Ledgers

platform.hr.evidence.load.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Load Record

platform.hr.evidence.owner.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Evidence Owner Assign

platform.hr.expense.confirm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Confirm

platform.hr.expense.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Decide

platform.hr.expense.handoff

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Handoff

platform.hr.expense.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Expense Overview

platform.hr.expense.policy.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Expense Policy Save

platform.hr.experience.metrics

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Experience Metrics

platform.hr.expiry.run

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Expiry Run

platform.hr.fairness.cohort.define

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Fairness Cohort Define

platform.hr.fairness.cohorts

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Fairness Cohorts

platform.hr.fairness.evaluate

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Fairness Evaluate

platform.hr.faq.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Delete

platform.hr.faq.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Draft

platform.hr.faq.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Faq List

platform.hr.faq.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq Save

platform.hr.faq.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Faq State

platform.hr.feedback.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Feedback List

platform.hr.feedback.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Feedback Record

platform.hr.flag.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Flag Set

platform.hr.flags.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Flags Get

platform.hr.frontline.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Frontline Overview

platform.hr.gig.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Gig Decide

platform.hr.gig.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Gig Post

platform.hr.global.readiness

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Global Readiness

platform.hr.goal.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Create

platform.hr.goal.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Draft

platform.hr.goal.update

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Goal Update

platform.hr.grievance.file

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Grievance File

platform.hr.grievance.outcome

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Grievance Outcome

platform.hr.headcount.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Headcount Approve

platform.hr.headcount.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Headcount Draft

platform.hr.headcount.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Headcount List

platform.hr.hire

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Hire

platform.hr.hiring.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Hiring Decide

platform.hr.holiday.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Holiday Save

platform.hr.identity.admin.options

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity Admin Options

platform.hr.identity.conflict.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Conflict Resolve

platform.hr.identity.coverage.plan

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity Coverage Plan

platform.hr.identity.facets

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Identity Facets

platform.hr.identity.history

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Identity History

platform.hr.identity.link

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Link

platform.hr.identity.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Revoke

platform.hr.identity.verification.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Identity Verification Record

platform.hr.incident.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Incident List

platform.hr.incident.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Incident Open

platform.hr.incident.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Incident Step

platform.hr.interview.recording.start

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Recording Start

platform.hr.interview.recording.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Recording Upload

platform.hr.interview.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Review

platform.hr.interview.room.answer

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Answer

platform.hr.interview.room.ask

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Ask

platform.hr.interview.room.connect

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Connect

platform.hr.interview.room.consent

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Consent

platform.hr.interview.room.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room End

platform.hr.interview.room.leave

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Leave

platform.hr.interview.room.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Interview Room List

platform.hr.interview.room.observe

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Observe

platform.hr.interview.room.pause

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Pause

platform.hr.interview.room.provision

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Provision

platform.hr.interview.room.reconnect

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Reconnect

platform.hr.interview.room.resume

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room Resume

platform.hr.interview.room.state

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Interview Room State

platform.hr.interview.room.takeover

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Room Takeover

platform.hr.interview.schedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Schedule

platform.hr.interview.transcript.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Interview Transcript Correct

platform.hr.investigation.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Close

platform.hr.investigation.finding

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Finding

platform.hr.investigation.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Hold

platform.hr.investigation.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Investigation Open

platform.hr.investigation.triage

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Investigation Triage

platform.hr.iplan.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iplan Approve

platform.hr.iplan.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iplan Create

platform.hr.iplan.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Iplan List

platform.hr.iscore.human

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iscore Human

platform.hr.iscore.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Iscore Run

platform.hr.isession.attach.meeting

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Attach Meeting

platform.hr.isession.control

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Control

platform.hr.isession.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Isession List

platform.hr.isession.liveness

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Isession Liveness

platform.hr.isession.schedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Isession Schedule

platform.hr.job.arch.analyse

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Job Arch Analyse

platform.hr.job.arch.apply

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Apply

platform.hr.job.arch.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Approve

platform.hr.job.arch.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Job Arch Overview

platform.hr.job.arch.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Propose

platform.hr.job.arch.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Arch Reject

platform.hr.job.family.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Family Save

platform.hr.job.level.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Level Save

platform.hr.job.profile.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Profile Save

platform.hr.job.version.draft.ai

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Draft Ai

platform.hr.job.version.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Publish

platform.hr.job.version.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Job Version Save

platform.hr.job.versions

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Job Versions

platform.hr.jurisdiction.capabilities

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Capabilities

platform.hr.jurisdiction.case.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Case Run

platform.hr.jurisdiction.case.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Case Save

platform.hr.jurisdiction.change.assess

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Assess

platform.hr.jurisdiction.change.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Close

platform.hr.jurisdiction.change.raise

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Change Raise

platform.hr.jurisdiction.coverage

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Jurisdiction Coverage

platform.hr.jurisdiction.explain

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Explain

platform.hr.jurisdiction.overlay.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Overlay List

platform.hr.jurisdiction.overlay.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Overlay Save

platform.hr.jurisdiction.pack.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Draft

platform.hr.jurisdiction.pack.release

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Release

platform.hr.jurisdiction.pack.withdraw

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Pack Withdraw

platform.hr.jurisdiction.release.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Jurisdiction Release List

platform.hr.jurisdiction.rule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Rule Save

platform.hr.jurisdiction.source.declare

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Jurisdiction Source Declare

platform.hr.jurisdiction.transfer.declare

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Jurisdiction Transfer Declare

platform.hr.kill.flip

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kill Flip

platform.hr.kill.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kill Toggle

platform.hr.kiosk.register

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kiosk Register

platform.hr.kiosk.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Kiosk Revoke

platform.hr.knowledge.pack.install

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Knowledge Pack Install

platform.hr.knowledge.pack.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Knowledge Pack Remove

platform.hr.knowledge.packs

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Knowledge Packs

platform.hr.leadership.score

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Leadership Score

platform.hr.learning.assign.mandatory

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Learning Assign Mandatory

platform.hr.learning.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Learning Overview

platform.hr.leave.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Decide

platform.hr.leave.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Leave Overview

platform.hr.leave.policy.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Policy Save

platform.hr.leave.type.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Leave Type Save

platform.hr.letter.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Letter Issue

platform.hr.letter.kinds

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Letter Kinds

platform.hr.letter.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Letter Preview

platform.hr.listening.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Close

platform.hr.listening.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Listening Overview

platform.hr.listening.run.due

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Listening Run Due

platform.hr.listening.schedule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Schedule Save

platform.hr.listening.schedule.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Listening Schedule State

platform.hr.loop.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Approve

platform.hr.loop.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Correct

platform.hr.loop.evaluate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Evaluate

platform.hr.loop.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Loop Overview

platform.hr.loop.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Propose

platform.hr.loop.release

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Release

platform.hr.loop.rollback

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Rollback

platform.hr.loop.snapshot

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Loop Snapshot

platform.hr.marketplace.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Marketplace Overview

platform.hr.meeting.book

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Book

platform.hr.meeting.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Cancel

platform.hr.meeting.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Propose

platform.hr.meeting.reschedule

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Meeting Reschedule

platform.hr.meetings.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Meetings Overview

platform.hr.meetings.reconcile

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Meetings Reconcile

platform.hr.mentor.propose

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Mentor Propose

platform.hr.module.toggle

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Module Toggle

platform.hr.new.hire.checkin.state

Read. Scope: platform.read, admin. Contract: route_inferred. Hr New Hire Checkin State

platform.hr.offer.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Approve

platform.hr.offer.draft

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Draft

platform.hr.offer.esign.confirm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Esign Confirm

platform.hr.offer.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Offer List

platform.hr.offer.send

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Send

platform.hr.offer.withdraw

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Offer Withdraw

platform.hr.onboarding.checkins.book

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Onboarding Checkins Book

platform.hr.onboarding.draft.tasks

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Draft Tasks

platform.hr.onboarding.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Onboarding Overview

platform.hr.onboarding.plan.buddy

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Buddy

platform.hr.onboarding.plan.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Close

platform.hr.onboarding.plan.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Plan Create

platform.hr.onboarding.task.block

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Block

platform.hr.onboarding.task.done

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Done

platform.hr.onboarding.task.skip

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Onboarding Task Skip

platform.hr.onboarding.task.unblock

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Unblock

platform.hr.onboarding.task.verify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Task Verify

platform.hr.onboarding.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Onboarding Template Save

platform.hr.one.on.one.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr One On One List

platform.hr.one.on.one.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr One On One Record

platform.hr.opportunity.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Opportunity Decide

platform.hr.opportunity.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Opportunity Post

platform.hr.org.chart

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Chart

platform.hr.org.legal.entities

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Legal Entities

platform.hr.org.legal.entity.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Legal Entity Create

platform.hr.org.location.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Location Create

platform.hr.org.locations

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Locations

platform.hr.org.map.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Org Map Overview

platform.hr.org.map.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Map Remove

platform.hr.org.map.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Map Save

platform.hr.org.tree

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Org Tree

platform.hr.org.unit.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Org Unit Create

platform.hr.org.unit.move

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Org Unit Move

platform.hr.override.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Override Record

platform.hr.overtime.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Overtime Decide

platform.hr.path.enroll

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Path Enroll

platform.hr.path.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Path Save

platform.hr.pay.equity.overview

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Pay Equity Overview

platform.hr.pay.gap.evaluate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pay Gap Evaluate

platform.hr.payroll.import

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payroll Import

platform.hr.payroll.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Payroll Overview

platform.hr.payroll.provider.exceptions

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Payroll Provider Exceptions

platform.hr.payroll.reconcile

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payroll Reconcile

platform.hr.payslips.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Payslips Issue

platform.hr.people.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr People List

platform.hr.perf.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Perf Overview

platform.hr.person.create

Write. Scope: platform.write, admin. Contract: route_inferred. Create an HR person Required fields: display_name.

platform.hr.person.get

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Get

platform.hr.person.identifier.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Person Identifier Add

platform.hr.person.identifier.read

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Identifier Read

platform.hr.person.identifiers

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Person Identifiers

platform.hr.person.update

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Person Update

platform.hr.pilot.outcome.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pilot Outcome Record

platform.hr.pipeline

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pipeline

platform.hr.policy.activate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Policy Activate

platform.hr.policy.compile

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Policy Compile

platform.hr.pool.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Create

platform.hr.pool.member.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Member Add

platform.hr.pool.member.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pool Member Remove

platform.hr.pool.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pool Overview

platform.hr.portal.address

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Portal Address

platform.hr.portal.slug.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Portal Slug Save

platform.hr.position.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Assign

platform.hr.position.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Create

platform.hr.position.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Position Overview

platform.hr.position.profile.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Profile Set

platform.hr.position.reports.to

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Reports To

platform.hr.position.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position State

platform.hr.position.vacate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Position Vacate

platform.hr.posting.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Close

platform.hr.posting.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Create

platform.hr.posting.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Posting List

platform.hr.posting.publish

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Posting Publish

platform.hr.probation.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Probation Open

platform.hr.probation.review

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Probation Review

platform.hr.profile.address.format

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Profile Address Format

platform.hr.profile.address.write

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Address Write

platform.hr.profile.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Decide

platform.hr.profile.ownership.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Profile Ownership Get

platform.hr.profile.ownership.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Ownership Set

platform.hr.profile.pending

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Profile Pending

platform.hr.profile.photo.clear

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Photo Clear

platform.hr.profile.photo.set

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Photo Set

platform.hr.profile.reveal

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Reveal

platform.hr.profile.section.end

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Section End

platform.hr.profile.section.write

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Profile Section Write

platform.hr.profile.sections

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Profile Sections

platform.hr.pulse.close

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Close

platform.hr.pulse.issue

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Issue

platform.hr.pulse.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Pulse List

platform.hr.pulse.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Pulse Open

platform.hr.pulse.results

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Pulse Results

platform.hr.quality.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Quality Overview

platform.hr.quality.sample.draw

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Quality Sample Draw

platform.hr.quality.samples

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Quality Samples

platform.hr.quality.verdict

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Quality Verdict

platform.hr.queue.agent.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Agent Add

platform.hr.queue.agent.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Agent Remove

platform.hr.queue.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Queue Save

platform.hr.readiness.report

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Readiness Report

platform.hr.recognise

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Recognise

platform.hr.relations.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Relations Overview

platform.hr.release.gates

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Release Gates

platform.hr.release.verify

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Release Verify

platform.hr.req.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Create

platform.hr.req.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Req List

platform.hr.req.reject

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Reject

platform.hr.req.transition

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Req Transition

platform.hr.review.cycle.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Cycle Open

platform.hr.review.include

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Include

platform.hr.review.respond

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Respond

platform.hr.review.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Review Template Save

platform.hr.rubric.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Rubric Approve

platform.hr.rubric.create

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Rubric Create

platform.hr.rubric.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Rubric List

platform.hr.run.replay

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Replay

platform.hr.run.start

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Start

platform.hr.run.step

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Step

platform.hr.run.takeover

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Run Takeover

platform.hr.scenario.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Scenario Run

platform.hr.schedule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Schedule Save

platform.hr.screening.correct

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Correct

platform.hr.screening.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Screening List

platform.hr.screening.review

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Screening Review

platform.hr.screening.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Run

platform.hr.screening.verify

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Screening Verify

platform.hr.security.assurance.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Security Assurance Record

platform.hr.service.item.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Service Item Save

platform.hr.servicedesk.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Servicedesk Overview

platform.hr.shadow.compare

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shadow Compare

platform.hr.shift.add

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shift Add

platform.hr.shift.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Shift Assign

platform.hr.signature.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Signature Cancel

platform.hr.signature.confirm

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Signature Confirm

platform.hr.signature.list

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Signature List

platform.hr.signature.request

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Signature Request

platform.hr.signin.design.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Signin Design Get

platform.hr.signin.design.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Signin Design Save

platform.hr.skill.challenge.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Skill Challenge Resolve

platform.hr.skills.infer.sweep

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Skills Infer Sweep

platform.hr.skills.infer.text

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Skills Infer Text

platform.hr.skills.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Skills Overview

platform.hr.skills.taxonomy.adopt

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Skills Taxonomy Adopt

platform.hr.status

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Status

platform.hr.succession.nominate

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Succession Nominate

platform.hr.succession.open

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Succession Open

platform.hr.succession.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Succession Overview

platform.hr.swap.approve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Swap Approve

platform.hr.swap.decline

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Swap Decline

platform.hr.sync.conflict.resolve

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Sync Conflict Resolve

platform.hr.talent.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Talent Overview

platform.hr.thread.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Delete

platform.hr.thread.dm

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Dm

platform.hr.thread.legal.hold

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Legal Hold

platform.hr.thread.outreach

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Outreach

platform.hr.thread.post

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Post

platform.hr.thread.read

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Thread Read

platform.hr.thread.retention

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Thread Retention

platform.hr.thread.search

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Thread Search

platform.hr.threads.inbox

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Threads Inbox

platform.hr.threads.retention.sweep

Write. Scope: platform.write, admin. Contract: declared_dynamic. Hr Threads Retention Sweep

platform.hr.time.decide

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Time Decide

platform.hr.time.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Time Overview

platform.hr.title.history

Read. Scope: platform.read, admin. Contract: route_inferred. Hr Title History

platform.hr.title.record

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Title Record

platform.hr.training.requirement.save

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Training Requirement Save

platform.hr.truth.register

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Truth Register

platform.hr.turnover.run

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Turnover Run

platform.hr.verifier.verdict

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Verifier Verdict

platform.hr.wb.grant

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Grant

platform.hr.wb.identity

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Identity

platform.hr.wb.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Wb List

platform.hr.wb.read

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb Read

platform.hr.wb.state

Write. Scope: platform.write, admin. Contract: route_inferred. Hr Wb State

platform.hr.workforce.dashboard

Read. Scope: platform.read, admin. Contract: declared_dynamic. Hr Workforce Dashboard

platform.inbound.activity.feed

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Activity Feed

platform.inbound.endpoints.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Delete

platform.inbound.endpoints.list

Write. Scope: admin. Contract: route_inferred. Inbound Endpoints List

platform.inbound.endpoints.save

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Save

platform.inbound.endpoints.test

Write. Scope: platform.write, admin. Contract: route_inferred. Inbound Endpoints Test

platform.interrupted

Read. Scope: platform.read, admin. Contract: declared_dynamic. Interrupted

platform.ip.classify

Read. Scope: platform.read, admin. Contract: route_inferred. Ip Classify

platform.js.errors.clear.all

Write. Scope: platform.write, admin. Contract: declared_dynamic. Js Errors Clear All

platform.js.errors.list

Read. Scope: platform.read, admin. Contract: route_inferred. Js Errors List

platform.js.issue.assign

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Assign

platform.js.issue.update

Write. Scope: platform.write, admin. Contract: route_inferred. Js Issue Update

platform.js.sourcemap.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Delete

platform.js.sourcemap.upload

Write. Scope: platform.write, admin. Contract: route_inferred. Js Sourcemap Upload

platform.js.sourcemaps.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Js Sourcemaps List

platform.leads

Read. Scope: platform.read, admin. Contract: route_inferred. Leads

platform.license.delete

Write. Scope: admin. Contract: declared_dynamic. License Delete

platform.license.diagnostics

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Diagnostics

platform.license.force.check

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Force Check

platform.license.preflight

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Preflight

platform.license.save

Write. Scope: admin. Contract: route_inferred. License Save

platform.license.status

Read. Scope: platform.read, admin. Contract: declared_dynamic. License Status

platform.license.verify.now

Write. Scope: platform.write, admin. Contract: declared_dynamic. License Verify Now

platform.lifecycle.evaluate

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Evaluate

platform.lifecycle.rule.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Delete

platform.lifecycle.rule.list

Read. Scope: platform.read, admin. Contract: route_inferred. Lifecycle Rule List

platform.lifecycle.rule.save

Write. Scope: platform.write, admin. Contract: route_inferred. Lifecycle Rule Save

platform.list.assignable.sites

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Assignable Sites

platform.list.network.issues

Read. Scope: platform.read, admin. Contract: declared_dynamic. List Network Issues

platform.lookup.client.full

Read. Scope: platform.read, admin. Contract: route_inferred. Lookup Client Full

platform.mark.feedback.read

Write. Scope: platform.write, admin. Contract: route_inferred. Mark Feedback Read

platform.marketplace.local.install

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Install

platform.marketplace.local.uninstall

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Local Uninstall

platform.marketplace.session.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Marketplace Session Get

platform.marketplace.session.set

Write. Scope: platform.write, admin. Contract: route_inferred. Marketplace Session Set

platform.media.ready

Read. Scope: platform.read, admin. Contract: route_inferred. Media Ready

platform.message.contact.locale

Write. Scope: platform.write, admin. Contract: route_inferred. Message Contact Locale

platform.message.outbound.convert

Write. Scope: platform.write, admin. Contract: route_inferred. Message Outbound Convert

platform.message.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translate

platform.message.translation.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Delete

platform.message.translation.save

Write. Scope: platform.write, admin. Contract: route_inferred. Message Translation Save

platform.meta.channels.disconnect

Write. Scope: platform.write, admin. Contract: declared_dynamic. Meta Channels Disconnect

platform.meta.channels.switch.page

Write. Scope: platform.write, admin. Contract: route_inferred. Meta Channels Switch Page

platform.observe

Read. Scope: platform.read, admin. Contract: declared_dynamic. Observe

platform.onboarding.action

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Action

platform.onboarding.readiness

Read. Scope: platform.read, admin. Contract: declared_dynamic. Onboarding Readiness

platform.open.network.issue

Read. Scope: platform.read, admin. Contract: declared_dynamic. Open Network Issue

platform.open.ticket

Read. Scope: platform.read, admin. Contract: route_inferred. Open Ticket

platform.operator.text.translate

Write. Scope: platform.write, admin. Contract: route_inferred. Operator Text Translate

platform.opsiq.backup.export

Read. Scope: platform.read, admin. Contract: declared_dynamic. Download a full backup in one request (retired)

platform.opsiq.backup.import

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import

platform.opsiq.backup.import.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Import Start

platform.opsiq.backup.job.start

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Start

platform.opsiq.backup.job.status

Write. Scope: platform.write, admin. Contract: route_inferred. Opsiq Backup Job Status

platform.outreach.campaign.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Delete

platform.outreach.campaign.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Campaign List

platform.outreach.campaign.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Save

platform.outreach.campaign.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Campaign Send

platform.outreach.compose.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Compose Send

platform.outreach.draft.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Draft Delete

platform.outreach.draft.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Draft List

platform.outreach.draft.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Draft Save

platform.outreach.messages.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Messages Delete

platform.outreach.replies.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Replies List

platform.outreach.reply.ai

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Ai

platform.outreach.reply.mark

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Mark

platform.outreach.reply.pref

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Pref

platform.outreach.reply.send

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Send

platform.outreach.reply.thread

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Reply Thread

platform.outreach.send.detail

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Send Detail

platform.outreach.send.retry

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Send Retry

platform.outreach.sends.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Sends List

platform.outreach.template.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Delete

platform.outreach.template.list

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template List

platform.outreach.template.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Outreach Template Preview

platform.outreach.template.save

Write. Scope: platform.write, admin. Contract: route_inferred. Outreach Template Save

platform.overview

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview

platform.overview.hub.view

Read. Scope: platform.read, admin. Contract: route_inferred. Overview Hub View

platform.overview.intelligence.graph

Read. Scope: platform.read, admin. Contract: declared_dynamic. Overview Intelligence Graph

platform.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Pages

platform.paths.data

Read. Scope: platform.read, admin. Contract: route_inferred. Paths Data

platform.pause

Read. Scope: platform.read, admin. Contract: declared_dynamic. Pause

platform.profile.change.password

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Change Password

platform.profile.get

Read. Scope: platform.read, admin. Contract: route_inferred. Profile Get

platform.profile.reward.claim

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim

platform.profile.reward.claim.cancel

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Reward Claim Cancel

platform.profile.save

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Save

platform.profile.session.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Session Revoke

platform.profile.sessions.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Profile Sessions List

platform.profile.sessions.revoke.others

Write. Scope: platform.write, admin. Contract: declared_dynamic. Profile Sessions Revoke Others

platform.profile.team.dispute.file

Write. Scope: platform.write, admin. Contract: route_inferred. Profile Team Dispute File

platform.purge

Write. Scope: admin. Contract: route_inferred. Purge

platform.purge.all

Write. Scope: admin. Contract: route_inferred. Purge All

platform.realtime

Read. Scope: platform.read, admin. Contract: route_inferred. Realtime

platform.realtime.test

Write. Scope: platform.write, admin. Contract: route_inferred. Realtime Test

platform.resume

Read. Scope: platform.read, admin. Contract: declared_dynamic. Resume

platform.retention.data

Read. Scope: platform.read, admin. Contract: route_inferred. Retention Data

platform.routes.list

Read. Scope: admin. Contract: source_inferred. List every registered OpsIQ operation

platform.routes.read

Read. Scope: admin. Contract: explicit. Execute a registered read operation Required fields: route.

platform.routes.write

Write. Scope: admin. Contract: explicit. Execute a registered write operation Required fields: route, idempotency_key. Retry-safe with idempotency_key.

platform.run.ai.analysis

Write. Scope: platform.write, admin. Contract: route_inferred. Run Ai Analysis

platform.save.admin.chat.history

Write. Scope: platform.write, admin. Contract: route_inferred. Save Admin Chat History

platform.save.pwa.chat.prefs

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Pwa Chat Prefs

platform.save.survey.config

Write. Scope: platform.write, admin. Contract: route_inferred. Save Survey Config

platform.save.widget.advanced

Write. Scope: platform.write, admin. Contract: declared_dynamic. Save Widget Advanced

platform.scim.token.issue

Read. Scope: platform.read, admin. Contract: route_inferred. Scim Token Issue

platform.scim.token.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Scim Token List

platform.scim.token.revoke

Write. Scope: platform.write, admin. Contract: route_inferred. Scim Token Revoke

platform.segment.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Delete

platform.segment.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment List

platform.segment.members

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Members

platform.segment.preview

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Preview

platform.segment.save

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Save

platform.segment.suggestion.accept

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Accept

platform.segment.suggestion.dismiss

Write. Scope: platform.write, admin. Contract: route_inferred. Segment Suggestion Dismiss

platform.segment.suggestion.list

Read. Scope: platform.read, admin. Contract: route_inferred. Segment Suggestion List

platform.send.campaign

Write. Scope: platform.write, admin. Contract: route_inferred. Send Campaign

platform.send.client.email

Write. Scope: platform.write, admin. Contract: route_inferred. Send Client Email

platform.send.ticket.reply

Write. Scope: platform.write, admin. Contract: route_inferred. Send Ticket Reply

platform.service.studio.get

Read. Scope: platform.read, admin. Contract: declared_dynamic. Service Studio Get

platform.set.active.site

Write. Scope: platform.write, admin. Contract: route_inferred. Set Active Site

platform.silence

Read. Scope: platform.read, admin. Contract: declared_dynamic. Silence

platform.site.set.group

Write. Scope: platform.write, admin. Contract: route_inferred. Site Set Group

platform.sites.add

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Add

platform.sites.edit

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Edit

platform.sites.list

Write. Scope: platform.write, admin. Contract: route_inferred. Sites List

platform.sites.picker

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Picker

platform.sites.regenerate.secret

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Regenerate Secret

platform.sites.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Sites Remove

platform.stats

Read. Scope: platform.read, admin. Contract: declared_dynamic. Stats

platform.stepup.verify

Write. Scope: platform.write, admin. Contract: declared_dynamic. Stepup Verify

platform.submit.agent.ai.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Agent Ai Feedback

platform.submit.triage.feedback

Write. Scope: platform.write, admin. Contract: route_inferred. Submit Triage Feedback

platform.takeover

Read. Scope: platform.read, admin. Contract: declared_dynamic. Takeover

platform.terminate

Read. Scope: platform.read, admin. Contract: route_inferred. Terminate

platform.test.geoip

Read. Scope: platform.read, admin. Contract: route_inferred. Test Geoip

platform.top.pages

Read. Scope: platform.read, admin. Contract: route_inferred. Top Pages

platform.train.client.chat.knowledge

Write. Scope: platform.write, admin. Contract: route_inferred. Train Client Chat Knowledge

platform.triggers

Read. Scope: platform.read, admin. Contract: declared_dynamic. Triggers

platform.trust.evidence.report

Write. Scope: platform.write, admin. Contract: declared_dynamic. Trust Evidence Report

platform.turn.pool.add

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Add

platform.turn.pool.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Turn Pool List

platform.turn.pool.pick.test

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Pick Test

platform.turn.pool.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Remove

platform.turn.pool.update

Write. Scope: platform.write, admin. Contract: route_inferred. Turn Pool Update

platform.update.lead.status

Write. Scope: platform.write, admin. Contract: route_inferred. Update Lead Status

platform.wa.embedded.signup.exchange

Write. Scope: platform.write, admin. Contract: route_inferred. Wa Embedded Signup Exchange

platform.warehouse.export.run

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Export Run

platform.warehouse.exports.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Warehouse Exports List

platform.webhook.deliveries.list

Read. Scope: platform.read, admin. Contract: route_inferred. Webhook Deliveries List

platform.webhook.endpoint.delete

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Delete

platform.webhook.endpoint.list

Read. Scope: platform.read, admin. Contract: declared_dynamic. Webhook Endpoint List

platform.webhook.endpoint.save

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Save

platform.webhook.endpoint.test

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Endpoint Test

platform.webhook.redeliver

Write. Scope: platform.write, admin. Contract: route_inferred. Webhook Redeliver

platform.weekly.digest.view

Read. Scope: platform.read, admin. Contract: route_inferred. Weekly Digest View

platform.whmcs.op.dispatch

Read. Scope: platform.read, admin. Contract: declared_dynamic. Whmcs Op Dispatch

platform.workspace.custom.domain.remove

Write. Scope: platform.write, admin. Contract: route_inferred. Workspace Custom Domain Remove

platform.workspace.custom.domain.set

Write. Scope: platform.write, admin. Contract: route_inferred. Workspace Custom Domain Set

platform.writing.json.knowledge.clear

Write. Scope: platform.write, admin. Contract: declared_dynamic. Writing Json Knowledge Clear

platform.writing.json.knowledge.count

Read. Scope: platform.read, admin. Contract: declared_dynamic. Writing Json Knowledge Count

platform.writing.json.knowledge.import

Write. Scope: platform.write, admin. Contract: route_inferred. Writing Json Knowledge Import

portal_studio (169)

portal_studio.accessibility.evidence.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Accessibility Evidence Save

portal_studio.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Add

portal_studio.allocate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Subdomain Allocate

portal_studio.analytics.breakdown

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Analytics Breakdown

portal_studio.analytics.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Analytics Load

portal_studio.apply.kit

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Apply Kit

portal_studio.apply.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Apply Theme

portal_studio.approval

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Approval

portal_studio.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Approve

portal_studio.ask

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Ask

portal_studio.audience.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Audience Delete

portal_studio.audience.explain

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience Explain

portal_studio.audience.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience List

portal_studio.audience.preview

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Audience Preview

portal_studio.audience.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Audience Save

portal_studio.brand.generate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Generate

portal_studio.brand.import

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Brand Import

portal_studio.cancel.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Cancel Schedule

portal_studio.certify

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Certify

portal_studio.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Host Check

portal_studio.check.route.portal.subdomain.check

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Subdomain Check

portal_studio.comment.add

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Add

portal_studio.comment.resolve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Comment Resolve

portal_studio.component.package.inspect

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Package Inspect

portal_studio.component.package.install

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Component Package Install

portal_studio.component.validate

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Component Validate

portal_studio.config

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Handoff Config

portal_studio.data.resolve

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Data Resolve

portal_studio.delete.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Delete Theme

portal_studio.developer.contract

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Developer Contract

portal_studio.discovery.preview

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Discovery Preview

portal_studio.discovery.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Discovery Save

portal_studio.document.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Load

portal_studio.document.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Save

portal_studio.experiment.control

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Experiment Control

portal_studio.experiment.results

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Experiment Results

portal_studio.experiment.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Experiment Save

portal_studio.experiments.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Experiments List

portal_studio.form.archive

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Archive

portal_studio.form.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Form Catalog

portal_studio.form.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Create

portal_studio.form.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Delete

portal_studio.form.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Duplicate

portal_studio.form.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Evaluate

portal_studio.form.group.apply

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Apply

portal_studio.form.group.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Delete

portal_studio.form.group.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Group Save

portal_studio.form.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Publish

portal_studio.form.restore

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Form Restore

portal_studio.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Save

portal_studio.form.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Template

portal_studio.form.test

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Form Test

portal_studio.form.version.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Form Version Restore

portal_studio.history

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design History

portal_studio.identity.discover

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Discover

portal_studio.identity.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Identity Load

portal_studio.identity.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Identity Save

portal_studio.integration.activate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Activate

portal_studio.integration.install

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Install

portal_studio.integration.kill.switch

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Kill Switch

portal_studio.integration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration List

portal_studio.integration.policy

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Integration Policy

portal_studio.integration.policy.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Integration Policy Save

portal_studio.integration.preflight

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Preflight

portal_studio.integration.revise

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Revise

portal_studio.integration.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Rollback

portal_studio.integration.transition

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Integration Transition

portal_studio.journey.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Archive

portal_studio.journey.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Journey Catalog

portal_studio.journey.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Delete

portal_studio.journey.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Duplicate

portal_studio.journey.evaluate

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Studio Journey Evaluate

portal_studio.journey.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Instantiate

portal_studio.journey.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Restore

portal_studio.journey.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Journey Save

portal_studio.kb.category.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Delete

portal_studio.kb.category.reorder

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Category Reorder

portal_studio.kb.category.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Category Save

portal_studio.kb.governance

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Governance

portal_studio.kb.governance.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Kb Governance Save

portal_studio.kb.languages

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Languages

portal_studio.kb.languages.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Languages Save

portal_studio.kb.parity

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Parity

portal_studio.kb.search.tuning

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning

portal_studio.kb.search.tuning.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Kb Search Tuning Save

portal_studio.kb.tree

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Kb Tree

portal_studio.knowledge.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Knowledge Summary

portal_studio.list

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain List

portal_studio.load

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Analytics Load

portal_studio.load.route.portal.design.load

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Design Load

portal_studio.load.route.portal.form.load

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Form Load

portal_studio.lock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Lock

portal_studio.migration.apply

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Apply

portal_studio.migration.approve

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Approve

portal_studio.migration.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration List

portal_studio.migration.reconcile

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Reconcile

portal_studio.migration.report

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Migration Report

portal_studio.migration.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollback

portal_studio.migration.rollout

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Rollout

portal_studio.migration.start

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Migration Start

portal_studio.node.add

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Add

portal_studio.node.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Delete

portal_studio.node.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Duplicate

portal_studio.node.move

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Move

portal_studio.node.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Node Update

portal_studio.operations.control

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Control

portal_studio.operations.feed

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Operations Feed

portal_studio.operations.record

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Operations Record

portal_studio.operations.summary

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Operations Summary

portal_studio.org.context

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Context

portal_studio.org.member.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Org Member Save

portal_studio.org.members

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Members

portal_studio.org.requests

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Org Requests

portal_studio.page.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Archive

portal_studio.page.create

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Create

portal_studio.page.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Delete

portal_studio.page.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Duplicate

portal_studio.page.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Restore

portal_studio.page.update

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Page Update

portal_studio.parity.accept

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Accept

portal_studio.parity.capture

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Capture

portal_studio.parity.compare

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Compare

portal_studio.parity.create

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Parity Create

portal_studio.parity.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Parity List

portal_studio.personalization.delete

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Personalization Delete

portal_studio.personalization.list

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Personalization List

portal_studio.personalization.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Personalization Save

portal_studio.presence

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Presence

portal_studio.preview

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Preview

portal_studio.preview.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Preview Catalog

portal_studio.publish

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Publish

portal_studio.quality

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Quality

portal_studio.redirect.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Delete

portal_studio.redirect.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Redirect Save

portal_studio.release.diff

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Release Diff

portal_studio.release.evidence

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Release Evidence

portal_studio.release.history

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Release History

portal_studio.release.publish

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Publish

portal_studio.release.rollback

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Rollback

portal_studio.release.schedule

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule

portal_studio.remove

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Domain Remove

portal_studio.request.changes

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Request Changes

portal_studio.restore.field

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Restore Field

portal_studio.restore.published

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Restore Published

portal_studio.revert

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Design Revert

portal_studio.review

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Review

portal_studio.review.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Review Link

portal_studio.rollback

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Rollback

portal_studio.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save

portal_studio.save.route.portal.form.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Form Save

portal_studio.save.theme

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Save Theme

portal_studio.saved.section.delete

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Delete

portal_studio.saved.section.instantiate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Instantiate

portal_studio.saved.section.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Saved Section Save

portal_studio.schedule

Read. Scope: portal_studio.read, admin. Contract: route_inferred. Portal Design Schedule

portal_studio.schedule.cancel

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Schedule Cancel

portal_studio.scim.config

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Scim Config

portal_studio.service.archive

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Archive

portal_studio.service.catalog

Read. Scope: portal_studio.read, admin. Contract: declared_dynamic. Portal Studio Service Catalog

portal_studio.service.duplicate

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Duplicate

portal_studio.service.reorder

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Reorder

portal_studio.service.restore

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Restore

portal_studio.service.save

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Save

portal_studio.service.template

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Studio Service Template

portal_studio.sign.in.flow.save

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Sign In Flow Save

portal_studio.signin.methods

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Design Signin Methods

portal_studio.test.link

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Handoff Test Link

portal_studio.unlock

Write. Scope: portal_studio.write, admin. Contract: declared_dynamic. Portal Studio Unlock

portal_studio.upload

Write. Scope: portal_studio.write, admin. Contract: route_inferred. Portal Image Upload

sales (14)

sales.ai.insight

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Ai Insight

sales.analyze

Write. Scope: sales.write, analytics.write, admin. Contract: route_inferred. Analyze sales with AI

sales.chart

Write. Scope: sales.write, admin. Contract: route_inferred. Sales Chart

sales.compare

Read. Scope: sales.read, analytics.read, admin. Contract: route_inferred. Compare sales periods

sales.compare.route.sales.compare

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Compare

sales.goal.delete

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Delete

sales.goal.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion Goal List

sales.goal.save

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Goal Save

sales.list

Read. Scope: sales.read, analytics.read, admin. Contract: route_inferred. List sales and conversions

sales.list.route.conversion.list

Read. Scope: sales.read, admin. Contract: route_inferred. Conversion List

sales.record

Write. Scope: sales.write, admin. Contract: route_inferred. Conversion Record

sales.stats

Read. Scope: sales.read, analytics.read, admin. Contract: declared_dynamic. Read sales statistics

sales.stats.route.sales.stats

Read. Scope: sales.read, admin. Contract: declared_dynamic. Sales Stats

sales.table

Read. Scope: sales.read, admin. Contract: route_inferred. Sales Table

Bảo mật (21)

security.ai.analyze

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Analyze

security.ai.ask

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Ask

security.ai.briefs

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Briefs

security.ai.chain.explain

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Chain Explain

security.ai.incident.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Incident Action

security.ai.incidents

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Incidents

security.ai.js.triage

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Js Triage

security.ai.policies

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Ai Policies

security.ai.policy.action

Write. Scope: security.write, admin. Contract: route_inferred. Security Ai Policy Action

security.ai.verdicts

Read. Scope: security.read, admin. Contract: route_inferred. Security Ai Verdicts

security.blocklist.add

Write. Scope: security.write, admin. Contract: source_inferred. Add a spam rule (email, domain or IP) to the ticket blocklist Required fields: kind, value. Retry-safe with idempotency_key.

security.blocklist.list

Read. Scope: security.read, admin. Contract: explicit. List the current ticket spam rules

security.chain.reanchor

Write. Scope: security.write, admin. Contract: declared_dynamic. Security Chain Reanchor

security.check

Read. Scope: security.read, admin. Contract: source_inferred. Check an IP or email against the platform blocklists and Security AI verdicts

security.ip

Write. Scope: security.write, admin. Contract: route_inferred. Block Ip

security.ip.route.unblock.ip

Write. Scope: security.write, admin. Contract: route_inferred. Unblock Ip

security.list

Write. Scope: security.write, admin. Contract: route_inferred. Access Log List

security.overview.chains

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Chains

security.overview.data

Read. Scope: security.read, admin. Contract: declared_dynamic. Security Overview Data

security.report

Write. Scope: security.write, admin. Contract: source_inferred. Report abuse a connector observed (spam, login attack, scan, fraud) Retry-safe with idempotency_key.

security.visitor

Write. Scope: security.write, admin. Contract: route_inferred. Block Visitor

sessions (5)

sessions.detail

Read. Scope: sessions.read, admin. Contract: route_inferred. Session Detail

sessions.get

Read. Scope: sessions.read, analytics.read, admin. Contract: route_inferred. Get a session journey Required fields: session_id.

sessions.list

Read. Scope: sessions.read, analytics.read, admin. Contract: route_inferred. List sessions

sessions.merged

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Merged

sessions.table

Read. Scope: sessions.read, admin. Contract: route_inferred. Sessions Table

settings (11)

settings.ai.eval.watchtower.config

Write. Scope: settings.write, admin. Contract: declared_dynamic. Ai Eval Watchtower Config

settings.get.client.chat.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Client Chat Settings

settings.get.settings

Read. Scope: settings.read, admin. Contract: route_inferred. Get Settings

settings.opsiq.branding.clear

Write. Scope: admin. Contract: route_inferred. Opsiq Branding Clear

settings.opsiq.branding.upload

Write. Scope: admin. Contract: route_inferred. Opsiq Branding Upload

settings.privacy.settings.get

Read. Scope: settings.read, admin. Contract: declared_dynamic. Privacy Settings Get

settings.privacy.settings.save

Write. Scope: settings.write, admin. Contract: route_inferred. Privacy Settings Save

settings.save.ai.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Ai Settings

settings.save.chat.widget.settings

Write. Scope: settings.write, admin. Contract: declared_dynamic. Save Chat Widget Settings

settings.save.client.chat.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Client Chat Settings

settings.save.settings

Write. Scope: settings.write, admin. Contract: route_inferred. Save Settings

site_intelligence (221)

site_intelligence.action.audit.chain

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Audit Chain

site_intelligence.action.execute

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Execute

site_intelligence.action.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Preview

site_intelligence.action.token

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Action Token

site_intelligence.agent.auto.bg

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg

site_intelligence.agent.auto.bg.stop

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Bg Stop

site_intelligence.agent.auto.step

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Auto Step

site_intelligence.agent.chat

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Chat

site_intelligence.agent.conn.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Delete

site_intelligence.agent.conn.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Get

site_intelligence.agent.conn.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Save

site_intelligence.agent.conn.test

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Conn Test

site_intelligence.agent.coverage

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Coverage

site_intelligence.agent.events

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Events

site_intelligence.agent.hosted.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Apply

site_intelligence.agent.hosted.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Finalize

site_intelligence.agent.hosted.live.set

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Live Set

site_intelligence.agent.hosted.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Preview

site_intelligence.agent.hosted.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Rollback

site_intelligence.agent.hosted.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Start

site_intelligence.agent.hosted.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Hosted Verify

site_intelligence.agent.run.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Delete

site_intelligence.agent.run.finalize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Finalize

site_intelligence.agent.run.rollback

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Rollback

site_intelligence.agent.run.start

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Start

site_intelligence.agent.run.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Status

site_intelligence.agent.run.verify

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Run Verify

site_intelligence.agent.runs.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Runs List

site_intelligence.agent.set.mode

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Set Mode

site_intelligence.agent.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Status

site_intelligence.agent.step.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Apply

site_intelligence.agent.step.skip

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Step Skip

site_intelligence.agent.turn.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Agent Turn Status

site_intelligence.ai.activity

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Activity

site_intelligence.ai.alert.enrich

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alert Enrich

site_intelligence.ai.alerts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Alerts

site_intelligence.ai.analyst

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst

site_intelligence.ai.analyst.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Ask

site_intelligence.ai.analyst.email

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Email

site_intelligence.ai.analyst.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Analyst Run

site_intelligence.ai.badges

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges

site_intelligence.ai.badges.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Badges Portfolio

site_intelligence.ai.badges.preview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Badges Preview

site_intelligence.ai.bl.plan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan

site_intelligence.ai.bl.plan.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Bl Plan Run

site_intelligence.ai.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief

site_intelligence.ai.brief.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Brief Run

site_intelligence.ai.comp.analyse

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse

site_intelligence.ai.comp.analyse.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Comp Analyse Run

site_intelligence.ai.content.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Get

site_intelligence.ai.content.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content List

site_intelligence.ai.content.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Publish

site_intelligence.ai.content.write

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Content Write

site_intelligence.ai.daily.digest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Daily Digest

site_intelligence.ai.discover

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Discover

site_intelligence.ai.fix.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply

site_intelligence.ai.fix.apply.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Apply Bulk

site_intelligence.ai.fix.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss

site_intelligence.ai.fix.dismiss.bulk

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Dismiss Bulk

site_intelligence.ai.fix.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate

site_intelligence.ai.fix.generate.all

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix Generate All

site_intelligence.ai.fix.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Fix List

site_intelligence.ai.kw.coach

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach

site_intelligence.ai.kw.coach.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Kw Coach Run

site_intelligence.ai.overview

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Overview

site_intelligence.ai.page.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit

site_intelligence.ai.page.audit.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Page Audit Run

site_intelligence.ai.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Ai Portfolio

site_intelligence.ai.portfolio.history

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Ai Portfolio History

site_intelligence.ai.portfolio.run

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Ai Portfolio Run

site_intelligence.ai.probe

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Probe

site_intelligence.ai.prompt.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Add

site_intelligence.ai.prompt.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt History

site_intelligence.ai.prompt.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompt Remove

site_intelligence.ai.prompts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Prompts

site_intelligence.ai.readiness

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Readiness

site_intelligence.ai.ready

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ai Ready

site_intelligence.alert.resolve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Alert Resolve

site_intelligence.alerts

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Alerts

site_intelligence.alerts.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence alerts

site_intelligence.alerts.resolve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Resolve a Site Intelligence alert Required fields: alert_id.

site_intelligence.analyze

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Analyze

site_intelligence.ask

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ask

site_intelligence.audit.hint

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Audit Hint

site_intelligence.backlink.disavow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlink Disavow

site_intelligence.backlinks

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Backlinks

site_intelligence.backlinks.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List backlinks

site_intelligence.backlinks.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Backlinks Refresh

site_intelligence.billing.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Billing Overview

site_intelligence.brand.get

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Get

site_intelligence.brand.radar

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Radar

site_intelligence.brand.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Brand Save

site_intelligence.cannibalisation

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Cannibalisation

site_intelligence.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Compare

site_intelligence.competitor.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Add

site_intelligence.competitor.refresh

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Refresh

site_intelligence.competitor.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Competitor Remove

site_intelligence.competitors

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Competitors

site_intelligence.competitors.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List competitors

site_intelligence.content.brief

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Brief

site_intelligence.content.decay

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Decay

site_intelligence.content.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Content Draft

site_intelligence.crawl.budget

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Crawl Budget

site_intelligence.crawl.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl List

site_intelligence.crawl.status

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Crawl Status

site_intelligence.crawls.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence crawls

site_intelligence.crawls.status

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Get crawl status

site_intelligence.dashboard

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Read the Site Intelligence dashboard

site_intelligence.dashboard.route.si.dashboard

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Dashboard

site_intelligence.dashboard.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Dashboard Save

site_intelligence.diag.backfill

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Backfill

site_intelligence.diag.compare

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Compare

site_intelligence.diag.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Diag Portfolio

site_intelligence.diag.recs.regen

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Recs Regen

site_intelligence.diag.thresholds

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds

site_intelligence.diag.thresholds.eval

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Eval

site_intelligence.diag.thresholds.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds History

site_intelligence.diag.thresholds.profile

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Profile

site_intelligence.diag.thresholds.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diag Thresholds Save

site_intelligence.diagnostics

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Diagnostics

site_intelligence.exec.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Exec Report

site_intelligence.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Export

site_intelligence.ga4.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Connect

site_intelligence.ga4.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 List Properties

site_intelligence.ga4.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Map

site_intelligence.ga4.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Status

site_intelligence.ga4.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Ga4 Sync

site_intelligence.gbp

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp

site_intelligence.gbp.draft.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Approve

site_intelligence.gbp.draft.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Dismiss

site_intelligence.gbp.draft.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Draft Sync

site_intelligence.gbp.drafts

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Drafts

site_intelligence.gbp.locations

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Gbp Locations

site_intelligence.gbp.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Map

site_intelligence.gbp.post.draft

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Draft

site_intelligence.gbp.post.publish

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Post Publish

site_intelligence.gbp.qa

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa

site_intelligence.gbp.qa.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Approve

site_intelligence.gbp.qa.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Dismiss

site_intelligence.gbp.qa.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Qa Sync

site_intelligence.gbp.site.prefs

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Site Prefs

site_intelligence.gbp.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gbp Sync

site_intelligence.google.truth.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Google Truth Schedule Save

site_intelligence.growth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Growth

site_intelligence.gsc.connect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Connect

site_intelligence.gsc.list.properties

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc List Properties

site_intelligence.gsc.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Map

site_intelligence.gsc.opportunities

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Opportunities

site_intelligence.gsc.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Status

site_intelligence.gsc.sync

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Gsc Sync

site_intelligence.image.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Image Audit

site_intelligence.internal.links

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Internal Links

site_intelligence.issue.history

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Issue History

site_intelligence.issues

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Issues

site_intelligence.issues.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence issues

site_intelligence.keyword.add

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Add

site_intelligence.keyword.remove

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Remove

site_intelligence.keyword.research

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Keyword Research

site_intelligence.keywords

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Keywords

site_intelligence.keywords.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List tracked keywords

site_intelligence.local

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local

site_intelligence.local.grid

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid

site_intelligence.local.grid.scan

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Local Grid Scan

site_intelligence.log.ingest

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Ingest

site_intelligence.log.summary

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Log Summary

site_intelligence.metadata.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Metadata Audit

site_intelligence.overview

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Overview

site_intelligence.page

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page

site_intelligence.page.experience

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Experience

site_intelligence.page.optimize

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Page Optimize

site_intelligence.pages

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. Si Pages

site_intelligence.pages.list

Read. Scope: site_intelligence.read, admin. Contract: route_inferred. List Site Intelligence pages

site_intelligence.pagespeed.bridge.status

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Pagespeed Bridge Status

site_intelligence.portfolio.export

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Portfolio Export

site_intelligence.provider.health

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Provider Health

site_intelligence.rank.check

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rank Check

site_intelligence.rec.action

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Rec Action

site_intelligence.recommendations

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Recommendations

site_intelligence.redirect.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Redirect Audit

site_intelligence.report

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report

site_intelligence.report.generate

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Report Generate

site_intelligence.reports

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Reports

site_intelligence.reports.list

Read. Scope: site_intelligence.read, admin. Contract: source_inferred. Site Intelligence Reports List

site_intelligence.reset.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: declared_dynamic. Si Reset Google Oauth

site_intelligence.revenue

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Revenue

site_intelligence.revenue.portfolio

Read. Scope: site_intelligence.read, admin. Contract: declared_dynamic. Si Revenue Portfolio

site_intelligence.save.shared.google.oauth

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Save Shared Google Oauth

site_intelligence.scan.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Start a Site Intelligence analysis

site_intelligence.schedule.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Delete

site_intelligence.schedule.run.now

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Run Now

site_intelligence.schedule.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedule Save

site_intelligence.schedules.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schedules List

site_intelligence.schema.audit

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Schema Audit

site_intelligence.server.engineer

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Server Engineer

site_intelligence.settings.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Settings Save

site_intelligence.sites.list

Read. Scope: site_intelligence.read, admin. Contract: explicit. List Site Intelligence monitored sites

site_intelligence.speed

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed

site_intelligence.speed.progress

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Progress

site_intelligence.speed.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed Run

site_intelligence.speed.v2

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2

site_intelligence.speed.v2.build.task

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Build Task

site_intelligence.speed.v2.collect

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Collect

site_intelligence.speed.v2.read

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Read

site_intelligence.speed.v2.run

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Speed V2 Run

site_intelligence.start.crawl

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Start Crawl

site_intelligence.task.approve

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Approve

site_intelligence.task.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Assign

site_intelligence.task.bulk.apply

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Apply

site_intelligence.task.bulk.assign

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Assign

site_intelligence.task.bulk.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Deadline

site_intelligence.task.bulk.dismiss

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Bulk Dismiss

site_intelligence.task.deadline

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Deadline

site_intelligence.task.note

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Note

site_intelligence.task.proof

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Proof

site_intelligence.task.reject

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Reject

site_intelligence.task.review

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Task Review

site_intelligence.topical.map

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Topical Map

site_intelligence.webhook.delete

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Delete

site_intelligence.webhook.save

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhook Save

site_intelligence.webhooks.list

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Webhooks List

site_intelligence.workflow

Write. Scope: site_intelligence.write, admin. Contract: route_inferred. Si Workflow

Trạng thái (6)

status.component.save

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Component Save

status.components.save

Write. Scope: status.write, admin. Contract: explicit. Create or update a public status component Required fields: name. Retry-safe with idempotency_key.

status.incident.create

Write. Scope: status.write, admin. Contract: declared_dynamic. Status Incident Create

status.incident.resolve

Read. Scope: status.read, admin. Contract: route_inferred. Status Incident Resolve

status.incidents.create

Write. Scope: status.write, admin. Contract: explicit. Create a status-page incident Required fields: title. Retry-safe with idempotency_key.

status.incidents.resolve

Write. Scope: status.write, admin. Contract: source_inferred. Status Incidents Resolve Retry-safe with idempotency_key.

khảo sát (22)

surveys.analytics.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Analytics Get

surveys.audiences.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey audiences

surveys.audiences.materialize

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Audiences Materialize Retry-safe with idempotency_key.

surveys.campaigns.create

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey campaign Required fields: deployment_id. Retry-safe with idempotency_key.

surveys.campaigns.launch

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Campaigns Launch Retry-safe with idempotency_key.

surveys.campaigns.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey campaigns

surveys.deployments.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey deployments

surveys.deployments.set_status

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Deployments Set Status Retry-safe with idempotency_key.

surveys.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Get

surveys.imports.create

Write. Scope: surveys.write, admin. Contract: explicit. Create and run a survey import Required fields: kind. Retry-safe with idempotency_key.

surveys.imports.process

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Imports Process Retry-safe with idempotency_key.

surveys.invitations.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey invitations

surveys.links.create

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Links Create Retry-safe with idempotency_key.

surveys.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey definitions

surveys.responses.get

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Responses Get

surveys.responses.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey responses

surveys.triggers.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey trigger sets

surveys.types.list

Read. Scope: surveys.read, admin. Contract: explicit. List supported question types and Studio templates

surveys.versions.list

Read. Scope: surveys.read, admin. Contract: source_inferred. Surveys Versions List

surveys.webhooks.delete

Write. Scope: surveys.write, admin. Contract: source_inferred. Surveys Webhooks Delete Retry-safe with idempotency_key.

surveys.webhooks.list

Read. Scope: surveys.read, admin. Contract: explicit. List survey webhook subscriptions

surveys.webhooks.save

Write. Scope: surveys.write, admin. Contract: explicit. Create or update a survey webhook subscription Required fields: url. Retry-safe with idempotency_key.

nhóm (63)

team.delete

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Delete

team.delete.route.departments.delete

Write. Scope: team.write, admin. Contract: route_inferred. Departments Delete

team.list

Read. Scope: team.read, admin. Contract: route_inferred. Admin Users List

team.list.route.departments.list

Read. Scope: team.read, admin. Contract: declared_dynamic. Departments List

team.perf.activity

Write. Scope: admin. Contract: route_inferred. Team Perf Activity

team.perf.ai.compare

Write. Scope: admin. Contract: route_inferred. Team Perf Ai Compare

team.perf.ai.review

Write. Scope: admin. Contract: route_inferred. Team Perf Ai Review

team.perf.availability

Write. Scope: admin. Contract: route_inferred. Team Perf Availability

team.perf.award.finalize

Write. Scope: admin. Contract: route_inferred. Team Perf Award Finalize

team.perf.award.history

Read. Scope: team.read, admin. Contract: route_inferred. Team Perf Award History

team.perf.award.void

Write. Scope: admin. Contract: route_inferred. Team Perf Award Void

team.perf.claim.pay

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Pay

team.perf.claim.recover

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Recover

team.perf.claim.reject

Write. Scope: admin. Contract: route_inferred. Team Perf Claim Reject

team.perf.clear

Write. Scope: admin. Contract: route_inferred. Team Perf Clear

team.perf.coaching.action.item.add

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Add

team.perf.coaching.action.item.complete

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Action Item Complete

team.perf.coaching.evidence.pin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Pin

team.perf.coaching.evidence.unpin

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Evidence Unpin

team.perf.coaching.session

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session

team.perf.coaching.session.create

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Create

team.perf.coaching.session.update

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Session Update

team.perf.coaching.sessions

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Sessions

team.perf.coaching.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Coaching Status

team.perf.data

Write. Scope: admin. Contract: route_inferred. Team Perf Data

team.perf.heatmap

Write. Scope: admin. Contract: route_inferred. Team Perf Heatmap

team.perf.history

Write. Scope: admin. Contract: route_inferred. Team Perf History

team.perf.pay.all.claims

Write. Scope: admin. Contract: route_inferred. Team Perf Pay All Claims

team.perf.qa.calibration.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Calibration Record

team.perf.qa.dispute.resolve

Write. Scope: admin. Contract: route_inferred. Team Perf Qa Dispute Resolve

team.perf.qa.disputes

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Disputes

team.perf.qa.evaluation.submit

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Evaluation Submit

team.perf.qa.overview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Overview

team.perf.qa.scorecard.publish

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Publish

team.perf.qa.scorecard.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Qa Scorecard Save

team.perf.quest.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Record

team.perf.quest.save

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Save

team.perf.quest.status

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quest Status

team.perf.quests

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Quests

team.perf.recognition

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition

team.perf.recognition.settings.save

Write. Scope: admin. Contract: route_inferred. Team Perf Recognition Settings Save

team.perf.recognition.streak.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streak History

team.perf.recognition.streaks.record

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Recognition Streaks Record

team.perf.reward.budget.authorize

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Budget Authorize

team.perf.reward.claims

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Claims

team.perf.reward.pay

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Pay

team.perf.reward.payouts

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Payouts

team.perf.reward.period.finalize

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Finalize

team.perf.reward.period.history

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period History

team.perf.reward.period.preview

Write. Scope: team.write, admin. Contract: route_inferred. Team Perf Reward Period Preview

team.perf.reward.period.reverse

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Reverse

team.perf.reward.period.void

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Period Void

team.perf.reward.save

Write. Scope: admin. Contract: route_inferred. Team Perf Reward Save

team.perf.reward.state

Write. Scope: admin. Contract: route_inferred. Team Perf Reward State

team.perf.trends

Write. Scope: admin. Contract: route_inferred. Team Perf Trends

team.perf.v2.data

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Data

team.perf.v2.export

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Export

team.perf.v2.live

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Live

team.perf.v2.reward.sheet

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Reward Sheet

team.perf.v2.settings

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Settings

team.perf.v2.settings.save

Write. Scope: admin. Contract: route_inferred. Team Perf V2 Settings Save

team.save

Write. Scope: team.write, admin. Contract: route_inferred. Admin Users Save

team.save.route.departments.save

Write. Scope: team.write, admin. Contract: route_inferred. Departments Save

(77)

tickets.ai.summary

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Ai Summary

tickets.analytics

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Analytics

tickets.approval.decide

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Decide

tickets.approval.request

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Approval Request

tickets.approvals.pending

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Approvals Pending

tickets.assignment.rule.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Assignment Rule Delete

tickets.assignment.rule.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Assignment Rule List

tickets.assignment.rule.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Assignment Rule Save

tickets.assignment_rules.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Assignment Rules Delete Retry-safe with idempotency_key.

tickets.assignment_rules.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update a ticket assignment rule Required fields: name. Retry-safe with idempotency_key.

tickets.bulk

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Bulk Retry-safe with idempotency_key.

tickets.bulk.route.tickets.bulk

Write. Scope: tickets.write, admin. Contract: route_inferred. Tickets Bulk

tickets.calendar.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Calendar Delete

tickets.calendar.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Calendar Save

tickets.claim

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Claim

tickets.csat.get

Read. Scope: tickets.read, admin. Contract: explicit. Get the CSAT response for one ticket Required fields: ticket_id.

tickets.csat.list

Read. Scope: tickets.read, admin. Contract: explicit. List ticket CSAT responses in the bound workspace

tickets.csat.metrics

Read. Scope: tickets.read, admin. Contract: explicit. CSAT metrics for a period (the tickets dashboard numbers)

tickets.embed.load

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Load

tickets.embed.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Save

tickets.embed.secret

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Embed Secret

tickets.field.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Field Save

tickets.follower.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Add

tickets.follower.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Follower Remove

tickets.get

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Get

tickets.kb.deflection

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Deflection

tickets.kb.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Draft

tickets.kb.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Kb Save

tickets.kb.version.restore

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Version Restore

tickets.kb.versions

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Kb Versions

tickets.link.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Add

tickets.link.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Link Remove

tickets.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets List

tickets.open

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Retry-safe with idempotency_key.

tickets.open_guest

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Open Guest Retry-safe with idempotency_key.

tickets.ops.summary

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Ops Summary

tickets.policy.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Sla Policy Delete

tickets.policy.save

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Sla Policy Save

tickets.presence.leave

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Leave

tickets.presence.ping

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Presence Ping

tickets.quick.replies

Write. Scope: tickets.write, admin. Contract: declared_dynamic. Ticket Quick Replies

tickets.quick.reply.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Quick Reply Save

tickets.relations.get

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Relations Get

tickets.reply

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Reply Retry-safe with idempotency_key.

tickets.reply.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Delete

tickets.reply.edit

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Edit

tickets.reply.outbound.convert

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Outbound Convert

tickets.reply.translate

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translate

tickets.reply.translation.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Delete

tickets.reply.translation.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Reply Translation Save

tickets.rule.compose

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Rule Compose

tickets.side.ai.draft

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Ai Draft

tickets.side.assign.department

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Assign Department

tickets.side.create

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Create

tickets.side.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side List

tickets.side.mention

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Side Mention

tickets.side.recipients

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket Side Recipients

tickets.side.reply

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Side Reply

tickets.sla.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Sla Delete Retry-safe with idempotency_key.

tickets.sla.save

Write. Scope: tickets.write, admin. Contract: explicit. Create or update an SLA policy Required fields: name. Retry-safe with idempotency_key.

tickets.split

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split

tickets.split.candidates

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Split Candidates

tickets.tag.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Add

tickets.tag.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Tag List

tickets.tag.remove

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Tag Remove

tickets.tags.add

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Add Retry-safe with idempotency_key.

tickets.tags.list

Read. Scope: tickets.read, admin. Contract: source_inferred. Tickets Tags List

tickets.tags.remove

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Tags Remove Retry-safe with idempotency_key.

tickets.update

Write. Scope: tickets.write, admin. Contract: source_inferred. Update a ticket status, priority, subject, department or assignment Retry-safe with idempotency_key.

tickets.view.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Delete

tickets.view.list

Read. Scope: tickets.read, admin. Contract: declared_dynamic. Ticket View List

tickets.view.save

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket View Save

tickets.views.delete

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Delete Retry-safe with idempotency_key.

tickets.views.save

Write. Scope: tickets.write, admin. Contract: source_inferred. Tickets Views Save Retry-safe with idempotency_key.

tickets.worklog.add

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Add

tickets.worklog.delete

Write. Scope: tickets.write, admin. Contract: route_inferred. Ticket Worklog Delete

tickets.worklog.list

Read. Scope: tickets.read, admin. Contract: route_inferred. Ticket Worklog List

todos (1)

todos.add

Write. Scope: todos.write, admin. Contract: source_inferred. Todos Add Retry-safe with idempotency_key.

visitors (3)

visitors.block

Write. Scope: visitors.write, security.write, admin. Contract: route_inferred. Block a visitor Required fields: visitor_id.

visitors.list

Read. Scope: visitors.read, analytics.read, admin. Contract: route_inferred. List visitors

visitors.table

Read. Scope: visitors.read, admin. Contract: route_inferred. Visitors Table

Các móc (1)

webhooks.events.list

Read. Scope: webhooks.read, crm.read, admin. Contract: explicit. List outbound webhook events and their payloads

ghi (6)

writing.analyze

Write. Scope: writing. Contract: source_inferred. Writing Analyze Retry-safe with idempotency_key.

writing.compose

Write. Scope: writing. Contract: source_inferred. Writing Compose Retry-safe with idempotency_key.

writing.reply

Write. Scope: writing. Contract: source_inferred. Writing Reply Retry-safe with idempotency_key.

writing.rewrite

Write. Scope: writing. Contract: source_inferred. Writing Rewrite Retry-safe with idempotency_key.

writing.summarize

Write. Scope: writing. Contract: source_inferred. Writing Summarize Retry-safe with idempotency_key.

writing.translate

Write. Scope: writing. Contract: source_inferred. Writing Translate Retry-safe with idempotency_key.

OpenAPI và Postman có sẵn sàng chưa?+

Phải, nguồn gốc của OpenAPI 3.0 tài liệu đang ở /api/v1/openapi.php, Bộ sưu tập Postman đã tạo ra /api/v1/postman.php, Và các bác sĩ phát triển có thể đọc được của con người đang ở /api/docs/.

Làm sao tôi làm việc với nhiều công việc hơn một không gian làm việc?+

Gửi nơi Mạng_key trong cơ thể yêu cầu để chọn một vùng làm việc. Một phím được phát hành cho một vùng công việc giữ nó; một chìa khóa có ngữ cảnh admin có thể chọn bất kỳ khoảng không gian làm việc nào nó được phép xem, và bị từ chối cho bất cứ điều gì nó không được.

Hành động nào có thể gọi bằng phím chỉ đọc?+

Bất kỳ hành động nào được đánh dấu như là đọc. Đặt chế độ cho phép đọc chỉ và mọi ghi bị từ chối bằng cách đọc_chỉ_k lưu phím, vì vậy sự tích hợp thông báo không thể thay đổi bất cứ điều gì ngay cả khi bị lỗi.

Tại sao tôi không được tìm thấy cho một cái gì đó tôi có thể nhìn thấy trong admin?+

Chìa khóa được bao gồm trong vùng làm việc. Ghi chép trong vùng lao động khác không trở lại chứ không phải tìm thấy thay vì một lỗi cho phép, do đó API Chưa bao giờ xác nhận có điều gì khác tồn tại hay không.

Nhà phát triển

Bảo mật API

Một hợp đồng bảo mật cho mỗi kết nối và tích hợp: OpsIQ Nó biết gì về một IP hoặc người gửi, và lấy lại sự lạm dụng mà hệ thống của bạn thấy.

OpsIQ đã tự phòng thủ: IP Bức tường lửa chặn kẻ tấn công, bộ lọc đường ống dẫn vé và phân loại tội phạm và đề nghị ngăn chặn luật lệ. API mở trí thông minh đó cho các hệ thống khác của bạn. và báo cáo những gì nó quan sát thấy để toàn bộ cài đặt học hỏi từ mọi bề mặt.

Những gì bạn có thể làm

Kiểm tra trước khi tin tưởng

Bảo vệ. Kiểm tra câu trả lời với tình trạng tường lửa, bất kỳ quy tắc thư rác nào phù hợp với người gửi, và các cáo buộc AI lưu trữ cho IP Một cuộc gọi, một ý kiến được củng cố.

Báo cáo những gì anh đã thấy.

Bảo vệ. Thông tin báo chí ghi nhận quan sát như là một sự kiện an ninh, có an ninh AI phân loại IP ngay lập tức, và báo động các biệt đội khi phán quyết trở lại mức nguy hiểm cao. OpsIQ thấy trực tiếp.

Chia sẻ quy tắc thư rác

security. blocklist. add và security. bloklist. list đọc và viết cùng một quy tắc spam mà trang Tickets sử dụng, vì vậy người gửi bị chặn trong một hệ thống sẽ bị chấm dứt ở mọi nơi.

Báo cáo lạm dụng từ một kết nối
POST /api/v1.php
Authorization: Bearer opq_your_api_key
Content-Type: application/json

{
  "action": "security.report",
  "ip": "203.0.113.7",
  "kind": "spam",
  "reason": "Sent 40 junk tickets in 10 minutes",
  "source": "whmcs:example.com"
}

Phạm vi và an toàn

security.read

Cần bảo vệ, kiểm tra và danh sách an ninh.

security.write

Cần bảo vệ, an ninh và bảo vệ.

Không có gì bị phá hủy âm thầm

Một người gửi hàng rào vẫn đáp xuống xem Spam nơi có thể đọc và phục hồi vé.

Nền tảng tự bảo vệ mình

Máy phục vụ của riêng IP địa chỉ không bao giờ bị chặn, bị khóa hoặc báo cáo thông qua API Sự tích hợp không được cấu hình sai thì không thể phá bỏ được nền tảng.

💡
Vậy thì để chìa khóa dưới sự hợp nhất.API Chìa khóa, và chỉ cung cấp cho nó các phạm vi an ninh cần thiết.
Các kết nối hiện có của tôi có dùng tự động không?+

Đồng bộ ngoài đã tự động: khi bạn chặn một IP Các nền tảng đã kết nối được thông qua đồng bộ bảo mật kết nối. API Chỉ vào bộ kết nối hay mã tùy chỉnh của bạn tại 4 hành động này với một chìa khóa mang theo phạm vi an ninh.

Nơi nào spam quy tắc sống?+

Một cửa hàng. API tất cả đều chống lại cùng một danh sách chặn, vì vậy có chính xác một nơi để tìm.

Nhà phát triển

Sự kiện API

Gửi các sự kiện tự chọn từ máy phục vụ hay nơi Mạng tớiOpsIQĐối với phân tích, thí nghiệm,CRM Kích hoạt, và điều kiện môi trường.

Nó hoạt động thế nào?
Sự kiện APIMột cuộc gọi theo dõi () gửi một chứng minh_ cuốn sách tùy chọn OpsIQ Các mục tiêu chuyển đổi, phân đoạn và kích hoạt.OpsIQ. track("demo_booked", {giá trị: 0Kế hoạch: "pro"});Chuyển đổi mục tiêuĐoạn thẳngKích hoạt và kết nốiBộ duyệt (OpsIQ.track) hoặc cục bộ máy chủ /v1/events
Sự kiện API

Sự kiện bên máy duyệt

Theo dõi sự kiện duyệt
window.OpsIQ = window.OpsIQ || [];
window.OpsIQ.push(["track", "button_clicked", {
  button: "signup",
  page: "/pricing",
  variant: "green"
}]);

Các sự kiện bên máy phục vụ

Bên máy phục vụ, hoạt động thu và chuyển đổi chống lại liên lạc qua hành động API Sử dụng crm.activities.record Cho hoạt động xe đạp kéo/ doanh nghiệp và crm.conversions.record Không có events.send hành động; trình nhận sự kiện CRM đang chạy sống tại /v1/inbound.php?t=<token> Cho hệ thống thứ ba thúc đẩy sự kiện.

Hoạt động bên máy phục vụ (hành động API)
POST /api/v1.php
Authorization: Bearer opq_your_key
Content-Type: application/json

{
  "action": "crm.activities.record",
  "site_key": "site_abc123",
  "email": "[email protected]",
  "event": "subscription.upgraded",
  "value": 50,
  "currency": "USD"
}

Hội nghị Nam Giới

Ký hiệu

"tiểu lệnh. Hoàn thành" không phải "tiệm xếp hàng".

& Thời gian qua

"nút. Nhấn" không phải "cái nút. Nhấn".

Hãy nói rõ

"tặng tiền. Kế hoạch chọn" không phải "người dùng hành động".

Nhà phát triển

Dữ liệu chảy qua như thế nào OpsIQ

Hiểu được dòng dữ liệu giúp bạn gỡ lỗi sự tích hợp và hiệu quả tối ưu.

Nó hoạt động thế nào?
Dữ liệu lưu thông như thế nàoDữ liệu chảy từ ô điều khiển và đèn hiệu vào OpsIQ lõi (CDP, đồ thị danh tính, bộ não AI, phân tích, CRM) sau đó ra ngoài thông qua các móc mạng và RTT API.Nơi Mạng& đèn hiệuOpsIQ lõiĐồ thị bản sắc CDPBộ não Alphân tích học · CRMMóc câu raRORT API
Luồng dữ liệu

Luồng dữ liệu vào

1
Đèn hiệu ô điều khiển

Hạt JavaScript Ô điều khiển gửi các ô xem trang, nhắp và tin nhắn trò chuyện đến /beacon.php.

2
Nuốt sự kiện

Sự kiện được cất giữ trong các buổi tối có phím_, kiểu sự kiện , khách hàng và tài sản của trang web.

3
Lắp ráp phiên chạy

Nhóm xây dựng phiên chạy sẽ xem các phiên chạy (via cron).

4
Độ phân giải & nhân dạng

Nếu được xác định, hồ sơ nặc danh sẽ được liên kết với hồ sơ khách hàng.

5
Đồng bộ máy chủ

Các liên kết thu thập dữ liệu từ các nền tảng bên ngoài và lưu trữ trong bộ nhớ tạm kết nối.

6
Văn cảnh AI

AI tập hợp bối cảnh từ: lịch sử khách truy cập, hồ sơ khách hàng, dữ liệu kết nối, KB và nhắc.

Luồng dữ liệu ra

1
Lửa liên hoan

Sự kiện nội bộ đã bùng nổ (ổ cắm. được tạo, chat, thông báo, thứ tự. Hoàn tất).

2
& Sắp hàng công việc

Sự kiện được đặt trong hàng đợi công việc đặc biệt.

3
Gửi Webhook

Gửi các biển báo và gửi đến tất cả các điểm cuối đã đăng ký.

4
Thử lại khi bị lỗi

Việc giao dịch thất bại được tái kết nối với việc sử dụng lại cấp số nhân.

Thiết lập

Thiết lập tham chiếu

Thiết lập là trung tâm điều khiển cho vùng làm việc. Mọi thứ bên dưới được phân loại thành vùng làm ăn, vì vậy một tài khoản có thể chạy nhiều thương hiệu với các danh tính khác nhau, cách cư xử và quy tắc ghi nhớ.

Tìm được một bối cảnh

Có khoảng sáu trăm điều khiển riêng lẻ trong Thiết lập, trải rộng 11 trang dưới bốn trình đơn. Bạn không cần duyệt cho chúng.

Thiết lập tìm kiếm (Ctrl + K)

Nhấn Ctrl + K, hoặc Cmd + K trên Mac, ở bất kỳ nơi nào trên trang Thiết lập. Nhập từ đơn giản và nhấn Enter để nhảy thẳng đến điều khiển. Tìm kiếm chấp nhận những lỗi gõ nhỏ và hiểu các từ liên quan, vì vậy trình sắp xếp tìm thấy Cron và sự riêng tư tìm thấy các điều khiêm theo dõi. Nó chỉ hiển thị các thiết lập mà vai trò của bạn có thể mở.

Không gian làm việc và kế hoạch

Đại tướng và Giấy Phép.

Hỗ trợ AI và khách hàng

Trợ lý Quản trị AI, thân chủ tán gẫu, OpsIQ Viết và hỗ trợ Portal.

Dữ liệu và Bộ Lãnh Đạo Trung Ương

Theo dõi và giữ kín, cho phép và bảo vệ.

Hệ thống

Thiết lập sắt (chỉ tự chủ) và Khu vực Nguy hiểm.

Đang lưu

Mỗi thẻ tiết kiệm riêng với nút Lưu riêng của nó. OpsIQ Ghi các điểm của chúng lên màn hình. Lưu trước khi chuyển đổi, thay đổi không được mang qua.

Liên kết sâu

Thẻ hoạt động được ghi vào địa chỉ trang, vì vậy một thẻ có thể Đánh dấu hoặc gửi cho đồng nghiệp.

Chung: Danh tính doanh nghiệp

Thẻ quan trọng nhất trên trang này. AI đọc những giá trị này trên mỗi câu trả lời, báo cáo và tóm tắt thông tin hàng ngày.

Tên công việc

Dùng trong báo cáo AI, tóm tắt hàng ngày và các từ khách hàng. Khớp chân trang web của bạn.

Công nghệ kinh doanh

Phân tích AI, phân tích theo dõi chì, tóm tắt và khảo sát. chọn từ các nhà quản lý web, e-commerce, SaaS, bất động sản, cơ quan tư vấn, chăm sóc sức khỏe, giáo dục, tài chính hoặc doanh nghiệp tổng quát.

Ngôn ngữ hệ thống

Ngôn ngữ được chỉ ra cho bất cứ ai chưa chọn ngôn ngữ riêng của họ.

Dùng ngôn ngữ duyệt

Cho thấy trang ký trong ngôn ngữ của chính khách.

Muộn

Vùng mà toàn bộ hệ thống chạy: ngày, báo cáo, lịch và cron nền. Dùng vùng làm việc của bạn, không phải khách hàng.

Chung: GeoIP và Theo dõi

Đường dẫn co sở dữ liệu GeoIP2

Đường dẫn đầy đủ đến GeoLite2-Cmdb. Tự động phát hiện ra khi tải đầu tiên qua cPanel Plesk, DirectAdmin, Cloudways, Docker và plain Linux hoặc Windows. Thêm GeoLite2-ASN.mdb trong cùng một thư mục cho nhà cung cấp internet khách truy cập.

Chế độ nguồn Geo

Chỉ GeoLite2, GeoLite2 với một Cloudflare Lùi lại, hay Cloudflare Chỉ có điều.Cloudflare Chế độ cần thiết nơi Mạng cần được giải mã qua Cloudflare Với vị trí của khách đã được xác định cho thành phố và khu vực.

Thời hạn phiên chạy (s)

Không hoạt động trước khi xem xong phiên chạy. Mặc định 14400 4 tiếng nữa.

Trực tiếp cập nhật

Bao lâu thì chương trình cập nhật thức ăn trực tiếp. 30 giây.

Ngưỡng hoạt động (min)

Một khách truy cập tính thọ bao lâu sau khi tải trang cuối cùng. Mặc định 2 Đây là chương trình Live Trading-off, không phải khoảng thời gian dành cho phiên họp.

Bảo vệ Dữ liệu (ngày)

Xóa các ghi chép thu thập và tạo ra sau thời gian này: phân tích, trò chuyện, vé, phản hồi, giao dịch, đo từ xa AI, bản ghi tích hợp và hoạt động CRM. 0 giữ mọi thứ vĩnh viễn. Thiết lập, nội dung tác giả và chứng nhận đồng ý không bao giờ bị xóa.

Khi một cuộc trò chuyện bị xóa

Chọn bao nhiêu của một cuộc đối thoại bị xoá còn lại trong hồ sơ: mục ghi đầy đủ, hồ sơ không có đối thoại, hay chỉ điểm. Việc xóa luôn luôn ẩn bộ chuyện này và lịch sử khách truy cập. Đã lập lịch bảo lưu và quên luôn xóa hoàn toàn khách truy vấn bất kể điều này.

Theo dõi lưu lượng robot

Các nhà đầu tư là khách thăm, đi ra ngoài; nó thổi phồng các vị khách và làm cho mỗi báo cáo bị lệch.

Chọn thư mục hiện thời

Hiện ô điều khiển phản hồi toàn diện nơi Mạng cho khách truy cập. Tách khỏi các cuộc khảo sát chat dưới trình thông tin khách, Hỗ trợ Flow.

Chung: Tính năng AI

Chuyển đổi nhân tạo cho mỗi bề mặt AI. Tất cả mặc định là bật và lưu vào trong không gian làm việc.

AI Triage trên vé

Phân loại mỗi vé, ưu tiên và tình cảm, và viết tóm tắt chỉ ở trên vé.

Tóm tắt độ xoay AITage

Hiện các thẻ ba và tóm tắt trong một công tố viên khi một đặc vụ đứng trên một hàng trong danh sách vé.

Phi công phụ trong hộp thư đến (máy tính)

Thêm các bản nháp đáp án AI, ấm áp, lùn hơn, thêm nút nhập khẩu và in đơn xin lỗi dưới hộp trả lời vé.

Hỏi đi.OpsIQ Phi công phụ

Các phi công phụ nổi trên mỗi trang quảng cáo biết khách hàng nào, hóa đơn hay vé đã mở.

Sớm buổi sáng

Mỗi ngày, khi mở cửa, phi công phụ trình bày vé máy bay, trả lời quá hạn và chờ chat, họ sẽ xem lại mỗi tuần.

Chung: tiền, thương hiệu, dự phòng

OpsIQ Tiền tệ cơ bản

Tổng số tiền trong quảng cáo được chuyển đổi sang tiền tệ này để hiển thị. Kết nối lưu tiền tệ nguồn riêng; đặt nó trên mỗi kết nối.

Tỷ lệ FX tự động

Mỗi 6 tiếng, mỗi lần được cập nhật lại từ một nguồn dữ liệu công cộng miễn phí mà không có API Bạn có thể thêm vào tỷ lệ sử dụng thủ công để ghi đè lên nguồn cấp dữ liệu. với các tiền tệ tự động, mà không cần tốc độ sử dụng tay.

Kích hoạt tính năng thương mại và tính toán

Tắt tàu đi. và trang Sales để lại thực đơn.

Từ vựng thương mại

Dạy OpsIQ lời_nói của anh_em là : anh_ em hoặc nói lại , hoặc lời giảng_dạy , nghĩa_là sự đổi mới , điều anh_ta đã bán , và điều người_ta gọi là gì .

Đóng dấu và đăng ký

Hai lần tải lên, một cho nền sáng (adminbar) và một cho bóng tối (trong trang). PNG, JP, WebP hay SVG lên 3 MB.

Đặc vụ tình báo Site, cho phép tôi nói chuyện riêng. SSH Mục tiêu

Sự phân loại tự động SEO Đặc vụ kết nối SSH. Binh nhất, vòng lặp và địa chỉ riêng bị chặn bởi mặc định là một biện pháp chống giao thứcSSRF. Chỉ bật khi cài đặt tự động cần phải tới máy phục vụ cục bộ.

OpsIQ Sao lưu/ Phục hồi

Xuất ra mọi cài đặt và OpsIQ Tên bảng, và tập tin đã tải lên. Phục hồi thay thế OpsIQ cấu hình và ghi chép chỉ bao giờ chạm đến khách hàng, hóa đơn, vé, dịch vụ, lĩnh vực, đơn đặt hàng hoặc giao dịch.

⚠️
Hãy lấy bản sao lưu trước khi sử dụng bất cứ thứ gì trong vùng nguy hiểm. nên dễ dàng truy cập vào nút xóa mà chưa xuất trước.
Thiết lập

Thiết lập: Bảo mật

Bảo vệ các bảng đăng nhập, các tài khoản nhân viên và dữ liệu OpsIQ Khách hàng đăng ký cho cổng hỗ trợ được cấu hình riêng biệt.

Bảo vệ kí tên

GooglereCAPTCHA

Dừng robot và các vật chứa có dấu chấm trên bảng màu. Chọn v3 (không thấy được, ghi) hoặc v2 (hộp kiểm), đặt ngưỡng v3 số, và cung cấp nơi Mạng và phím bí mật. Những phím này được dùng lại bởi đơn của cổng.

Tự động khoá thất bại

Chặn một địa chỉ sau khi có nhiều lỗi trong cửa sổ, trong vài giờ. Bạn có thể tùy chỉnh thông điệp đã khoá- trang và hiển thị một màn hình chờ nhỏ.

Đăng nhập

Chính sách mật khẩu với chiều dài tối thiểu, từ chối mật khẩu được tìm thấy trong các lỗ hổng đã biết, khóa một số đối tượng với các vật dụng có giấy chứng nhận, bắt buộc phải có hai mặt cho mỗi quảng cáo, mật khẩu trở lại trước khi hành động nguy hiểm, và báo động mới.

Dấu trên đơnOIDC)

Nhân viên đăng ký thông qua nhà cung cấp chứng minh. URL mã nhận diện khách hàng. miền tự động, mỗi dòng, tạo tự động người dùng trên bảng đăng nhập đầu tiên.

Dấu trên đơn SAML 2.0)

Cho những nhà cung cấp nói SAML. OpsIQ cung cấp trả lời ACS URL và ID thực thể SP; bạn cung cấp ID thực tế IP, ký tên URL ký tùy chọn URL và X.509 Chứng nhận kí. Các trường thuộc tính tên và email chỉ cần thiết cho các tên thuộc tính không chuẩn.

Cung cấp SCIM

Tạo thư mục, cập nhật và giảm hiệu lực OpsIQ Tài khoản.OpsIQ Cung cấp SCIM Cơ sở URL; bạn tạo ra những biểu tượng được dán nhãn ở đây để một người có thể bị thu hồi mà không làm hỏng phần còn lại.

Mối đe dọa, chặn và thu thập

Cho phép sử dụng Egrad Eg

Giới hạn mà các máy bên ngoài tổ chức này kết nối không gian làm việc có thể gọi. SSH Mục tiêu kiểm soát ở tướng quân.

Máy quay tự động và chế độ đe dọa

Chặn một vị khách khi điểm đe dọa của họ vượt qua ngưỡng cửa. 0 Xem trang Overview bảo mật một tuần trước khi chọn số.

Thông điệp trang chặn

Thông điệp mà một vị khách bị chặn thấy, như là văn bản đơn giản hoặc phong tục riêng của bạn HTML Chặn màn hình lại.

Cơ quan trọng hóa Mạng từ những vị khách thực sự

Đo lường LCP, IP và CLS từ các phiên thực tế.

Chuyển giao sự kiện an toàn, thiết lập lại

Các sự kiện tự chọn xếp hàng trong trình duyệt và giao hàng bằng các thư mục tái sắp xếp, giảm thiểu mất mát về kết nối di động nghèo.

Dấu hiệu

Các widget thực được nhúng mang một ký hiệu mã hóa quay nên dữ liệu theo dõi giả có thể bị từ chối. Tắt mặc định; bật thay đổi cách xác thực các widget, vì thế thử trước.

Cảnh báo bảo mật

Tắt theo mặc định. Phát hiện và chặn chạy bất kể. Thẻ này điều khiển bạn có được bảo không, và hỗ trợ AI bao nhiêu.

Bật báo động bảo mật

Bật công tắc chính cho lá bài này.

Ngưỡng sóng thất bại

Bao nhiêu lần ký hiệu thất bại trong một khoảng thời gian ngắn như là một cơn sóng đáng để cảnh báo.

IP Thông minh về danh tiếng

Thêm điểm đe dọa cho du khách xuất hiện trong các nguồn cấp dữ liệu lạm dụng công cộng.

Xem chỗ ngồi

Hết giờ và TLS Kiểm tra thẩm vấn, cảnh báo trước khi chứng nhận bị lỗi.

Biên bản tóm tắt sự cố AI và nhà phân tích an ninh AI

Thêm vào đó là một bản án có thể giải thích được cho hoạt động đáng ngờ, và các nhóm người liên quan đến những cuộc tấn công vào một sự kiện dễ đọc hơn là một dòng biến cố.

Tự động lái chính sách

Công việc này tự xoay quanh những gì học được từ một sự kiện trở thành một nguyên tắc được đề nghị hoặc áp dụng.

Hệ thống tiêu hóa hàng ngày và cố vấn tư thế hàng tuần

Một bản tóm tắt trên trang Overview hàng ngày, và một bảng kiểm tra về những gì được bảo vệ và những gì vẫn còn mở hàng tuần.

Tự động mở ra đề xuất cũ

Một quy định được đề xuất là bạn không bao giờ hành động khi hết hạn thay vì tích lũy.

Thời gian biểu

Bật tua lại phiên chạy

Chương trình ghi âm cho người xem phát lại. Khi không nạp lại thư viện, thì không có chi phí để bỏ nó đi. Thu âm được lấy mẫu và phơi bày riêng tư, và được xem trong phiên chạy Re Play pages dưới các phân tích.

Tốc độ mẫu, thu tối đa, lưu

Có phần nào trong các buổi hội thảo, thu âm dài bao lâu, và ghi âm được ghi lại bao nhiêu ngày.

⚠️
Phiên chạy ghi lại những người thực sự sử dụng nơi Mạng của bạn. Giữ mức độ mẫu và lưu trữ thấp như vẫn sẽ trả lời câu hỏi của bạn, và tiết lộ nó trong thông báo riêng tư của bạn
Thiết lập

Thiết lập: Theo dõi và riêng tư

Sao? OpsIQ có thể thu thập, và mỗi loại dữ liệu tồn tại bao lâu.

Các chiều

Bị bỏ qua IPs Phạm vi CIDR

Địa chỉ không bao giờ theo dõi, mỗi đường thẳng, địa chỉ chính xác hay phạm vi CIDR. cách sạch nhất để giữ cho đội của bạn tránh xa phân tích của bạn, bởi vì nó bao gồm tất cả mọi người tại địa chỉ đó chứ không phải chỉ có chữ ký trong các quảng cáo.

Bị bỏ qua URL Đường dẫn

Các mẫu trang không bao giờ được theo dõi, mỗi dòng một thẻ hoang dã với dấu định dạng. Ví dụ /admin/* giữ toàn bộ văn phòng trở lại tránh xa danh sách khách thăm.

Chính sách bảo vệ dữ liệu

Một hệ thống phản ứng tự động trong ngày tách khỏi thiết lập bảo vệ dữ liệu tổng thể và khu vực lọc nguy hiểm.

Bản ghi tương tác AI

Theo dõi tự tin đang giữ ô xem thử ngắn các yêu cầu và trả lời. Mặc định 90 Cái này chứa hầu hết các tin nhắn khách hàng, nên làm ngắn lại trước khi thắt chặt sự riêng tư.

Sự kiện sử dụng AI

Tờ điện thoại hàng ngày tính phí tổn để báo cáo. Mặc định 90 Số liệu, không có nội dung.

Hành động kiểm toán

Mặc định 365 Giữ nó lâu hơn, đó là dấu vết của anh.

Chẩn đoán

Hồ sơ sức khỏe hệ thống. 30 ngày.

Những câu hỏi chưa được trả lời

Các câu hỏi mà AI không thể trả lời. Mặc định 90 Hãy xem qua những câu hỏi mà AI đã bỏ lỡ trước khi chúng hết hạn.

Watchdogs và xuất

Cảnh giác thiếu máu

So sánh hàng ngày của ngày hôm qua so với đường cơ bản gần đây, cảnh báo khi một mét di chuyển nhiều hơn ngưỡng của bạn. Mặc định là bạn có thể làm gì? 35 %, tắt theo mặc định.

Xuất kho

Những buổi tập thường đêm, khách truy cập, xem trang và bàn có liên quan đến chồng đĩa BI của bạn, theo một định dạng mà bạn chọn, được giữ trong nhiều ngày. Mặc định là tắt.

Thiết lập

Thiết lập: Trợ lý Quản trị AI

Trợ lý nổi của nhân viên sử dụng bên trong quảng cáo, với quyền truy cập trực tiếp đến khách hàng, hóa đơn, vé, máy chủ và nhật ký cron.

Bật OpsIQ Name

Hiện nút trợ lý trên mỗi trang quảng cáo. Tắt nó để che giấu mọi người.

Bố trí và cách cư xử

Vị trí góc, chiều rộng bảng điều khiển (320 phải 600 px), chiều cao tối đa (400 phải 900 Bán kính px), góc (0phải 24), kích cỡ phông chữ và một tấm kính đóng băng phía sau bảng.

Hiện các chip nhanh

Cách nhanh nhất để vào hầu hết các nhân viên.

Hiện thông tin về mô hình

Hiển thị các mô hình trả lời và mất bao lâu. hữu ích trong khi điều chỉnh chi phí, tiếng ồn cho sử dụng hàng ngày.

Cổng vào Per-admin

Chỉ hiển thị trợ lý cho một quảng cáo ký tên và email trùng với một OpsIQ Đặc vụ được chỉ định trong vùng làm việc này. Người sở hữu luôn luôn qua. Hãy dùng cái nút Truy cập của tôi trước khi bật, hoặc bạn có thể khoá đội riêng của mình.

Al

Hiển thị tên, dòng đầu và một thông điệp chào mừng tuỳ chọn được hiển thị khi bảng điều khiển mở.

Chip nhanh thông minh

Sửa nhãn và dấu nhắc ẩn cho mỗi phím tắt, thêm của riêng bạn, hoặc đặt lại thành mặc định. Nhãn là những gì nhân viên xem, dấu nhắc là những cái mà AI nhận được.

Màu và hình

Hình chip (hình tròn, hình vuông), màu chip, sắc thái thẻ và hình bệ phóng xạ (hình chung, hình tròn, vuông) với ô xem thử trực tiếp.

Bộ nhớ trò chuyện

Trợ lý nhớ từng người trong suốt các phiên chạy duyệt, đến 120 tin nhắn, lưu vào cơ sở dữ liệu của chính bạn.

Thiết lập

Thiết lập: Chat trạm khách

Các điều khiển chat khách hàng của bạn sử dụng, và vùng lớn nhất của Thiết lập. Sáu con trỏ, với công tắc chính và lưu được gắn vào đầu trang.

Làm việc thông qua con tin con để có thể cài đặt mới: nhân dạng và sao chép, khuôn mặt, hành vi, hỗ trợ lưu lượng, đào tạo kiến thức. cấp cao là cơ sở hạ tầng và có thể chờ đợi.

Nhận diện và sao chép

Nhân dạng thương hiệu

Tên hộp thoại, tên thẻ, tên AI, được dùng cho hệ thống và thông báo & lặt vặt, và cách xuất hiện tên đại diện. Đặc vụ Name

Lời chào thăm trong-Chat

Hai lời chào hỏi, một cho tất cả khách và một cho những người đến thăm.

Trình pha trà Popup

Thông điệp nổi trước khi mở trò chuyện, với tên riêng, kích cỡ phông chữ và màu sắc. AI có thể viết các mô phỏng, với điều khiển cho bao nhiêu người tạo ra, bao nhiêu để hiển thị mỗi lần thăm viếng và khoảng cách giữa chúng.

Nhắc và rút lui

Văn lệnh đầy đủ: yêu cầu tên và email, xác nhận, yêu cầu con người, không có tác nhân, vé được tạo hay hủy bỏ, chờ đợi bàn tay. Khoảng hai tá dòng riêng lẻ trong bảng điều khiển collpapsable (không thể truy cập).

Trạng thái và sự chú ý về bệnh tật

3 tin nhắn có thể nhìn thấy khách hàng: tác nhân đóng cửa cuộc trò chuyện, truy cập đã im lặng, và đặc vụ trở lại AI. Tránh những từ nội bộ như giải quyết hoặc ba lần.

Trình soạn thảo và gợi ý

Người giữ chỗ nhập, nhãn "nói chuyện với người" và những câu hỏi mở đầu được đề nghị 3 gợi ý tốt làm lệch hướng nhiều vé hơn 1 trang báo.

Phóng viên, biểu tượng và Avatar

Biểu tượng người phóng, biểu tượng khác nhau khi mở, kích cỡ phóng và ảnh cho tác nhân con người và AI.

Diện mạo

Sắc thái và Kính

Chế độ sắc thái, tiền định màu cao, cường độ mờ và độ mờ, thêm vào nút bật/tắt cho hoạt hình, đường phân cách, ẩn hàng trạng thái, ẩn thẻ thông điệp và giấu cái nút đóng. Bắt đầu với một định sẵn; nó đặt hàng chục màu cùng một lúc.

Màu chính

Khởi chạy, đầu trang, bảng điều khiển trợ giúp, liên kết, nút, thông báo hệ thống và nhà soạn nhạc, mỗi màu khởi động và kết thúc cho Chuyển đổi. Một tùy chọn mặc định là bảng điều hành, bỏ qua những cái này và giữ cho kết thúc trong suốt.

Tấm, bong bóng và miếng đệmName

Khoảng 30 người hái bông bao phủ bảng điều khiển, biên giới, văn bản, vùng nhập và mọi kiểu bong bóng (xem xét, AI, tác vụ, gõ, hệ thống) cộng với những con chip gợi ý và trạng thái lơ lửng của chúng. Chỉ mở nó cho nhãn khớp chính xác, và kiểm tra sự tương phản trên văn bản bong bóng.

Bố trí và Hình dạng

Kích cỡ và chiều cao bảng điều khiển, bán kính góc, kích cỡ phông chữ, vị trí màn hình, dạng bệ phóng, kiểu dáng bong bóng và độ rộng của điện thoại.

Cư xử

Tự động trả lời AI

Công tắc chính của trí nhớ nhân tạo, tắt nghĩa là mọi thông điệp đều chờ đợi con người.

Phát triển theo dõi của con người và chuyển ngữ cảnh tự nhiên

Một tiếp theo nhẹ nhàng khi một du khách đi yên tĩnh, và một thư thứ hai tùy chọn ngắn như cách một người gửi một. Đã điều chỉnh với tối đa lên mỗi im lặng, đầu tiên chậm trễ, sau đó nhân rộng hơn, cửa sổ hiện diện và cửa sổ dãy tối đa. Có thể giới hạn trong giờ kinh doanh, và nén lại sau một lời cảm ơn đơn giản.

Máy gõ trả lời và tốc độ đáp lại

Cho dù trả lời gõ ra từng từ, và nhanh như thế nào trợ lý trả lời, bằng cách định sẵn hoặc sự chậm trễ tối thiểu và tối đa trong phần nghìn giây. Một sự chậm chạp nhỏ đọc là nhiều hơn con người hơn một hồi âm ngay lập tức.

Dịch trực tiếp

Mỗi đặc vụ đọc và viết bằng ngôn ngữ của họ trong khi khách đến thăm đọc sách của họ.

Đưa tay cho Al sau khi điệp viên không có ở đây.

Vài phút ngưng hoạt động của đặc vụ trước khi AI tiếp tục cuộc nói chuyện.

Tự động mở cửa trò chuyện

Vài giây trước khi các ô điều khiển tự mở ra.0Không bao giờ mở. xâm nhập vào điện thoại di động; rời khỏi0trừ khi được kiểm tra.

Những lời giải đáp thông minh hơn

Lên kế hoạch trước cho câu trả lời một cây, suy nghĩ chiều sâu, một mô hình riêng biệt cho các câu trả lời đại lý, hiển thị lý lẽ cho khách truy cập, khoan dung với bộ nhớ ghi nhớ, dài, hạn chế trợ lý kinh doanh của bạn, giá cả trong tiền tệ khách truy nã, và làm thế nào liên kết xuất hiện. chỉ nói về kinh doanh bạn nên được trên hầu hết mọi người.

Chi phí lưu

Bỏ qua việc tìm kiếm sự chào hỏi như chào hỏi và cảm ơn, và đặt câu trả lời dài nhất vào những vật kỷ niệm.

Ngôn ngữ

Các thiết bị điều khiển hỗ trợ ngôn ngữ nào và làm thế nào nó chọn một cho khách truy cập.

Giải đáp tài khoản khách hàng

Trả lời từ một tài khoản khách hàng đã đăng ký, theo lựa chọn, xem trực tiếp và chỉ nạp tùy chọn khi cần thiết.

Gỡ bỏ

Yêu cầu hoàn trả lại tiền, nơi trợ lý thu thập chi tiết và bàn tay với một người.

Nói chuyện và điều khiển cuộc nói chuyện

Giữ các cuộc trò chuyện qua lại, tiếp tục trò chuyện trên các trang web đã kết nối, cửa sổ dễ kéo dài, hỏi khách hàng để nhận email, và để cho đội của bạn biến một cuộc trò chuyện thành một vé.

Tính năng từ khoá

Trình chọn ảnh, đính kèm với chế độ dán tùy chọn, AI hiểu biết trực tiếp, biểu tượng micro, nút nói chuyện, âm thanh đối tác, xem thử đính kèm, nút gọi điện thoại và cách biệt phiên chạy. Ảnh AI là những gì cho phép người truy cập dán một hình ảnh lỗi và có được một câu trả lời hữu ích.

Hộp thư mục quản trị, thông báo và chào mừng bạn khi bật lên

Khách truy cập chào mừng sự bật lên, cộng với các đại diện của bạn cảnh báo: âm thanh inbox, thông báo màn hình nền, thì thầm, cho dù thì thầm riêng tư beep, và khoảng bỏ phiếu thăm dò trong hộp.

Hỗ trợ dòng chảy

Người giao

Làm thế nào yêu cầu cho một người được chỉ định, những giây một tác nhân phải đáp ứng, cho dù giảm trả lại bộ chat cho AI, và liệu AI có tiếp tục khi thời hạn hết hạn. Cấu hình này trước khi đi sống hoặc một khách truy cập yêu cầu con người chỉ đơn giản là đợi.

Giờ làm việc

Thời gian mở, múi giờ và thông điệp đóng cửa. bên ngoài những giờ này AI sẽ không cung cấp cho một con người. OpsIQ Viết.

Phản hồi khi AI tắt

Câu trả lời đầu tiên cho thông điệp mới, câu trả lời khi một người đã xếp hàng rồi, và bao lâu trước khi lặp lại.

Mẫu ngoại tuyến

Cho thấy một mẫu liên lạc thay vì trò chuyện.

Thông báo tìm kiếm và vé của nhà nước

Nhận thức vé, vì vậy một khách truy cập trích dẫn một số vé được thực sự của nó, và mà bộ phận AI có thể tuyến đường đến. một bảng xây dựng cho thấy những người nhận được thực tế cho mỗi ban, giải quyết cùng một cách mà thông báo giải quyết họ, do đó, bạn có thể thấy trước khi một khách hàng có thể mà một bộ phận cảnh báo không ai.

Trung tâm trợ giúp trong ô điều khiển trò chuyện

Cho phép khách duyệt các bài đã xuất bản mà không để lại bộ vi xử lý. Bạn chọn vị trí điểm nhập xuất hiện, nhãn thanh dưới cùng và biểu tượng, và có nên cung cấp liên kết đến trung tâm trợ giúp đầy đủ. Tắt theo mặc định.

Đánh giá đàm thoại

Đánh giá sao đã kích hoạt khi một tác nhân đóng kết nối, khi một lệnh rời khỏi máy, hoặc sau một thời gian không hoạt động. Chọn một hoặc hai kích hoạt, không phải tất cả.

Khảo sát mạng sau

Một cuộc thăm dò ngắn khi khách kết thúc cuộc trò chuyện, với câu hỏi của bạn, trì hoãn, quy tắc thời gian và số điểm mỗi lần ghé thăm.

Khảo sát thư điện tử sauChat

Một cuộc khảo sát tiếp theo bởi email sau khi kết thúc, tùy chọn ngôn ngữ mà khách truy cập đã nói chuyện, với kiểm soát sự chậm trễ, chủ đề, giới thiệu, câu hỏi, nhãn nút và dòng cảm ơn.

Trả lời

Các ngón tay cái giơ lên và ngón tay trên mỗi đáp án AI, cung cấp các bảng điều khiển chất lượng.

Kho thông tin trò chuyện

Tự động phân loại sau nhiều ngày, sau vài phút im lặng và xóa các cuộc trò chuyện lưu trữ sau nhiều tháng. vị trí thứ ba được thiết lập lại, cùng với tướng quân và theo dõi.

Đào tạo Kiến thức

Những gì trợ lý thực sự biết, không có gì khác trong khách hàng trò chuyện nhiều như vậy.

Huấn luyện kiến thức web

Vẽ nơi Mạng của bạn để thư mục có thể trả lời. Đến mười liên kết bắt đầu, giới hạn trang, độ sâu liên kết, và loại bỏ thư mục. URL có thể được kiểm tra trước khi bò.

Nghề nhúng

Hạt API Khóa và mô hình biến trang thành ý nghĩa tìm kiếm được thay vì khớp từ khóa.

Người quản lý sự hiểu biết

Một click chuột và AI đọc từng trang FAQ và bò và phân loại chúng thành các loại.

FAQs, lời giải đáp được nhiều người chú ý

Các câu hỏi và các cặp trả lời được xem là nguồn ưu tiên cao nhất, mỗi cái với một trạng thái, trọng lượng và phân loại. JSON Và AI có thể viết chúng từ mô tả kinh doanh của bạn. khi trợ lý nhận được một cái gì đó sai, hãy viết một FAQ: nó vượt qua các trang bò, vì vậy sửa chữa là tức thời.

Cấp cao

Hiệu suất và giới hạn

Khoảng thời gian ô nhiễm, hạn chế tốc độ thông điệp và cửa sổ, kích cỡ đính kèm tối đa, cố gắn kết trên mỗi cửa sổ và cho phép mở rộng tập tin. Danh sách mở rộng là một sự điều khiển bảo mật; giữ nó chặt chẽ.

Giao hàng thời gian thực

Thông điệp và việc phân phối địa vị thay vì bỏ phiếu, qua Pusher, Ably hoặc Firease, với một khoảng bỏ phiếu thăm dò hậu trường.

Thông báo Hệ thốngComment

Thiết bị cảnh báo cho các đặc vụ qua Pusher Beams hoặc OneSignal, với một thiết bị quan tâm.

Đẩy Mạng (VAPID)

Đẩy bộ duyệt bằng cách tạo khóa riêng, không có nhà cung cấp bên thứ ba. Tạo ra ở đây, không phải trong vùng nguy hiểm.

Chia sẻ giọng nói, phim ảnh và màn hình

Giấy ủy quyền biến đổi nên gọi điện thoại qua mạng hạn chế, sử dụng Cloudflare hay giấy ủy quyền của Twilio hoặc của chính bạn URL Tên người dùng và chứng chỉ.

Dòng chảy làm việc trong hộp

Thiết lập vùng làm việc đặc vụ thay vì thiết lập truy cập: thư mục SLA trong phút, lưu xem hàng đợi, gõ tắt và bảng chọn lệnh, tìm kiếm đối số, và vé khách trong thanh tra.

Kênh tin nhắn

Những gì app, Skype, Facebook messages, Skype (tin nhắn, tin nhắn điện tử) X trực tiếp và đường dẫn riêng của mình với công tắc tự động, cộng với một công tắc chính sách chuyển đổi cho hành động AI trên kênh, một lệnh hủy bỏ trả lời và mẫu Whats App-Ap

Một ô xem thử Ô điều khiển trực tiếp ở cuối các bản cập nhật thẻ khi bạn sửa đổi. Hãy dùng nó thay vì tải lại trang Mạng để kiểm tra một thay đổi.
Thiết lập

Thiết lập: Biểu mẫu

Mọi emailOpsIQgửi, và một thiết kế mà khung tất cả. Sửa đổi văn bản của bất kỳ thông điệp nào, và ghi ra mẫu của riêng bạn cho bất cứ điều gìOpsIQkhông phải đã gửi.

Một thiết kế, nhiều tin nhắn

Hạt Tạo mẫu thư điện tử toàn cục là bản tóm tắt: logo của bạn, đầu trang, thẻ, chữ viết tay và chân, với một khoảng trống giữa.OpsIQgửi đi vào giữa đó. Hãy sửa đổi mỗi lần và mỗi lần email thay đổi cùng nhau — trả lời vé, biên nhận Lưu trữ, mật khẩu đặt lại, đặt lại những nhắc nhở đặt chỗ, ký tự PeopleOS và bất cứ điều gì bạn viết.

Không có cách nào để gửi một email ra khỏiOpsIQKhông có gói này. Nó được áp dụng tại một điểm nào đó mỗi thông điệp để lại thông điệp qua, vì vậy một thông điệp thêm vào sau này không thể bỏ lỡ nó.

Đang sửa một thông điệp

1
Thiết lập Mở, rồi mẫu

Thông điệp được nhóm lại bởi những gì chúng là: vé và cổng, Lưu trữ, đăng ký và tài khoản an ninh, đặt chỗ, cuộc đối thoại và thông báo, báo cáo, thư của PeopleOS, và của riêng bạn.

2
Nhấn vào sửa cái bạn muốn

Bạn có được chủ đề, một biên tập văn bản phong phú với mộtHTMLXem bạn có thể chuyển sang sống, và xem trước thư điện tử hoàn tất đúng như người nhận nhận được — bao gồm cả khăn giấy.

3
Dùng thẻ biến

Những chip ở trên trình soạn thảo là các dữ liệu thay đổi: một số vé, một tham chiếu thứ tự, một thời gian đặt chỗ. Nhấn một để thả nó nơi con chạy.

4
Lưu

Chỉ có thông điệp đó được viết ra. để lại một cánh đồng trống và nó giữ cho từ ngữ được xây dựng của nó; viên thuốc trên hàng cho bạn biết nó ở đâu.

💡
Một biến bạn không dùng được gỡ bỏ khi gửi email, và dòng nó ngồi. Đó là lý do tại sao một đặt chỗ không bao giờ gửi số điện thoại "Phone:" mà không có gì sau đó.

Ghi mẫu của riêng bạn

Dùng cái này làm thông điệpOpsIQKhông phải đã gửi thông báo giao hàng, lời nhắc nhở về việc chuyển tiếp, một gói chào mừng, một chìa khóa bằng lái xe, mà là tất cả những gì có được — người biên tập, xem thử, các quy tắc kế hoạch và thiết kế toàn cầu của bạn — và hệ thống của bạn gửi nó quaAPI.

1
Nhấn vào để thêm mẫu

Nút nằm ở đầu trang mẫu và một lần nữa bên cạnh "Các mẫu của chính bạn".

2
Nói đi

Tên trở thành tham chiếu hệ thống của bạn gửi qua, được hiển thị dưới trường khi bạn gõ — chẳng hạn x_custom_delive_booked. Nó không thể thay đổi sau đó, vì một cái gì đó sẽ được gửi bởi nó.

3
Nói xem nó dùng để làm gì và khi nào gửi đến

Hai dòng này là những gì bạn và đồng nghiệp đọc trên trang mẫu từ mỗi năm sau đó.

4
Liệt kê các phần thay đổi

Cộng sản, ví dụ: tên, khi, theo dõi liên kết.{{variable}}Bạn có thể bỏ vào đề tài hoặc thông điệp, và hệ thống của bạn sẽ điền vào nó vào thời gian gửi.

5
Viết chủ đề và thông điệp

Những câu thẳng thắn là tốt — những đoạn nối trở thành đoạn văn.

6
Tạo ra nó, sau đó mở nó

Nó xuất hiện dưới "Những mẫu của riêng bạn" với đầy đủ biên tập và một ô xem thử trực tiếp, giống như mọi thông điệp có sẵn.

⚠️
Write the message, not the whole page. A template that carries its own <html> document is refused, because a whole document would slip past the wrapper and your email would go out with none of your branding on it.

Đang gửi mẫu riêng của bạn

Hai cuộc gọi đến sản phẩmAPINgười gọi cung cấp cho người nhận và các biến số — không bao giờ nói và không bao giờ thiết kế, vì vậy sự kết hợp không thể gửi thư qua không gian làm việc của bạn hoặc lặng lẽ thay đổi những gì bạn nói với khách hàng.

Liệt kê mẫu và biến
POST /api/v1.php
Authorization: Bearer YOUR_API_KEY

{ "action": "email.templates.list", "mine": true }
Gửi đi.
POST /api/v1.php
Authorization: Bearer YOUR_API_KEY

{
  "action": "email.template.send",
  "template": "x_custom_delivery_booked",
  "to": "[email protected]",
  "to_name": "Ada Obi",
  "variables": {
    "name": "Ada",
    "when": "Thursday 11 September, 14:00",
    "tracking_link": "https://track.example.com/AB12"
  }
}
💡
Tên biến đi mà không có gắn bó trong cácAPIgọi. email. stlates.list đưa chúng trở lại chính xác hình dạng bạn gửi chúng vào.

Các mẫu vật và kế hoạch của các bạn

Một thông điệp mà anh không có dịch vụ

Ở lại liệt kê một liên kết "Xem kế hoạch" và không biên tập — để bạn có thể thấyOpsIQsẽ gửi, và mở khóa nó ra.

Mẫu của riêng bạn

Chọn một mẫu dịch vụ thuộc về khi bạn tạo nó, hoặc để lại trên mọi kế hoạch. Một vùng làm việc mà không có dịch vụ đó thì xem nó được liệt kê nhưng không thể sửa đổi hay gửi nó.

Đăng nhập, bảo mật, thông báo và kiểm tra email

Không bao giờ kiểm tra kế hoạch. Không thể sửa đổi từ ngữ của một mật khẩu đặt lại quảng cáo của riêng bạn nhận được sẽ là loại khoá sai.

Câu hỏi

Tôi có thể thay đổi thiết kế chỉ cho một tin nhắn không?+

Không, và cố tình. thiết kế là bản tóm tắt và nó được chia sẻ, là thứ giữ cho mọi email có thể nhận ra được bạn.

Nói cách của tôi thì sao nếu tôi nhấn lại?+

Đặt lại hiện ra chỉ trên mẫu toàn cục, và nó thay thế những gì đang có trong trình soạn thảo bằng thiết kế xây dựng. Không có gì được viết cho đến khi bạn bấm nút Lưu, vì vậy bạn có thể đóng hộp thoại để thay đổi ý định.

Tôi đã xóa một trong những mẫu của tôi vì nhầm lẫn.+

Loại bỏ hai cú nhấp chuột vì lý do chính xác đó — cánh tay đầu tiên của nó và cho bạn biết điều gì sẽ ngừng hoạt động.

Một người nối có thể mang lại mẫu riêng không?+

Phải, một gói hàng vận chuyển một thư tín tlates.jsontrong thư mục riêng của nó, và các tin nhắn của nó xuất hiện dưới cùng một trình soạn thảo, xem thử, gói gọn và cổng kế hoạch. Các sửa đổi văn bản của bạn thuộc về vùng làm việc của bạn và tồn tại được cập nhật gói.

Thiết lập

Thiết lập: OpsIQ Ghi

Vé được trả lời bằng văn bản: trả lời tự động, hệ thống vé địa phương, tăng tốc, giờ kinh doanh, định tuyến và email khách hàng.

Tự động đáp ứng

Hiện OpsIQ Ghi các nút

Thêm nút trợ giúp viết cho tác vụ của bạn trong quảng cáo.

Bật/ tắt tự động khởi chạy

Hàng đợi vé mới, trả lời và trả lời sau khi trễ. Bắt đầu với nó và xem lại bản nháp trong một tuần. Các thay đổi từ chối, hủy bỏ và các thay đổi truy cập nên luôn đến với một người.

Các bộ phận tự động đáp ứng

Các bộ phận tự động có thể trả lời. bất cứ thứ gì không được liệt kê sẽ để lại cho một con người, đó là mặc định an toàn.

Trả lời lịch làm việc trễ (phút)

Một hồi âm tức thì đọc như một con robot; vài phút đọc nhanh.

Max Al trả lời mỗi vé một phòng

Một chiếc mũ chia phần, ví dụ như Billing 1 và hỗ trợ 3Nếu không có một cái nút, một sợi chỉ mơ hồ sẽ lặp lại.

Diện tích trả lời, trạng thái và danh tính

Bảng ghi tối đa, trạng thái vé sau khi trả lời và sau khi tăng cường, và cách quản lý các câu trả lời tự động được quy định. Hãy dùng một tài khoản tên rõ ràng để cho người dùng có thể nói với AI trả lời từ người.

Bộ quản lý vé bản địa

Hệ thống kiểm tra thẻ bản địa

Hệ thống vé được xây dựng vào OpsIQ cài đặt mà không cần trợ giúp bên ngoài.

Đường ống thư điện tử vào tới vé bản địa

Biến email đến thành vé. OpsIQ cung cấp điểm kết thúc URL Bất cứ thứ gì có thể đăng tới điểm cuối đó có thể tạo ra vé, nên hãy giữ bí mật về thẻ tín dụng.

Trả lời nhiều chiều và hoãn và giảm dần

Dù AI tiếp tục trả lời khi cuộc trò chuyện tiếp tục, và liệu nó có đợi một cửa sổ yên tĩnh để ba tin nhắn nhanh được xem là câu trả lời. Cửa sổ yên lặng là cài đặt riêng lẻ tốt nhất để trả lời tự động cảm thấy được cân nhắc.

Cổng hỗ trợ công cộng

Một trang khách hàng có thể nâng và theo dõi một vé, với một dòng khách chào mừng tùy chọn. Địa chỉ và ngoại hình của nó được cấu hình trên thanh Cổng Hỗ trợ.

Định dạng số bảng chọn

Bao nhiêu chữ cái ngẫu nhiên xuất hiện trong số vé được tạo ra.

Gửi thư điện tử cho khách hàng bằng ngôn ngữ của họ

Thư điện tử của nhân viên không bao giờ thay đổi ngôn ngữ: thông báo, cảnh báo bộ phận, buổi họp và báo cáo theo lịch vẫn giữ ngôn từ hệ thống.

Xác nhận và xác nhận

Một sự thừa nhận cố định trên vé mới, cộng với tin nhắn xác nhận khi mở vé, khi phản hồi được để lại và khi một vé đã đóng, mỗi ô xem thử trực tiếp. Cũng có một gói email toàn cục và liên kết phía sau nút đăng nhập.

Kiểm tra AI spam

Các màn hình vé từ người gửi lạ mặt, và có thể tự di chuyển theo cách khác bị tình nghi là thư rác.

Đóng xe

Đóng vé sau một số ngày yên tĩnh, nói với khách hàng bằng cách nào để mở lại.

Giờ làm ăn (giờ làm việc)SLA lịch)

Thời gian chờ, giờ mở và đóng cửa, ngày làm việc và ngày nghỉ cho những người hẹn giờ đầu tiên và giải quyết.

Tự động ký kết các vé mới

Nhiệm vụ tự động, theo cách chỉ các đặc vụ trực tuyến, với kỹ năng đặc vụ và sự nhạy cảm phù hợp với việc định tuyến dựa trên kĩ năng.

Đề nghị vé đôi

Điểm khi một khách hàng mở một vé gần với một họ đã có, với độ nhạy tương thích điều chỉnh.

Khảo sát hài lòng sau khi đóng cửa

Email một cuộc khảo sát một ngày sau khi đóng cửa, kết quả xuất hiện trên trang CSAT.

Thông báo cho sở bằng email

Email cho sở khi có vé mới. mà là vé địa chỉ đến.

Những gì AI có thể đọc

Truy cập dữ liệu khách của AI

Một công tắc chủ cộng với quyền riêng tư đọc tập tin tóm tắt hồ sơ khách hàng, hóa đơn, giao dịch, cân bằng tín dụng, sản phẩm và dịch vụ, miền, máy chủ liên kết và một tổng quát tài khoản cao. Bắt đầu với bản tóm tắt thông tin cá nhân và thêm phân loại khi cần trả lời.

# Gia tăng và hiểu biết #

Bật khả năng tăng tốc độ AI

Bạn sẽ đưa vé đến một bộ phận phù hợp hơn trước khi trả lời. và có thể viết những chỉ thị leo thang của riêng bạn.

Thiết lập hiểu biết

Liệu câu trả lời có sử dụng ngôn ngữ của khách hàng, cho dù họ vẽ trên liên kết thu thập và FAQs, cho phép AI đọc ảnh và PDF Sự gắn kết, chế độ trả lời tri thức, cho dù nhập JSON Kiến thức được dùng, và nếu liên kết nguồn có thể xuất hiện. Hãy dùng liên kết đã bò và FAQs nên được bật, hoặc bạn đang đoán AI.

Dừng tự động trả lời sau khi con người trả lời

Một khi nhân viên trả lời, AI sẽ ngừng trả lời vé đó.

Hướng dẫn về vé và email

Các hướng dẫn định dạng văn bản tự do cho mỗi câu trả lời, với một ví dụ có thể tải nặng.

Nhập JSON kiến thức

Tải lên hoặc dán a JSON Tập tin kiến thức cho thư ký viết.

Phòng thu Nút

Một thiết kế đầy đủ cho nút đối diện khách hàng: kiểu dáng hiển thị, kích thước, nhãn, biểu tượng, hình dạng, chiều rộng tối thiểu, kiểu cách nền với màu chính và phụ, góc gradient, biên giới, bán kính góc, bóng, chữ in, lấp đầy, hoạt hình nghỉ, chuyển động và màu sắc khi bay ngang, và vòng tập trung, cộng thêm một hộp CSS tùy chỉnh cho bất kỳ điều gì mà các điều khiển không bao gồm.

Thiết lập

Thiết lập: Hỗ trợ cổng

Trang web khách hàng nơi mọi người nâng vé và theo dõi và đọc các bài báo giúp đỡ của bạn. Thẻ tab này điều khiển cách nó được tiếp cận và cách khách hàng ký vào; thiết kế thị giác của nó được thực hiện trong Phòng Thu Cổng Hỗ trợ.

Phòng thu cảng hay cửa vé nhúng: tôi muốn cái nào?

Đây là hai sản phẩm khác nhau và mọi người trộn chúng với nhau liên tục. Họ giải quyết các vấn đề khác nhau, và điều hành cả hai là bình thường.

Hỗ trợ Phòng Thu Cổng: một nơi bạn gửi khách hàng đến

Phòng thu thiết kế một hoàn tất trang hỗ trợ đó OpsIQ Chủ nhà cho anhNó có địa chỉ web riêng, hay miền riêng của bạn, và nó mang lại toàn bộ kinh nghiệm tự dịch vụ: giúp bài viết bằng việc tìm kiếm, mẫu yêu cầu, lịch sử vé máy bay, ký tên khách hàng và trợ lý. Chọn mẫu, làm việc thông qua chủ đề, di chuyển, kiến thức, Footer, Brand, Tickts, Trợ lý và CSS, xem thử tại bàn làm việc, máy tính bảng và kích cỡ điện thoại, sau đó xuất bản.

Dùng nó khi Bạn muốn một điểm đến có nhãn hiệu bạn có thể chỉ cho mọi khách hàng, và bạn không muốn xây dựng hoặc duy trì một khu vực hỗ trợ bên trong trang web của riêng mình.

Thẻ kiểm tra nhúng: có vé bên trong trang Mạng của bạn

Cái giường đặt Chỉ có kinh nghiệm vé máy bay trên trang web của riêng bạn. khách hàng mở, theo dõi và trả lời các yêu cầu hỗ trợ mà không bao giờ rời khỏi trang, và đầu trang riêng của bạn, định hướng và thiết kế vẫn nguyên như vậy. Đặt bố trí, hình dáng và các quy tắc truy cập trong thiết bị xây dựng ô điều khiển, xem trước kết quả, rồi sao chép đoạn nhúng vào trang của bạn.

Dùng nó khi bạn đã có một trang web hoặc ứng dụng với thiết kế của riêng nó, và bạn muốn hỗ trợ để xảy ra bên trong nó hơn là đưa cho khách hàng đến một địa chỉ khác.

Phiên bản ngắn

Phòng thu xây Một nơi mà bạn gửi khách hàng đếnCái giường này sẽ mang vé đến nơi khách hàng của bạn đã đượcNhiều doanh nghiệp điều hành cả hai, gắn kết các ô điều khiển vé trong khu vực tài khoản của họ cho yêu cầu nội bộ trong khi giữ cổng đã máy là đích đến đầy đủ với các bài viết và tìm kiếm.

Địa chỉ và quyền truy cập

Chế độ truy cập

Dù cánh cổng có mở cho bất cứ ai hay giới hạn cho khách hàng đã ký tên.

Tùy chọn bố trí

Cho dù cánh cổng và giúp trung tâm chia sẻ một anh hùng hoặc sử dụng hai, mà định vị và chân vịt xuất hiện trên cả hai bề mặt, và nhãn hiệu của các khu vực định vị.

Địa chỉ cổng

Các khách hàng sử dụng địa chỉ, chọn một cái tên và OpsIQ hiển thị cổng kết quả và địa chỉ trợ giúp tương ứng trung tâm thay đổi nó sau này ngắt liên kết bạn đã gửi.

Miền riêng của bạn

Phục vụ cánh cổng từ một vùng đất mà bạn sở hữu, như hỗ trợ. Bạn sẽ ở lại. com.

Cổng đã nhúng

Chuyển đổi trên ô điều khiển thả xuống mô tả ở trên, và mở thiết kế nhúng nơi bạn chọn bố trí, hình dạng và các quy tắc truy cập, xem trước kết quả và sao chép đoạn trích cho trang của bạn. Đây không phải là phòng thu Portal: phòng thu thiết kế cổng đã đặt, nó đặt vé vào trang cá nhân của bạn, cả hai có thể được bật ngay lập tức.

Làm thế nào khách hàng đăng ký vào

Đây là các lựa chọn khách hàng đăng ký.

Phương pháp nhập khẩu

Các tùy chọn xuất hiện trên trang ký. Kết nối và gửi email tự động.

Ký kết giao thông

Nhà cung cấp tài khoản tiêu dùng, mỗi người cần một ID khách hàng và bí mật, với địa chỉ chuyển hướng cung cấp bởi OpsIQ đăng ký với nhà cung cấp đó.

Ký đơn (OIDC)

Trình khách ký vào thông qua một nhà cung cấp danh tính, với bộ phát hành URL danh sách miền thư điện tử cho phép.

Tuỳ biến SAML 2.0

Hạt SAML tương đương. OpsIQ cung cấp trả lời ACS URLvà ID thực thể SP; bạn cung cấp ID thực tế IP, đăng nhập và ra dấu URLs X.509 Chứng nhận và tên thuộc tính tùy chọn. Quay SAML nếu không sẽ không xuất hiện.

Tín hiệu không có chỗ ghi trong ứng dụng của bạn

Một liên kết đã được ký nên một khách hàng đã ký tên vào vùng đất của anh trong cánh cổng mà không cần đăng ký lại. OpsIQ Cung cấp cho chúng tôi những bí mật, cánh cổng URL và chìa khóa vùng làm việc, một con đường đầy đủ cho ngôn ngữ của bạn (PHP, Laravel, WordPress, WHMCS, Node.js, Flask, Django, .NET, Rails, Java, Go, và trên tự cài đặt các OpsIQ Máy phục vụ mình), ghi chú thiết lập từng bước, và một máy phát điện cho liên kết thử đã ký. Dùng máy phát trước khi viết bất kỳ mã lệnh nào.

Đường đi thế nào?

Khách hàng của bạn nhắp vào một liên kết hỗ trợ chỉ vào đường đi. Đường dẫn này tìm thấy khách hàng đã ký tên vào ứng dụng của bạn (một khách mời được gửi đến máy đăng nhập và trở lại), đọc bí mật từ máy phục vụ của bạn, ký hiệu một lần bị bỏ qua trong hai phút, và chuyển tiếp đến cổng với đầu không có người chủ và không có đầu đề nên biểu tượng không được lưu trữ hay rò rỉ.

Cánh cổng của chính mình đã cài nút

Trong phòng thu Portal, trang đăng nhập, bật sử dụng truy cập của trang web của tôi và đặt trang đăng xuất của bạn URL cùng một lối đi opsiq_portal_return ( Trang web của khách hàng đã được bật); tuyến đường chỉ được tôn trọng khi nó ở trong địa chỉ cánh cổng của bạn và mang khách hàng trở lại đó, ký tên.

WHMCS

Không có gì cần viết: WHMCS Móc câu từ chỗ ở xa đã ký tên khách hàng vào cổng và xử lý địa chỉ trở về. Đặt trang đăng nhập của bạn URL của bạn WHMCS Đăng nhập khu vực khách.

Ký tên khắp nơi

Ký tên ra khỏi cổng cũng ký tên khách hàng từ đơn xin việc của anh.

Nhận lấy và bảo vệ

Yêu cầu thực đơn

Các lĩnh vực có tổ chức các yêu cầu thu thập. vì vậy chỉ hỏi những gì bạn cần để ba cấp độ.

Sự lãng mạn và sự bảo vệ lạm dụng

Một honeypot và giới hạn tốc độ luôn bảo vệ mẫu công cộng. Trên đỉnh bạn có thể chặn địa chỉ thư điện tử không dùng được, thêm tên miền bị chặn của riêng mình, và thêm một CAPTCHA bằng cách sử dụng Google reCAPTCHA hoặc Cloudflare Turnstile. reCAPCHA tái sử dụng các chìa khóa đã được đặt trong Thiết lập, An ninh; Các chìa khoá Turnstiles được nhập ở đây.

Phân tích cổng

Một bản tóm tắt chỉ đọc về hoạt động cánh cổng trong 30 ngày qua.

Thiết lập

Thiết lập: Quyền hạn, Giấy Phép, Khu vực Cron và Nguy hiểm

Nhóm Hệ thống, cộng với điều khiển truy cập của đội để quyết định ai có thể xem thanh công cụ nào.

Truy cập và quyền hạn của nhóm

Quyền người lớn

Mỗi quảng cáo có một tập hợp quyền rõ ràng bao gồm truy cập chat inbox, mà họ có thể chỉnh sửa các phần Thiết lập, và bộ phận của họ. Bất cứ ai có chức năng quản trị đầy đủ luôn luôn có mọi quyền hạn. Thiết lập quyền quyết định trang nào người xem, vì vậy hãy cấp cho người thu hẹp nhất để họ làm việc.

Giấy phép

Cho thấy bằng lái hiện tại, cho bạn biết nó có quyền gì và địa vị của nó.

Thiết lập Cron

Tự cài đặt chỉ trên OpsIQ mây các tác vụ lịch chạy cho bạn và thẻ tab bị ẩn. Một dòng của crontab điều khiển mỗi nhiệm vụ: tính năng tăng tốc tự động, độ leo thang, phần cập nhật mức độ trao đổi, cuộc thăm dò hộp thư và đồng bộ kết nối.

1
Chép dòng

Thẻ tab hiển thị dòng crontab chính xác cho máy phục vụ của bạn với chương trình nhị phân PHP đúng đã chọn.

2
Thêm nó vào bảng điều khiển

Chạy crontab -e là người dùng chạy PHP và dán một dòng. cPanel Thay vào đó, hãy dùng công cụ Cron Jobs.

3
Kiểm tra

Trong vòng một phút, các mảnh tim sáng lên.

Bảng nhịp tim hiển thị lần chạy cuối cùng, khoảng thời gian và những gì đã được xử lý cho cả hàng đợi tự động và thư điện tử và thăm dò kết nối. Nó cảnh báo khi lần chạy gần nhất đến từ nút Mạng hướng dẫn thay vì một máy phục vụ thực, và khi nhịp tim bị tắt.

Vùng nguy hiểm

Xoá mọi dữ liệu đang theo dõi

Xóa sạch mọi thứ. OpsIQ thu thập hoặc tạo ra. Bạn chọn những gì cần bao gồm và gõ đoạn văn xác nhận chính xác. Thiết lập và cấu hình nơi Mạng, địa chỉ bị chặn, mọi thứ mà nhóm của bạn đã viết (cơ sở thông tin cơ sở, FAQs, bản dịch, thiết kế cổng, định nghĩa hành động) và biên nhận chấp thuận được bảo tồn.

Làm sạch dữ liệu cũ hơn

Cùng quét giới hạn trong hồ sơ cũ hơn 30, 60, 90 hay 180 Để tự động quay lại sử dụng các giá trị ghi nhớ chung và theo dõi thay vào đó và để cho công việc được thực hiện.

🚫
Xuất bản một bản sao lưu từ Thiết lập, Tổng quan trước khi sử dụng bất cứ thứ gì trong Khu vực nguy hiểm. Những hành động này không thể bị hủy bỏ.
Thiết lập

Quản lý đội của bạn

Mời các thành viên trong đội và chỉ định vai trò kiểm soát những ai có thể truy cập.

Đội
Đội & bộ phậnMàn hình đội: một bảng điều hành với các liên lạc, huy hiệu (Owner, full Admin, Agent) và các bộ phận có thể truy cập.Đội & bộ phậnMiền làm việcĐội & bộ phận+ Lưu người dùng quản trịCÔNG VIỆCVai tròNHỮNG CÂU CHUYỆNAO[email protected]Ada OwusuSở hữuTất cảKM[email protected]Kojo MensahQuản trị đầy đủTất cảRT[email protected]NameĐặc vụThanh toánSB[email protected]Đặc vụHỗ trợ1TEAMMời quản lý các quảng cáo2ROLESSở hữu · Quản trị toàn diện 0 Đặc vụ3SCOPEDTruy cập theo phân phối
Màn hình đội thực sự: mỗi quảng cáo với liên lạc, vai trò và các ban mà họ có thể tiếp cận, các đặc vụ bị giám sát, chủ sở hữu đầy đủ.

Vai trò

Sở hữu

Bao gồm cả giấy phép, hóa đơn và khu vực nguy hiểm.

Quản trị đầy đủ

Toàn quyền truy cập ngoại trừ bằng lái và khu vực nguy hiểm.

Đặc vụ

Chỉ có các bộ phận được chỉ định, vé, tán gẫu và phân tích.

Những thành viên trong đội

1
Vào nhóm

Chuyển sang đội ở bên thanh chắn.

2
Nhấn vào

Nhập email của thành viên nhóm.

3
Đặt vai trò

Chọn chủ, quản trị toàn diện, hoặc đặc vụ.

4
Gán các bộ phận

Với đặc vụ, hãy chọn những bộ phận có thể tiếp cận.

5
Gởi giấy mời

Họ nhận được một email với một liên kết thiết lập.

Thiết lập

Đội ngũ hiệu suất

Cách mà đội hỗ trợ của bạn đang thực hiện. Truy cập là bởi sự cho phép, không phải bằng vai trò: quyền xem mở trang, quyền quản lý khóa mục tiêu, QA và sự đồng nghiệp đọc, và sự cho vay có phần thưởng là những gì thêm phần thưởng. Một nhóm có thể được cung cấp bất kỳ mục tiêu nào mà không trở thành nhà quản trị đầy đủ.

Đội ngũ hiệu suất
Đội ngũ hiệu suấtMàn hình đồng đội: các tác nhân xếp hạng bởi một thanh số hợp số, CSAT và một phần thưởng cân bằng với một nút thanh toán trên mỗi hàng.Đội ngũ hiệu suấtMiền làm việcĐội ngũ hiệu suấtSỐ NGƯỜI CÔNG BỐĐiểmCSATSA - LA - MARTName4.8$42Trả tiềnSBSam boateng4.5$28Trả tiềnKMKojo Mensah4.2$15Trả tiềnAOAda Owusu4.9$51Trả tiền1SCOREDHiệu suất hợp nhất2CSAT & LOADĐánh giá + âm lượng3REWARDSCông bằng cho đặc vụ lương
Màn hình thực sự của đội: mỗi đặc vụ ghi điểm trên âm lượng và CSAT, với một số tiền thưởng bạn có thể trả cho mỗi hàng.

Trang web được sắp xếp như thế nào?

Mỗi câu trả lời khác nhau, và họ được lệnh bằng cách khẩn cấp như thế nào.

01 Trung tâm lệnh

Tình trạng hàng đợi trực tiếp, kết quả khách hàng chống lại mục tiêu của bạn, khả năng được sử dụng, tình huống cần một quyết định, và chỉ số kiểm tra bằng chứng trên một-tọa độ.

02 Đồng đội

Bảng dẫn đầu, sự công nhận (phần lớn cải thiện và vệt), nhiệm vụ, và sự kiểm soát tối ưu cho những ai có thể thấy được xếp hạng.

03 Chất lượng

Thẻ ghi điểm, đánh giá được ghi nhận, thỏa thuận sửa chữa ngẫu nhiên, thông báo sự trôi dạt và tranh chấp bằng chứng.

04 Phần thưởng

Giá trị bị đánh dấu, các yêu cầu trả tiền và sự phân bổ thời gian quy định: cho phép một trần tài trợ, xem xét lại hình ảnh, kết thúc.

05 Lịch sử

Cách mà không gian làm việc di chuyển theo thời gian: các thước đo xu hướng với một biểu đồ, và a 28 Mỗi lá bài ẩn mình cho đến khi có đủ lịch sử để vẽ nó.

Không nhận ra không phải là zero

Một người cùng đội với mình không đủ số lượng, hoặc có kích thước mang bằng chứng thêm ít hơn phân nửa trọng lượng đã được cấu hình — được hiển thị như chưa từng bị thu hút. Điểm số, cấp bậc và băng nhóm trống rỗng và hỏng hóc của họ bị ẩn. Điều này có chủ ý: tính toán thiếu cân bằng như số không đặt một người ở dưới cùng một địa điểm để có một tuần yên tĩnh. Các ngưỡng làm việc trên mỗi không gian trong các mục tiêu và chụp ảnh.

Hai ngưỡng bằng chứng làm công việc khác nhau và nó đáng để giữ chúng tách biệt. xử lý tối thiểu quyết định xem ai được ghi điểm ở tất cả. xếp hạng tối thiểu không ảnh hưởng đến điểm số: nó quyết định giải thưởng và sự cao nhất. vì vậy một đồng đội có thể được ghi đầy đủ và xếp hạng và vẫn không thể phản đối trong khoảng thời gian đó, bởi vì quá ít khách hàng đánh giá chúng.

💡
Mỗi hình được đo theo khoảng không gian làm việc bạn đang xem và khoảng thời gian bạn chọn. một đồng nghiệp làm việc trong hai không gian riêng biệt có một hồ sơ độc lập ở mỗi. hai ngoại lệ đáng được biết: một trang web là một không gian lao động, do đó, các miền thành phần của nó được đo lường với nhau; và tất cả các quan điểm đều cố ý đo mọi thứ cùng một lúc.

Chỉ mục hiệu suất

Một tổng hợp của năm chiều, mỗi đo chống lại một mục tiêu bạn đặt thay vì đối với đồng nghiệp, sau đó kéo về giữa khi các bằng chứng đằng sau nó là mỏng. lưu ý hướng: sự điều chỉnh di chuyển con số về phía trước.70 Vì vậy, một điểm số mỏng được kéo xuống và một điểm ít người nghèo đã được rút ra tuần đầu tiên trong bốn cuộc hội thoại cũng không phải là một quyết định xác định rõ ràng.

Chất lượng

Tùy chỉnh từ phản hồi đã kiểm tra. Phụ thuộc vào kết quả QA ghi điểm nơi có và được quản lý.

Đáp ứng

Lần đầu tiên phản ứng với P50 và P90 %, chống lại mục tiêu của các bạn.

Độ phân giải

Thời gian phân giải và độ phân giải một chạm.

SLA

Chiến thắng chống lại SLA Ông đã cấu hình, cộng với nguy cơ và phạm tội.

Quản lý

Tỷ lệ tái mở và chuyển nhượng — công việc trở lại.

💡
Trọng lượng là có thể cấu hình và tương đối; chúng không cần phải tổng hợp 100. thiếu bằng chứng chỉ có thể làm giảm, không bao giờ tăng nó lên — trọng lượng được cấu hình đầy đủ ở mẫu số.

Thời gian rảnh và năng suất

Sự khai thác, thời gian năng suất, giải quyết hiệu quả trong một giờ và chia sẻ trực tuyến của cửa sổ.OpsIQ không có danh sách hoặc nguồn dịch chuyển, và một mẫu số thay thế sẽ là một dự đoán mang dấu phần trăm.

⚠️
Báo cáo chỉ có. không bao giờ bằng 0.

Bảo đảm chất lượng

Thẻ ghi điểm là những người xem lại bản thảo có ghi số cuộc đối thoại thật. chỉ một phiên bản được xuất bản mới có thể nhận được đánh giá, và xuất bản một phiên dịch mới chưa bao giờ viết lại những gì đã ghi.

Hợp đồng duyệt lại

Báo cáo như một số liệu thống kê đã được sửa chữa ngẫu nhiên (Cohen's và Fleiss' kppa), không phải là một tỷ lệ phần trăm thô.100% trong khi không mang theo thông tin gì.

kẻ ôn lại

Dù một người xem xét có hệ thống hơn hoặc mềm mại hơn đồng nghiệp trong cùng một cuộc trò chuyện — so sánh với những người khác, chứ không phải là xu hướng theo thời gian; họ cần ôn lại cách độc lập nhiều lần.

Tai tiếng

Một đồng đội có thể chính thức tranh cãi bằng chứng về họ.

Tự xem

Một đồng đội không thể tự đánh giá bản thân.

⚠️
Đánh giá lớp AI không thể ảnh hưởng đến việc trả tiền cho đến khi một dự đoán được xuất bản chỉ ra rằng mô hình này đồng ý với các nhà phê bình của con người đủ gần, đo bằng kappa chống lại mẫu nhỏ nhất.

Nhận biết

Chỉ riêng việc chạy trốn đã ghi lại chế độ thất bại: chơi trò chơi điện tử, kiệt sức và làm rối tung mọi người trước đây.

Tốt nhất là

So sánh với thành tích ban đầu của đồng đội, không bao giờ chống lại đồng nghiệp, với co rút để một mẫu nhỏ bé không thể mua được chiến thắng.

Hiệu ứng Quét Trang trình diễn

Những lần bị cắt giảm gặp gỡ một thanh cố định, được tuyên bố — đánh giá trung bình, xử lý âm lượng, tỉ lệ đánh giá và tỷ lệ có hạn, tất cả những con số tuyệt đối.

Loại

Một đồng đội luôn thấy chỉ số của mình, cho dù họ có thấy đồng nghiệp là một quyết định không gian làm việc.

💡
Nhận biết không bao giờ đụng đến tiền. và cải thiện nhất không phải là một giải thưởng.

Tìm kiếm

Một mục tiêu mà đội làm việc hướng đến, đo lường đối với một thanh đã được tuyên bố là cố định thay vì đối đầu với nhau — để mọi người có thể xóa bỏ cùng một cuộc tìm kiếm trong cùng một thời gian.

Phạm vi và độ sáng

Từng cá nhân hay một nhóm; một lần, lặp lại được, hoặc theo mùa với một cửa sổ rõ ràng.

Tiêu chuẩn

Tất cả đều được giải quyết, đánh giá, ngày hoạt động, tỉ lệ trung bình hoặc mức phản hồi tiêu cực.

Bảo vệ chất lượng

Cần thiết trong bất kỳ cuộc điều tra với một mục tiêu khối lượng. Nhấn số này khi chất lượng nằm dưới sàn sẽ giữ cho việc tìm kiếm không được hoàn thành, và nó được hiển thị như bị tạm dừng, chứ không phải chưa hoàn thành.

Giới hạn lặp lại

Một cái nắp trên một nhịp, được điều khiển bởi tiêu chuẩn chậm nhất, cộng với một sự nguội đi tùy chọn trước khi một lập lại có thể đếm.

Nhiệm vụ của đội

Chia sẻ tiến bộ mà không có lời cáo buộc nào được công bố, để một nhiệm vụ của đội không thể trở thành người dẫn đầu.

Huấn luyện các phiên chạy

Một phiên họp huấn luyện là một bản thu âm chứ không phải một cuộc trò chuyện. và tóm tắt sau đó.

Nói chuyện quan trọng

Đồng ý trước buổi họp, vì thế đồng đội không ngạc nhiên.

Bằng chứng bị khóa chặt

Máy trò chuyện, vé phạt và bảng đánh giá QA gắn liền với phiên họp, một bộ khung có tài liệu tham khảo — loại và mã nhận diện — chứ không phải bản sao, vì thế nó luôn chỉ vào đĩa trực tiếp.OpsIQ không xác nhận chứng minh trước khi chấp nhận.

Mục hành động

Mỗi người có một chủ sở hữu và một ngày tháng, một món đồ đã quá hạn — một trạng thái có nguồn gốc, chứ không phải là một địa vị mà ai đó cần nhớ để ấn định.

Ghi chú riêng

Người được huấn luyện không bao giờ có thể đọc nó, không phải là một đại lý, không làm quản lý, mà là người chủ.

Ai mà thấy được một phiên làm việc chứ?

Huấn luyện viên, đồng đội và bất cứ ai có quyền quản lý thành tích của đội, không ai khác, kể cả những đồng đội trong cùng một ban.

Kiểm toán

Mỗi sự sáng tạo, cập nhật, pin, unpin và hoàn thiện được ghi lại với những gì đã thay đổi, bởi ai.

💡
Dạy dỗ là cố tình tách biệt với đánh đập và tiền bạc. và không xuất hiện trên bảng lãnh đạo.

Phần thưởng và giải thưởng

Hoạt động ghi âm chuyển thành vật biểu hiệu với giá trị tiền mặt, và con đường dẫn đến một khoản thanh toán được cố ý chậm và mỗi bước đều được ghi lại.

1
Đặt giá trị hiệu suất

Bao nhiêu vật kỷ niệm bằng số tiền, và mỗi hoạt động đáng giá bao nhiêu.

2
Cho phép trần nhà được tài trợ

Đối với một thời gian đóng, người quản trị có thể ghi rõ những điều kiện tối đa. Bảo tồn các hình thức cài đặt không cho phép ngân sách, và nó không thể thay đổi trần nhà đã được ủy quyền.

3
Xem lại hình trước

Những người nhận, bảo tồn và lý do mà bất cứ ai cũng không thể chấp nhận được bằng chứng công khai ngăn chặn bước này.

4
Cuối cùng

Việc định vị được ghi lại vĩnh viễn với bằng chứng đằng sau nó. Một khoảng thời gian phân phát không thể bỏ chạy và chạy lại hoàn toàn. Một trong những điều đã đưa ra dấu hiệu phải được đảo ngược lại trước tiên:OpsIQ Viết một mục để bù đắp cho mỗi ví và không bao giờ xóa đi bản gốc, vì vậy cuốn sổ vẫn chỉ ra những gì đã xảy ra và tại sao, và chỉ sau đó là giải phóng giai đoạn. đảo ngược từ chối nếu ai đó đã rút ra nhiều hơn số tiền được thu hồi, và tên của ai và bằng bao nhiêu.

⚠️
Khả năng từ chối yêu cầu thông tin phản hồi được kiểm tra của khách hàng. Điểm chất lượng AI có thể bổ sung để phán quyết nhưng không bao giờ thay thế nó, và một đồng đội được hiển thị là không thích hợp. Mỗi người đóng góp bị dồn vào lề tại các điểm khác nhau.25% trên cả mong đợi chia sẻ của họ trong khoảng thời gian đó, vì vậy một tháng rất lớn không thể hấp thụ toàn bộ ngân sách.
💡
Người chủ tài khoản không hề tham gia vào giải thưởng hay phần thưởng mang tính tượng trưng, mà không có công tắc: họ cho phép trần nhà tài trợ và hoàn thành mọi việc định vị, và không ai trên đó chấp nhận những gì họ sẽ tự trả. công việc của họ được đo lường, ghi điểm và xếp hạng trên bảng như bất cứ ai khác.

Tất cả mọi người tham gia theo mặc định, nhóm dẫn đầu và đồng sở hữu. để bỏ ai đó ra ngoài, mở họ ra trong Đội & Bộ và tắt phần thưởng và phần thưởng. công việc của họ vẫn được ghi điểm và chỉ ra; họ ngừng trở thành ứng cử viên từ thời điểm đó trở đi, và không có gì đã kết thúc được chạm vào.

⚠️
Chẳng ai ưng thuận cho mình tiền bạc; vì những kẻ góp phần cũng là người ưng trả tiền.OpsIQ Từ chối trả hoặc tín dụng vào ví của bạn, trả tiền cho quyền sở hữu của riêng bạn, hoàn thành một khoảng thời gian mà bạn sẽ được trả, và hoàn thành giải thưởng bạn sẽ giành được.

Ai có thể thấy và làm gì?

Xem hiệu suất đội bóng

Bảng, trạng thái sống, khả năng và chất lượng tổng quan cho không gian làm việc.

Quản lý hiệu suất của đội

Mục tiêu và đánh dấu, xuất khẩu, điểm số QA và đánh giá, huấn luyện, nhiệm vụ, và những thứ ghi chép mang theo dữ liệu nhận dạng đồng nghiệp như lịch sử của một cựu chiến binh và lịch sử giải thưởng.

Xem đội thưởng tài chính

Sự cân bằng, giá trị tiền mặt, ghi chú và các tài liệu tham khảo về thanh toán — tách biệt với bằng chứng hiệu quả vì nó là một sự tăng lương.

Chỉ quản trị đầy đủ

Mỗi đột biến tiền bạc: trả một phần thưởng, trả hoặc từ chối một tuyên bố, cho phép ngân sách, hoàn tất, hủy bỏ hoặc đảo ngược định vị, và thiết lập tỷ lệ tín hiệu để giảm giá.

Dùng công bằng

Chỉ số hiệu suất là bằng chứng quản lý, chứ không phải quyết định việc làm tự động. Mở các cuộc trò chuyện nguồn sau một số trước khi hành động, cân nhắc sự phức tạp, thời gian biểu, để lại và các nhu cầu tiếp cận.

Thiết lập

Nơi Mạng (không gian làm việc)

Nơi Mạng (không gian làm việc) cho phép bạn quản lý nhiều trang web từ một OpsIQ Mỗi người đều có một thiết bị theo dõi riêng, AI, kết nối và truy cập đội.

Nơi Mạng
Nơi Mạng của bạnMàn hình nơi Mạng: danh sách các vùng làm việc, mỗi miền, kiểu, kết nối, thẻ trạng thái và một nút mở, cộng với dấu phụ mới.Nơi Mạng của bạnMiền làm việcNơi Mạng của bạn+ Thêm nơi Mạng mớiSshop.acme.comeCommerce_ 2 Shopify kết nốiHoạt độngMởHhost.acme.comMáy · WHMCS kết nốiHoạt độngMởBblog.acme.comNội dung 2 không có kết nốiThiết lậpMở1MULTI-SITEMột vùng làm việc trên mỗi trang web2ISOLATEDDữ liệu không bao giờ trộn3PER-SITEThiết lập
Màn hình Nơi Mạng: Mỗi nơi làm việc riêng lẻ (chủ sở hữu, kết nối và thiết lập), được thêm vào và mở từ một danh sách.

Đang tạo một trang web

1
Tới chỗ đã kết nối

Chuyển sang kết nối với các vị trí.

2
Thêm một nơi Mạng mới

Nhập tên, miền và mô tả.

3
Chép các khóa nơi Mạng

Mỗi nơi Mạng nhận một phím đặc biệt (ite_xxx) cho phần cắt phụ tùng.

4
Cấu hình độc lập

Mỗi trang web có hệ thống AI riêng, kết nối và thiết lập.

Tôi có thể có bao nhiêu trang web?+

Tùy vào kế hoạch bằng lái, kiểm tra chi tiết giấy phép.

Thiết lập

Bằng lái và kế hoạch

Của bạn OpsIQ Bằng lái điều khiển các tính năng, giới hạn trang web, và sự cân bằng tín dụng của AI.

Giấy phép
Trung tâm giấy phépHạt OpsIQ Trung tâm bằng lái: kế hoạch, phù hiệu trạng thái hoạt động, chìa khóa mặt nạ, đồng hồ đo độ tuổi AI và nút kiểm tra sức ép.Trung tâm giấy phépMiền làm việcOpsIQ Trung tâm giấy phépPlanNameDoanh nghiệpTrạng tháiHoạt độngKhóa:OPSIQ-••••-••••-2F9CTín dụng AI$68 tráiBuộc kiểm tra từ xa1PLAN & STATUStích cực, trong nháy mắt2KEYHMAC- Đã đóng gói tại địa phương3CREDITSGiới hạn cân bằng & AI
Trung tâm bằng lái thực sự: kế hoạch và tình trạng hoạt động của bạn, chìa khóa đeo mặt nạ, cân bằng trí tuệ nhân tạo của bạn và một lực lượng tái lập.
Khóa giấy phép

Nhập vào thiết lập > Bằng lái. Đã kiểm tra ngược lại OpsIQ Máy chủ bằng lái.

Giấy phép

OpsIQ Thông thường đọc bộ nhớ tạm có chữ ký và làm lại hợp lệ khi cần thiết. Hãy dùng kiểm tra từ xa khi cần kết quả ngay; chẩn đoán xác định kết quả DNS vấn đề thời gian máy chủ.

PlanName

Xác định tính khả dụng và giới hạn.

Giới hạn nơi Mạng

Số tối đa không gian làm việc.

Tín dụng AI

Nếu sử dụng AI Quản lý, thì ở đây cho thấy số tiền tín dụng của bạn.

Hạn sử dụng

Mới được tái thiết trước khi thôi việc để tránh bị gián đoạn dịch vụ.

Chuyện gì xảy ra khi giấy phép của tôi hết hạn?+

Theo dõi, vé và CRM Tiếp tục. Tính năng AI dừng lại cho đến khi thay đổi.

Thiết lập

Hồ sơ, mật khẩu và xác thực hai mặt

Mỗi nhà quản trị có thể duy trì danh tính của mình, sở thích làm việc, mật khẩu và xác thực hai mặt.

Màn hình sản xuất
Hồ sơ của tôiTrang hồ sơ riêng biệt, ngôn ngữ/ múi giờ, Avatar/ HTMLre, mật khẩu và xác thực hai mặt.Hồ sơ của tôiMiền làm việcLsalarHoàn tấtTIMEZONEChâu Âu/ Athens2FABậtQUAN ĐIỂM CÔNG VIỆC SỐNGTên và emailNhận diện cá nhânSửaThời gian và ngôn ngữNgày và giao diệnSửaAvatar và chữ kýPhản đối và hiện diện trong độiSửaMật khẩu và 2FABảo vệ tài khoảnBảo mật1UPDATE PROFILETên người dùng và địa phương2SECURE LOGINMật khẩu và 2FA3SAVEÁp dụng cho quảng cáo này
Trang hồ sơ riêng biệt, ngôn ngữ/ múi giờ, Avatar/ HTMLre, mật khẩu và xác thực hai mặt.

Thiết lập hồ sơ thuộc về nhà quản trị đã ký và không thay đổi thương hiệu vùng làm việc. Dùng một mật khẩu duy nhất có hai mặt, và bật khả năng xác thực hai mặt. Thay đổi thư điện tử hay thiết lập xác thực có thể cần thiết sửa đổi lại hay nhập lại dấu.

Thiết lập

Thông báo

Điều khiển sự kiện hoạt động nào được gửi đến nhà quản trị trong sản phẩm hoặc qua email.

Màn hình sản xuất
Thông báoTrang thông báo cung cấp các tin nhắn trong mỗi gõ và email, cùng với một danh sách thông báo gần đây.Thông báoMiền làm việcIN-APPVàoNhóm Việt hoá KDEEMAIL OF TRANSLATORSChọnUNREAD4QUAN ĐIỂM CÔNG VIỆC SỐNGVé đã gánVào-p và emailVàoKhách hàng trả lờiTrong ứng dụngVào* SLA mạo hiểm *Vào-p và emailVàoAl chấp thuậnVào-p và emailVào1CHOOSE EVENTSChỉ có những tín hiệu hữu ích2CHOOSE CHANNELTrong gõ vào hay email3Ô - HÌNHThông báo gần đây
Trang thông báo cung cấp các tin nhắn trong mỗi gõ và email, cùng với một danh sách thông báo gần đây.

Tùy thích bao gồm các bài đăng nhập, trả lời cho khách hàng, SLA cảnh báo, bàn giao dịch và các sự kiện AI chấp nhận. Giữ tín hiệu hoạt động khẩn cấp được bật ở đâu đó; tắt email không nhất thiết phải tắt thông báo in-app.

Thiết lập

Xem xét bảo mật

Giám sát an ninh là màn hình đầu tiên để đánh giá các khối, các cuộc tấn công đăng nhập, các phiên xử đe dọa, xu hướng an ninh và toàn vẹn sự kiện.

Màn hình sản xuất
Xem xét bảo mậtXem qua an ninh kết hợp các thẻ rủi ro hiện tại, 14- xu hướng ngày, danh sách kẻ tấn công, nguồn dữ liệu và tình trạng toàn vẹn.Xem xét bảo mậtMiền làm việcACTIVE BLOCKS18FAILED LOGINS42HIGH THREAT3QUAN ĐIỂM CÔNG VIỆC SỐNGTự động chặn7- Toàn bộ ngày và nguồnRộngNhững kẻ tấn công gần nhấtIP đất nước và lý doôn lạiSự kiện bảo mậtNguy hiểm và hành động kết quảNạpLòng trung kiên của Đức Chúa TrờiChuỗi sự kiện TapperHợp lệ1READ HEADLINEHiện tại phơi nắng2OPEN EVIDENCEKẻ tấn công và các sự kiện3ĐiềuBlock, điều tra, xuất
Xem qua an ninh kết hợp các thẻ rủi ro hiện tại, 14- xu hướng ngày, danh sách kẻ tấn công, nguồn dữ liệu và tình trạng toàn vẹn.

Dùng bài đầu cho bài ba, sau đó mở các cuộc thử giọng liên quan, đăng nhập thất bại, bị chặn IPs hay JavaScript Lỗi trang cho trình độ ghi. 14 Các phiên họp lớn nên được điều tra chống lại khách truy cập, yêu cầu và chứng cứ xác thực trước khi áp dụng một khối cố định.

Thiết lập

Bản ghi kiểm tra Tapper-Eident

Bản ghi kiểm toán những người đã làm những gì, khi nào, đối tượng nào, ở mức độ rủi ro và liệu nó có thành công hay không.

Màn hình sản xuất
Kiểm tra hoạt độngTrang kiểm tra cung cấp các hoạt động tìm kiếm có thể xác định được bằng hành động, diễn viên, rủi ro, mục tiêu và kết quả.Kiểm tra hoạt độngMiền làm việcBÀI HỌC18.2kHIGH RISK21INTEGRITYHợp lệQUAN ĐIỂM CÔNG VIỆC SỐNGBật bổ sung[email protected] · ShopifyThành côngAPI Comment[email protected] · Phím 19Thành côngThiết lập đã thay đổi[email protected] · AlIThành côngKhông đủ quyền truy cập[email protected] · XuấtBị chặn1FILTERHành động, rủi ro và diễn viên2NHỮNG NHỮA ĐÁP LỄMục tiêu và kết quả3EXPORTCSV hay JSON
Trang kiểm tra cung cấp các hoạt động tìm kiếm có thể xác định được bằng hành động, diễn viên, rủi ro, mục tiêu và kết quả.

Lọc theo hành động, rủi ro và diễn viên; xuất khẩu CSV hay JSON Để điều tra. Dây hash giúp phát hiện các hàng kiểm tra bị mất hay thay đổi, nhưng nó không thay thế các bản sao lưu và truy cập cơ sở dữ liệu bị hạn chế. Điều trị xuất khẩu rất nhạy cảm vì chúng có thể nhận dạng người dùng, hồ sơ và hành động bảo mật.

Thao tác

Chẩn đoán

Chẩn đoán biến việc kiểm tra hệ thống phụ thành kết quả sức khỏe bình thường và tiếp theo là hành động.

Màn hình sản xuất
Chẩn đoánChẩn đoán nhóm kiểm tra sức khỏe cho các thiết bị điều khiển, AI, vé, sự tích hợp, tình báo vị trí, nhiệm vụ nền,CRM Tự động hóa, cấp phép và lưu trữ.Chẩn đoánMiền làm việcHÌNH 313WARNING2LÀM THẾ NÀO?1QUAN ĐIỂM CÔNG VIỆC SỐNGNơi MạngĐiểm kết thúc của tín hiệu và trò chuyệnKhỏe mạnhNềnNhịp tim Cron chậmCảnh báoThư điện tửThử ra thất bạiThất bạiTrình kết nốiĐăng ký và nhập sự kiệnKhỏe mạnh1REFRESHChạy kiểm tra hiện thời2OPEN WARNINGĐọc bằng chứng3FIX AND RETESTXác nhận phục hồi
Chẩn đoán nhóm kiểm tra sức khỏe cho các thiết bị điều khiển, AI, vé, sự tích hợp, tình báo vị trí, nhiệm vụ nền,CRM Tự động hóa, cấp phép và lưu trữ.

Kiểm tra trang Site Speed, xếp hạng/keylink/local dữ liệu, AI và hành động cổng ra vào, vé thu thập/auder/aust, tích hợp/a ăng ten, nhiệm vụ nền,CRM Việc tự động hóa, bằng lái xe, máy móc và dịch vụ sản phẩm liên quan. Nó cố tình báo cáo những nguyên nhân có thể sử dụng được thay vì phơi bày những bí mật thô.

Sau khi thay đổi, hãy cập nhật và xác nhận hệ thống phụ bị ảnh hưởng đã phục hồi tốt. Một trang chuẩn đoán màu xanh lá cây là cần thiết nhưng không đủ để khởi động; cũng hoàn thành danh sách kiểm tra trước khi nạp đạn.

Thiết lập

Bảo mật và truy cập

OpsIQ bao gồm nhiều lớp bảo mật để bảo vệ quảng cáo, dữ liệu và API Quyền truy cập.

Nó hoạt động thế nào?
Bảo mật và truy cậpMột lá chắn bảo mật bên cạnh điều khiển đã bật: hai mặt, OIDC SSO, SCIM 2.0 OAuth2 PKCE, CSRF/CP, IP Tường lửa, giới hạn tốc độ và một hầm bí mật.Hai mặt (TIẾNG)OIDC SSOSCIM 2.0OAuth2 PKCECSRF + CNPIP Tường lửaGiới hạnKho bí mật
Bảo mật

Tính năng bảo mật

Xác thực Quản trị

Email/ passtROM với tùy chọn 2FA.

Đăng nhập bị khoá

Khoá tạm thời sau khi quá nhiều thất bại cố gắng.

IP Chặn

Khối IPs hoặc là các phạm vi CIDR từ việc truy cập các địa điểm đã được theo dõi.

Đánh bắt đe dọa

Điểm số của những mối đe dọa về hành vi, khách thăm quan có thể bị chặn xe.

Chính thức HTTPS

Cần thiết cho mọi kết nối. Chuyển đổi HTTP sang HTTPS.

Tiêu đề HSTS

Bảo vệ cảng nghiêm ngặt ngăn chặn các cuộc tấn công cấp độ thấp.

Bảo vệ CSRF

Tất cả các mẫu đơn quản trị bao gồm các vật kỷ niệm CSRF.

Bảo vệ XSS

Mọi dữ liệu nhập đều bị bỏ qua. Các đầu vào hệ thống bị hạn chế thực hiện.

Bảo vệ SSRF

Các móc nối mạng ra ngoài chặn riêng/ nội bộ IP địa chỉ.

Thiết lập khuyến khích

1
Bật 2FA

Cho tất cả các tài khoản quản trị.

2
Mật khẩu mạnh

Tối thiểu 12 Nhân vật, hỗn hợp.

3
Xem lại tài khoản

Loại bỏ quyền truy cập cho các cựu thành viên.

4
Theo dõi thất bại đăng nhập

Kiểm tra hàng tuần xem có mẫu đáng ngờ nào không.

5
Cập nhật

Áp dụng ngay bản cập nhật cho các đắp bảo mật.

Thiết lập

Vai trò và quyền hạn

Điều khiển truy cập đóng vai trò cho phép bạn kiểm soát những gì mỗi thành viên trong đội có thể làm.

Vai trò và quyền hạn
Vai trò và quyền hạnMột ma trận đóng vai-theo khả năng: chủ sở hữu có tất cả mọi thứ; quản trị toàn bộ thiếu hóa đơn và vùng nguy hiểm; Đặc vụ chỉ có các vé bị hạn chế.Vai trò và quyền hạnMiền làm việcCÁC CÂU CHUYỆNTILINGDAPERTIẾNG CÒISở hữuQuản trị đầy đủĐặc vụscoped13 ROLESSở hữu · Quản trị toàn diện 0 Đặc vụ2GRANULARPhần trong mỗi trang3DEFAULT-DENYCon đường bị chặn
Ma trận vai trò trong nháy mắt: chủ sở hữu được mọi thứ, quản trị đầy đủ mọi thứ ngoại trừ hóa đơn và vùng nguy hiểm, đặc vụ chỉ có vé bị hạn chế.

Chức năng mặc định

Sở hữu

Mọi thứ bao gồm bằng lái, khu vực nguy hiểm, và quản lý cài đặt.

Quản trị đầy đủ

Mọi thứ ngoại trừ bằng lái và vùng nguy hiểm.

Đặc vụ

Đáp ứng các vé được chỉ định và chats, xem phân tích.

Tôi có thể tạo ra vai diễn tùy chỉnh không?+

Không phải hiện tại, 3 vai trò trong đó cộng với nhiệm vụ của sở cung cấp sự kiểm soát hạt.

Thiết lập

Bị chặn IPs

Quản lý IP địa chỉ bị chặn vì truy cập các địa điểm được theo dõi của anh.

Bị chặn IPs
Bị chặn IPsBị chặn...IPs Màn hình: một khối-a-an-IPĐây là biểu tượng của một địa chỉ bị chặn với mỗi mục nhập, ngày, lý do và nút Bỏ chặn.Bị chặn IPsMiền làm việcChặn một IP / CIDR203.0.113.0/24Lý do (tùy chọn)KhốiĐịa chỉ bị chặn203.0.113.9Jun 12 * Lực tàn bạoBỏ ngăn chặn45.12.0.0/16Jun 10. spamBỏ ngăn chặn102.89.6.2Jun 9 · Lạm dụngBỏ ngăn chặn1BLLLIP phạm vi CIDR2LISTAi & khi nào, với lý do3UNBLOCKMột click
Một sự ngăn cản thật sự IPs màn hình:IPhoặc một phạm vi CIDR, và quản lý các danh sách, mỗi với ngày tháng, lý do và một nhấn chuột để mở.

Cách chặn

1
Tới bảo mật > bị chặn IPs

2
Thêm IP phạm vi CIDR

Ví dụ: 203.0.113.42 hay 203.0.113.0/24

3
Thêm lý do

Tài liệu tại sao: Spam, lạm dụng, rác, v. v...

Việc chặn sẽ ảnh hưởng đến người dùng hợp pháp không?+

Nếu khách hàng chia sẻ một tập đoàn IP hay VPN, chặn nó lại IP Chặn tất cả mọi người lại, dùng những dãy nhà hẹp.

Thiết lập

Lỗi đăng nhập

Tất cả các việc đăng nhập không thành công cho bạn OpsIQ Adam.

Lỗi đăng nhập
Lỗi đăng nhậpMàn hình xin lỗi: một bảng tài khoản/IPs với thất bại, thời gian cố gắng cuối cùng, và một nút Block cho mỗi hàng.Lỗi đăng nhậpMiền làm việcLỗi đăng nhậpTrích dẫn / IPLÀM THẾ NÀO?Lần cuốiLùi[email protected] · 41.62.10.472m trướcKhối[email protected] · 102.89.6.2318m trước.Khốikhông rõ 45.12.9.71226m trướcKhối[email protected] · 88.21.4.921h trướcKhối1WATCHLỗi đăng nhập2COUNTSMỗi tài khoản / IP3ĐiềuKhối từ hàng
Màn hình đăng nhập thất bại thật sự: mỗi tài khoản/ tài khoản IP Với số lượng thất bại và nỗ lực cuối cùng, chặn một nguồn năng lượng vũ trụ từ hàng ghế.

Những gì mỗi mục nhập cho thấy

Ngày/ Giờ

Khi nỗ lực đó xảy ra.

Thư điện tử

Địa chỉ thư được dùng.

IP địa chỉ

Nguồn gốc của nỗ lực đó.

Nước

Địa điểm địa lý.

Lý do

Mật khẩu sai, bị khóa, hoặc không tìm thấy.

Dấu hiệu cảnh báo

Nhiều lần cố gắng, cùng email

Đã bật mật khẩu, mã 2FA đã được xác nhận.

Nhiều lần cố gắng, email khác nhau

Tấn công tự động. IP.

Các nước khác thường

Nếu đội của bạn là người địa phương, những nỗ lực ngoại quốc có khả năng sẽ tấn công.

Thiết lập

Phân tích an ninh AI

Phân tích lớp tối ưu trên các trang an ninh: phán quyết, tóm tắt sự kiện, tiêu hóa hàng ngày, kiểm tra tư thế hàng tuần, hỏi Security, và 0Nó không bao giờ chạy theo yêu cầu của khách.

Mỗi trang an ninh ghi lại những gì đã xảy ra, nhưng đọc nó vẫn phải phán xét. nhà phân tích an ninh Al thêm rằng sự phán xét ở nơi đó, và nó được xây dựng để không mất gì: nó không bao giờ ngồi trên đường dẫn đèn hiệu hay đường đăng nhập, quy tắc quyết định giải quyết các trường hợp rõ ràng không có cuộc gọi AI, phán quyết được lưu trữ, và kết quả tốt nhất của nhà phân phối là một quy tắc xác định sau đó áp dụng cho đến vô hạn 0 dấu hiệu. Thiết lập→Bảo mật; mọi mặc định tắt.

Nó nói thêm gì

Thẻ đáp + Giải thích

Bị chặn IPs @ info/ rich 24h Xem lại một IPđược tự do.

Bản tóm tắt

Liên hệ các sự kiện tập hợp lại thành một sự cố. URL quét, vỡ tự động với một dòng thời gian bằng tiếng Anh và một bước tiếp theo.

Tiêu hóa hàng ngày

Một bản tóm tắt mỗi ngày: hôm qua đấu với đường cơ bản, khối nhà, sự cố và chỉ một việc phải làm.

Kiểm tra tư thế hàng tuần

Một bảng kiểm tra về sự cứng ngày thứ Hai (FA, ngưỡng khóa so với âm lượng tấn công thật, cảnh báo) với độ nghiêm trọng, nỗ lực và sửa chữa chính xác mỗi mục.

Hỏi & bảo mật

Một hộp hỏi trên tờ Security Overview rằng câu trả lời từ tình trạng an ninh trực tiếp của bạn.

Đề xuất chính sách và tự động

Nhà phân tích đề nghị các quy tắc chặn bê tông như Approve / Disems card; được chấp thuận tại 0 dấu hiệu với một máy đếm đánh cá nhân trực tiếp. Tự động điều khiển tự động chấp nhận các quy luật an toàn nhất.

Thiết lập

Phân tích bảo mật Al (Biểu tượng an ninh_ai)

Công tắc chính. Cho phép đệ trình phán quyết, giải thích, và hỏi Bảo mật. Chỉ mơ hồ IPs Đến chỗ người mẫu, kết hợp thành một cuộc gọi.

Bản tóm tắt tình cờ ( mân mê i i_incidents)

Các sự kiện hỗn loạn xảy ra và viết mỗi câu chuyện mới. chạy trên hệ thống an ninh hàng giờ có sẵn.

Tiêu hóa hàng ngày (B bảo mật_ai_ digest)

Một hệ thống an ninh được lập lại trên chuông và trên toàn cảnh.

Kiểm tra tư thế hàng tuần ( mân mê i_posture)

Danh sách kiểm tra về Overview ngày thứ hai, và kiểm tra toàn bộ.

Chính sách tự động (Biểu tượng_ai_tự động điều khiển)

Cho phép các nhà phân tích kích hoạt đề xuất an toàn nhất của nó mà không cần ai giám sát: những khối thời gian có khả năng đảo ngược, đơn IPs hay phạm vi không rộng hơn /24, chưa bao giờ chia sẻ/mobile/private, bao gồm 10 1 giờ, luôn kiểm toán và hủy bỏ.

💡
Mỗi cuộc gọi được đánh dấu an ninh i với mũ của riêng mình hàng tháng trong cấu hình AI→Bảng bảo vệ giá trị (mặc định 300k). Nếu nắp bị trúng, tính năng bị giảm xuống để xác định đọc. Việc chặn, khoá và cảnh báo không bao giờ phụ thuộc vào ngân sách này. Nhà phân tích không thể xóa dữ liệu, thay đổi thiết lập, chạm vào sổ ghi chép kiểm tra hoặc cấm vĩnh viễn.
Thao tác

Tự động hóa và mặt trời

OpsIQsử dụng một bộ lập lịch sản phẩm để chạy các cuộc thăm dò email, tự động hóa vé, phân tích, lưu ý, xếp hàng AI,CRM làm việc, báo cáo và công việc kết nối.

Màn hình sản xuất
Tự động hóa và mặt trờiMột sản phẩm được nhập vào là cung cấp nhịp tim; OpsIQ Quyết định công việc nội bộ nào sẽ được giao.Tự động hóa và mặt trờimáy phục vụĐỘ TRƯỜNGphútRUNNERcron/all.phpHEALTHThiết lậpQUAN ĐIỂM CÔNG VIỆC SỐNGTrình chạy sản phẩm hợp nhấtopsiq/cron/all.phpCần thiếtxếp hàng kiểm tra và thư điện tửThời gian biểu ngắnHoạt độngPhân tích và lưu ýĐộ sâu nội bộĐã lên lịchPhụ đề tiếng Việt do nhóm Việt hoá KDE thực hiệnĐã tuyên bố sự kiện cronĐã co dãn1INSTALL ONE LINEChạy bảng xếp lịch sản phẩm mỗi phút2CHECK CRON SETUPXác nhận nhịp tim CLI3USE DIAGNOSTICSĐiều tra trễ hoặc thất bại
Một sản phẩm được nhập vào là cung cấp nhịp tim; OpsIQ Quyết định công việc nội bộ nào sẽ được giao.

Mục nhập thập phân yêu cầu

Thêm dòng này vào bảng điều khiển crontab cho cùng máy chủ và môi trường PHP hoạt động OpsIQ:

OpsIQ mục nhập crontab sản phẩm
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1

Thay thế /path/to/opsiq với gốc cài đặt. Hãy dùng đường dẫn đầy đủ của máy PHP khi máy yêu cầu một, ví dụ /usr/bin/php8.4.

Không được dùng cấp cao /cron.php để làm việc. Trong kho hàng này, người chạy thuộc về một dịch vụ không hiệu quả riêng biệt bên ngoài cuốn sổ tay này. OpsIQ sản phẩm chạy là opsiq/cron/all.php.

Cái gì là động cơ của bộ lập lịch thống nhất

Trình xếp hàng cho người dùng ngôn ngữ & ngôn ngữName

Quá trình tự động trả lời, tăng cường, phê chuẩn và các sản phẩm khác đang xếp hàng.

Đang gửi thư

Các hộp thư được cấu hình nơi bầu cử là phương pháp nhập đã chọn.

Phân tích và phiên chạy

Tập hợp các phiên họp và cập nhật thời gian cần thiết.

CRM và đính hôn

Chạy các đoạn ghi chép, xe đạp cứu sinh, dòng chảy công việc, chiến dịch và các nhiệm vụ xuất nhập cảng được thực hiện.

Giữ gìn và bảo trì

Thực hiện việc dọn dẹp, lưu trữ, giải phẫu và làm việc chính trực.

Trình kết nối

Gửi cho các cron đăng ký và bỏ phiếu chỉ cho các thiết bị cài đặt, có khả năng và cấu hình kết nối.

Kiểm tra cron

  1. Mở Thiết lập - Thiết lập Cron và xác nhận người chạy sản phẩm tồn tại.
  2. Dùng Chạy đi Một lần, sau đó xác nhận quảng cáo và thăm dò nhịp tim đã cập nhật.
  3. Kiểm tra Chẩn đoán cho nhịp tim chậm, cảm biến tiêu chảy, cơ sở dữ liệu hay đường dẫn tập tin.
  4. Xem xét /tmp/opsiq-cron.log hoặc đường dẫn bản ghi bạn chọn khi một đường dẫn sử dụng tay bị lỗi.

Giữ bộ quản lý kết nối ngắn, nhận quyền ưu tiên và kính không gian làm việc. Bộ đồng bộ dài Batch và cất giữ một điểm kiểm tra con chạy/ con chạy để có thể tiếp tục chạy an toàn.

🚫
Khi sản phẩm cron dừng lại, dựa trên thời gian OpsIQ Việc làm dừng lại hoặc đi trễ ngay cả khi trang quảng cáo thông thường vẫn có thể tải.
Thao tác

Hoạt động triển khai máy chủ

Name OpsIQ Việc triển khai sử dụng cùng một màn hình sản phẩm và dòng chảy công việc trong khi người điều hành máy quản lý lớp máy chủ.

Màn hình sản xuất
Đã máyHoạt động chủ thay đổi những người duy trì cơ sở hạ tầng; nó không thay đổi cách khách hàng sử dụng OpsIQ.Đã máyMiền làm việcPRODUCT UITương tự OpsIQINFRASTRUCTUREQuản lý tổng đàiWORKSPACE DATABị cô lậpQUAN ĐIỂM CÔNG VIỆC SỐNGThời gian chạy ứng dụngGenericNameĐã quản lýcron sản xuấtĐược lập trình bởi người điều khiển máy chủKiểm traSao lưu và cập nhậtChính sách và bằng chứng về việc cung cấpôn lạiOpsIQ Thiết lậpNơi ngồi, AI, đội và cầu nốiĐội của anh.1OPERATE OPSIQ NORMALLYDùng cùng một phương tiện định vị sản phẩm2VERIFY SERVICE HEALTHDùng bằng chứng chẩn đoán và trạng thái3KNOW RESPONSIBILITYTách thiết lập sản phẩm khỏi việc lưu trữ
Hoạt động chủ thay đổi những người duy trì cơ sở hạ tầng; nó không thay đổi cách khách hàng sử dụng OpsIQ.

Những gì người tổ chức điều hành thường quản lý

  • Máy phục vụ mạng, thời gian chạy PHP, dịch vụ cơ sở dữ liệu, TLS và lưu trữ.
  • Sản phẩm thống nhất cron và các bản ghi máy chủ.
  • Cập nhật ứng dụng, giám sát cơ sở hạ tầng và quá trình dự phòng được xác định bởi hiệp ước tổ chức.

Cái gì? OpsIQ Quản trị vẫn quản lý

  • Các trang mạng và thiết lập ô điều khiển, thiết lập AI, kiến thức, hộp thư và các luồng công việc hỗ trợ khách hàng.
  • Truy cập đội, bộ phận, điều khiển an ninh, API phím, kết nối, tự động hóa và thiết lập dữ liệu.
  • Kết quả được kiểm tra thông qua chẩn đoán, bản ghi kiểm tra, kết nối và kiểm tra kết quả cuối cùng.

Kiểm tra thao tác

Đừng cho rằng một dịch vụ quản lý có nghĩa là tất cả các kết hợp sản phẩm là tốt. Xác nhận các bằng chứng dự phòng mới nhất và các chính sách dự trữ với người điều hành, và sử dụng OpsIQ Chẩn đoán sau khi thay đổi DNS email, nhà cung cấp AI, trang web hoặc kết nối.

Khu vực này chỉ quản lý các hoạt động của sản phẩm. OpsIQ Sổ tay.

Thao tác

Tự tồn tại OpsIQ

Một người tự chủ OpsIQ Bạn có trách nhiệm quản lý thời gian chạy, cơ sở dữ liệu TLS sản phẩm cron, bản dự phòng, cập nhật và giám sát.

Màn hình sản xuất
Tự tồn tạiTự chủ tạo ra sự kiểm soát cơ sở hạ tầng và khiến đội của bạn chịu trách nhiệm về mọi quan hệ phụ thuộc hoạt động.Tự tồn tạimáy phục vụPHP8.4+DATABASEMySQL 5.7+SCHEDULERphútQUAN ĐIỂM CÔNG VIỆC SỐNGThời gian mở rộngTóc xoăn, chân dài, dây rốn. jsonCần thiếtPhần mở rộng thêmxml mở cửa, kéo, intl, gdCần thiếtThay thế co sở dữ liệuMariaDB 10.3+ với InnDBĐã hỗ trợVận chuyểnTruy cập nhà cung cấp HTTPS và hạn chế sử dụngKiểm tra1PREPARE THE SERVERKhớp yêu cầu thời gian chạy2INSTALL AND CONFIGUREDùng cơ sở dữ liệu dành riêng và HTTPS3ADD PRODUCT CRONChạy opsiq/cron/all.php
Tự chủ tạo ra sự kiểm soát cơ sở hạ tầng và khiến đội của bạn chịu trách nhiệm về mọi quan hệ phụ thuộc hoạt động.

Hợp đồng phần mềm tối thiểu

PHP

PHP 8.4 hay mới hơn. mở rộng yêu cầu: cong, pdo_mysql, mb string, json, xml mở cửa, kéo, intl và gd.

Cơ sở dữ liệu

MySQL 5.7+ hay MariaDB 10.3+ sử dụng InnoDB. Tạo một cơ sở dữ liệu dành riêng và ít phụ phí nhất cho ứng dụng.

Máy phục vụ mạng

Cấu hình Apache hay Nginx cho OpsIQ Điều khiển phía trước, giữ nguyên tài sản và cần viết lại.

HTTPS

Cần thiết cho phiên điều hành, giao thông ô điều khiển, API chìa khóa, móc kéo và điện thoại nhà cung cấp.

Truy cập bị hạn chế

Cho phép DNS và HTTPS truy cập vào AI, email, kết nối và các điểm cuối bằng lái bạn thực sự hiệu lực.

Truy cập tập tin

Người dùng web và CLI phải có khả năng đọc tập tin ứng dụng và viết chỉ đến các vị trí đã ghi được ghi rõ thời gian/thời gian.

Cron

Chạy đi OpsIQ Trình lên lịch sản xuất mỗi phút với cùng một cấu hình ứng dụng và truy cập cơ sở dữ liệu như quá trình web.

Cài đặt

  1. Tải bản giải thoát lên người chủ tài liệu đã định và bảo tồn cấu trúc thư mục đã cung cấp.
  2. Tạo cơ sở dữ liệu và người dùng ứng dụng, rồi nhập cơ sở hạ cấp URL và thiết lập bằng lái.
  3. Chạy dòng cài đặt/cấu hình và tạo tài khoản chủ đầu tiên.
  4. Bật HTTPS và kiểm tra chuyển tiếp, cookie và ô điều khiển công/API những con đường.
  5. Thêm vào sự hợp nhất OpsIQ kết quả cron:
Tự tạo sản phẩm cron
* * * * * php /path/to/opsiq/opsiq/cron/all.php >> /tmp/opsiq-cron.log 2>&1
  1. Thiết lập Mở - thiết lập và chẩn đoán; hãy chạy trình lên lịch một lần và giải quyết mỗi phụ thuộc bị lỗi.
  2. Cấu hình bản sao lưu, thử nghiệm phục hồi, lưu trữ và cập nhật các thủ tục trước khi thêm dữ liệu sản xuất.

Cập nhật an toàn

  1. Đọc các ghi chú giải thoát và kiểm tra các điểm ảnh cần thiết trước khi thay đổi tập tin.
  2. Hỗ trợ cơ sở dữ liệu và các tập tin ứng dụng/ cấu hình, sau đó chứng minh bản sao lưu có thể được khôi phục tại một vị trí thử nghiệm.
  3. Triển khai các tập tin mới mà không xóa các cấu hình đặc trưng cài đặt hoặc dữ liệu thời gian chạy.
  4. Chạy tiến trình di trú/ trước khi bay và kiểm tra đăng nhập, theo dõi các thiết bị, vé, email, AI, kết nối và cron.
  5. Giữ bản sao lưu trước và bản sao lại cơ sở dữ liệu sẵn sàng cho cửa sổ cuộn ngược đã ghi rõ.
🚫
Kho phần lớn /cron.php không phải là OpsIQ Bộ lập lịch sản phẩm. Chỉ tự động hóa sản phẩm chỉ tại opsiq/cron/all.php.
⚠️
Đừng xoá.schema_cache.json Loại bỏ nó chỉ khi các chỉ thị sản phẩm rõ ràng yêu cầu tái thiết schema-cache.
Thao tác

Hướng dẫn sản xuất

Name OpsIQ Đang sản xuất.

Hướng dẫn sản xuất
Hướng dẫn sản xuấtDanh sách truy cập trực tiếp: miền tùy chọn và SSL Các AI đã được đào tạo, các kết nối và cron, hỗ trợ, lưu lại vai trò và đội.Danh sách & nhập vàoMiền làm việcTrước khi đi, hãy sốngMiền tự chọn + SSL Cấu hìnhAl đã được đào tạo về nội dung của bạnKiểm tra bổ sung · chạy cronCác bản sao lưu đã lập lệnh « 2 »Đội ngũ được gán cho & xem xét1GO-LIVEDanh sách trước khi khởi động2KẾT QUẢMiền SSL _Các bản sao lưu3CONFIDENTTàu khi nó xanh lá cây
Một danh sách truy cập trực tiếp vì vậy không có gì bị bỏ sót: miền + SSL được huấn luyện AI, kiểm tra kết nối và cron, hỗ trợ, lưu trữ và các vai trò của đội.

Trước khi đi trực tiếp

HTTPS đã cấu hình

SSL đã cài đặt, chuyển hướng HTTP, đã bật HSTS.

Đang chạy hệ thống con trỏ

Kiểm tra qua trang chẩn đoán.

Thử AI

Nói chuyện như một khách hàng, kiểm tra chính xác và giai điệu.

Ô điều khiển đã cài đặt

Kiểm tra bằng tin tức trực tiếp.

Cấu hình sao lưu

Dữ liệu và bản sao lưu hàng ngày tự động.

Gặp lỗi khi ghi lưu

Lỗi ghi lưu PHP được bật và được theo dõi.

Cả đội mời

Tất cả các thành viên đều có những lời tường thuật về vai trò đúng đắn.

Cơ sở kiến thức

Ít nhất 5-10 ( Tỉnh thức!).

Hàng ngày: Kiểm tra bảng điều khiển, xếp hàng vé, kiểm tra điểm ảnh (l).

Hàng tuần: Xem lại AI Insights, cập nhật KB, kiểm tra thành tích của đội, xem xét an ninh.

Hàng tháng: Xem lại xu hướng phân tích, kết nối kiểm toán, cập nhật các AI, xác nhận bản sao lưu.

Thao tác

Danh sách trước khi khởi động

Chạy các cổng nguồn và kiểm tra sản phẩm thật trước khi ra mắt hoặc bắt đầu sản xuất. Lệnh sẵn sàng không phải là bằng chứng cho thấy nó đã được thông qua trong môi trường của bạn.

Màn hình sản xuất
Mở đíchÔ xem phát hành hiển thị cần thiết cổng để chạy; nó không có định dạng trước chúng như được thông qua.Mở đíchmáy phục vụRTENMEPHP8.4SOURCE GATESChạy cục bộOUTCOMEDựa trên bằng chứngQUAN ĐIỂM CÔNG VIỆC SỐNGPhần mở rộng cần thiếtKiểm tra trước khi có phòngMở cửaQuét cú pháp PFPTất cả các tập tin mục ghi thay đổi kích cỡ của dự ánMở cửaĐánh giá AI và PHPUnitChạy khi có phụ thuộcMở cửaKiểm tra trạng thái tĩnh và trình duyệtChạy khi cấu hìnhMở cửa1RUN THE CHECKSThu kết xuất thực tế2FIX EVERY REQUIRED FAILUREKhông thay thế bằng chứng bằng giả định3TEST THE PRODUCTKiểm tra các chuyến đi người dùng thật
Ô xem phát hành hiển thị cần thiết cổng để chạy; nó không có định dạng trước chúng như được thông qua.

Nguồn và các cổng thành

Chạy kiểm tra kho phần mềm từ người chủ cài đặt và giữ kết xuất đầy đủ của họ với mục ghi phát hành.

Cổng chính trước khi cất cánh.
php tools/preflight.php
Mở cửa
php tools/release_gate.php

Trước khi bay đã kiểm tra PHP 8.4 Chạy và cần thời gian mở rộng, thực hiện quét cú pháp PHP, chạy cổng AI đánh giá con tàu, và toàn bộ dãy PHOPUnit, và chạy kiểm tra PHPStan/Node khi các công cụ đó được cài đặt. Cổng mở rộng cũng bao gồm khói, cài đặt/ giản đồ và trình duyệt kết thúc để hoàn tất khi môi trường của chúng được cấu hình.

Một việc bỏ qua không phải là một giấy qua. Ghi chú tại sao nó không sẵn sàng, cài đặt phụ thuộc còn thiếu hoặc chạy nó trong môi trường phát âm/ nền tảng đúng trước khi phát hành.

Kiểm tra sản xuất

1Xác thực và vai trò

Ký tên vào mỗi vai trò đã định; xác nhận cho phép và từ chối các trang/ hành động.

2Ô điều khiển và theo dõi

Nạp một trang web thật trong một trình duyệt riêng; xác nhận giao thông hiệu ứng, Trading Live, vị trí khách và hồ sơ phiên chạy.

3Tán gẫu và AI

Hãy đặt câu hỏi cho người đại diện; xác minh kiến thức cơ bản, an toàn, tăng cường và lịch sử AI.

4Vé

Tạo, chỉ định, trả lời, leo thang, đóng và mở lại thông qua mọi đường dẫn vào.

5Email

Kiểm tra giao hàng và mỗi đường dẫn đến hộp thư hoặc đường dẫn webhoook.

6 CRM và phân tích

Tạo một liên lạc/dec/conversion và kiểm tra bảng điều khiển, ống nước, vết tích và báo cáo.

7Kết nối

Chạy thử kết nối, đọc một, chạy/ sấy khô an toàn và nối kết nối với kết nối

8. API và các móc câu

Kiểm tra phạm vi hẹp, hạn chế tốc độ, nhận dạng lại, ký hiệu và bản sao.

9Cron

Chạy bộ lập lịch sản phẩm thống nhất và xác nhận tất cả nhịp tim cần thiết ở Cron Set/Diisutis.

10 Bảo vệ

Kiểm tra 2FA, điều khiển CSRF/ssists, mục kiểm tra, mã số tái lập và cách ly không gian làm việc.

11. sao lưu và phục hồi

Phục hồi một bản sao lưu hiện thời vào môi trường thử nghiệm riêng biệt và kiểm tra dữ liệu và cấu hình.

12 Khả năng quan sát và quay lại

Xác nhận nhật ký/ thiết bị, bảo quản ID yêu cầu và chứng minh thủ tục quay ngược.

⚠️
Chỉ khi nào có cổng cần thiết và hành trình kinh doanh thì mới có bằng chứng hiện tại cho việc được thả và môi trường chính xác.
Nhà phát triển

Đẩy Web vào trang web thứ ba

Bộ duyệt thông báo đẩy (bao gồm OpsIQ Những cuộc vận động thúc đẩy) cần một nhân viên dịch vụ từ cùng một thời kỳ đầu với trang giấy.OpsIQ Name OpsIQ Đang triển khai, vì vậy một địa điểm bên thứ ba không thể đăng ký OpsIQ Nhân viên trực tiếp. Hãy gửi một tập tin nhỏ trong vùng riêng của trang web để kích hoạt lực đẩy. Chiến dịch cung cấp thông qua các phương pháp hỗ trợ lẫn nhau.

Nó hoạt động thế nào?
Đẩy mạngMột thông báo kiểu hệ thống hô hấp cấp tính trên hai thẻ giao hàng: được xây dựng trong VAPID và Pusher Beams.Cửa hàng của bạnXe đẩy của anh đang đợi. 10% hôm nay nghỉbây giờXây dựng trong (VAPID)Không có bên thứ baMáy một tập tinĐẩyDùng tài khoản của bạnChủ nhân công nhân
Đẩy mạng

Tại sao cần thiết

Các trình duyệt chỉ cho phép một trang đăng ký một nhân viên dịch vụ từ nguồn gốc riêng của nó.OpsIQ Đang triển khai, vì vậy nó không thể cài đặt công nhân đẩy vào một trang web khách hàng, cho đến khi bạn tiếp tục người công nhân trên nguồn gốc của trang web đó, các thiết bị âm thầm bỏ qua (không có lỗi, không có đăng ký). Bạn có hai tùy chọn bên dưới;OpsIQ Đẩy chiến dịch xuất bản thông qua cả hai.

Tùy chọn A· Tự mình thực hiện một việc (VAPID, không có bên thứ ba)

1. Tải công nhân từ máy của bạn OpsIQ Triển khai: https://YOUR-OPSIQ/opsiq/opsiq-push-sw.js

2. Tải nó lên Gốc web Vì vậy nó là có thể đạt được tại https://yoursite.com/opsiq-push-sw.jsô điều khiển Tự động phát hiện đường dẫn này (Nó sử dụng phạm vi hẹp, vì vậy nó không bao giờ thay thế một nhân viên dịch vụ mà bạn đã chạy.)

Tùy chọn: Nếu bạn cần phải tiếp tục nó theo đường dẫn không chuẩn, hãy chỉ ra ô điều khiển ở nó trước Nó chỉ được chấp nhận khi cùng một người:

Chỉ khi tập tin KHÔNG ở gốc trang Mạng
<script>window.OpsIQ=window.OpsIQ||{};window.OpsIQ.pushSwUrl="/custom/opsiq-push-sw.js";</script>

3. Vào OpsIQ, tạo khóa VAPID (đặt → Trình khách Tán gẫu Al → Cấp cao → Đẩy Mạng. Sau đó, các thiết bị điều khiển yêu cầu khách thông báo và đăng ký họ.

Đằng sau một CDNCloudflareChắc chắn /opsiq-push-sw.js HTTP trả về 200 ( Nếu đúng thì hãy mở máy tính bảng)404 trước khi tải lên; có bộ nhớ tạm 404 sẽ chặn đăng ký xe).

Tùy chọn B· Pusher Beams (nhà cung cấp bị hạn chế)

1. Vào OpsIQ thiết lập thiết lập nhà cung cấp đẩy Đẩy và đi vào trong xe của bạn ID thể hiệnBí mật.

2. Chủ nhân của dịch vụ Beams trên gốc trang web như /service-worker.jsNghe rõ. https://YOUR-OPSIQ/opsiq/pusher-beams-service-worker.jsHoặc nhập dòng này vào nhân viên gốc của bạn:

Beams nhân viên, chủ nhà ở https://yoursite.com/service-worker.js
importScripts("https://js.pusher.com/beams/service-worker.js");

3. Các ô điều khiển tự động tải các Beams SDK và đăng ký cho mỗi vị khách đến thăm một nơi. opsiq-site-<your-site-key>Không cần dây điện nào khác.

Chiến dịch vận động thế nào?

Đẩy chiến dịch xuất bản thông qua cả hai Các phương pháp cùng một lúc: khách truy cập vào nhân viên VAPID tự tạo ra các công ty mã hóa, và du khách đăng ký bằng cách sử dụng Pusher Beams để xuất bản chiếc Beams. mỗi vị khách được tiếp cận thông qua bất cứ thứ gì họ đã đặt mua, vì vậy bạn có thể chạy VAGPID tương tự trên một số trang web và đối chiếu với những người khác.

Cần thiết HTTPS Phòng chat dành cho người dịch vụ và các máy điện toán mạng được miễn thử nghiệm.

Thao tác

Sửa lỗi

Những vấn đề thông thường và cách để sửa chữa chúng.

Chung

Trang trắng+

Kiểm tra bản ghi lỗi PHP. Nguyên nhân: cũ PHS (cần thiết 8.4+) thiếu phần mở rộng, kết nối DB bị lỗi, quyền tập tin sai.

Bảng gạch cho thấy số không+

Kiểm tra: các ô điều khiển đã được cài đặt? IP Loại trừ?

Al

AI không trả lời+

Kiểm tra: Nhà cung cấp đã cấu hình? API Khóa hợp lệ (dùng kết nối thử ra)? Budget kiệt sức? Máy tính xách tay không gian làm việc đúng không?

Al cho câu trả lời sai+

Kiểm tra: kiến thức cơ bản cho đến nay? Nhắc lại rõ ràng? Kết nối hoặc tra cứu lại dữ liệu đúng? Xem lại cuộc trò chuyện trong Lịch sử Al.

Al chậm chạp+

Phụ thuộc vào: API Tốc độ, kích cỡ ngữ cảnh (lớn KB = nhiều hiệu số = chậm), độ trễ mạng. Thử một mô hình nhanh hơn.

Theo dõi

Thiếu ô điều khiển+

Kiểm tra: văn lệnh trong nguồn trang? Lỗi JS trong thanh điều khiển? Chặn CSP? Chống quảng cáo?

Quốc gia không rõ+

Không cấu hình GeoIP. Dùng Cloudflare (tự động) hay cơ sở dữ liệu của MaxMind GeoLite2.

Email không tạo vé+

Kiểm tra: Hộp thư được kết nối và chạy Cron? Mật khẩu ứng dụng đã thay đổi? IMAP thiết lập đúng không?

Tự động không hoạt động+

Kiểm tra: được chọn, được cho phép, được cấu hình AI, chạy Cron, trả lời trước?

Trình kết nối

Kết nối thất bại+

Kiểm tra: Thông tin về mặt giấy tờ? API truy cập từ máy phục vụ? URL Đúng không?

Đã kết nối nhưng không có dữ liệu+

Kiểm tra: API Phạm vi khoá hay bật đồng bộ bàn web? Cron chạy không?

Hiệu suất

Trang chậm+

Kiểm tra: hiệu suất cơ sở dữ liệu (SHW ProCESSLST), bộ nhớ PHP (không ngừng 1GB), cho phép bộ nhớ tạm, giảm thời gian nhớ lại.

Thao tác

Thẻ không ghi lại các chuyến thăm

Dùng mục này để kiểm tra tập trung khi nào nạp sai hay trình bổ sung trực tiếp sẽ rỗng.

Khi widget không ghi lại các chuyến thămĐể xác minh khoá nơi Mạng, hãy nạp trang này vào trình duyệt riêng, kiểm tra các bảng điều khiển mạng/Console trình duyệt để tìm yêu cầu đèn hiệu hay thiết bị điều khiển bị chặn, xem lại nội dung-Plicy và quảng cáo, xác nhận nơi Mạng đang hoạt động OpsIQ Một bong bóng giao tiếp hữu hình không thể chứng minh rằng đèn hiệu phân tích đã được chấp nhận.

Tham khảo

Bản chú giải

Định nghĩa cho các từ được dùng trong suốt OpsIQ.

Hành động

Một thứ AI có thể làm thông qua một hệ thống kết nối hay nền tảng.

Đặc vụ

Một thành viên trong đội có quyền truy cập hạn chế, hoặc một đặc vụ AI.

BYOK

Mang theo chìa khóa của riêng bạn, bạn cung cấp AI riêng của bạn API Chìa khóa.

Nối

Name OpsIQ.

CSAT

Điểm số khách hàng.

Thỏa thuận

Một cơ hội thu nhập trong CRM.

Nhà ở

Một loại vé để định tuyến và điều khiển truy cập.

Tăng vọt

Chuyển một tấm vé sang một bộ phận khác hoặc từ AI sang con người.

GeoIP

Phát hiện vị trí khách từ IP Địa chỉ.

Bỏ tay ra

Chuyển cuộc trò chuyện từ AI sang con người.

Huy hiệu nhận diện

Ký tên vào việc xác định một vị khách trên trang web.

Cơ sở tri thức

Các bài AI thường trả lời các câu hỏi.

& Hiện

Một vị khách đang muốn mua sắm.

Điểm số chính

0-100 con số cho thấy khả năng cải đạo.

Giai đoạn lặp lại

Nơi có khách hàng: "Người dẫn đầu, triển vọng, người khách hàng, nguy hiểm, người say rượu."

AI được quản lý

Al cung cấp như một phần của bạn OpsIQ Kế hoạch.

Đường ống

- Bảng giao dịch.

RBAC

Điều khiển truy cập đóng vai trò.

Phiên chạy

Một loạt ô xem trang trong một cửa sổ thời hạn.

Phím Nơi Mạng

Bộ nhận diện độc đáo cho một trang web theo dõi.

SLA

Hiệp định phục vụ cấp độ, nhắm mục tiêu thời gian đáp ứng.

Đơn vị văn bản AI. 4 Ký tự = 1 làm ơn đi.

Lớp Tin tưởng

Hệ thống an toàn điều khiển AI tự chủ.

móc câu

Cuộc gọi HTTP cho thông báo sự kiện.

Nơi Mạng

JavaScript Mã được cài vào trang web của anh.

Miền làm việc

Một trang web có thiết bị theo dõi riêng, AI, kết nối và nhóm.

Tham khảo

Tìm thêm người giúp đi.

Nếu tài liệu này không trả lời câu hỏi của bạn:

Quản trị Al

Nhấn "Hãy hỏi"OpsIQ"trong ban quản trị, đã truy cập vào tài liệu này và dữ liệu nền tảng của bạn.

Vé hỗ trợ

Bao gồm: những gì bạn đã cố gắng, những gì đã xảy ra, những điều bạn mong đợi và bất kỳ thông điệp sai lầm nào.

Thư điện tử

Hỗ trợ thư điện tử bằng khóa chứng nhận và mô tả xuất bản.

Mẹo cho các yêu cầu hỗ trợ hiệu quả

Gồm trang

Trang manmin nào URL hoặc tên).

Bao gồm cả bối cảnh

Tên thiết lập chính xác và giá trị hiện thời.

Gồm lỗi

Tin nhắn lỗi chính xác với mã.

Bao gồm các bước

Những gì anh làm, từng bước một.

Bao gồm mong đợi đấu thực tế

Chuyện gì nên xảy ra với chuyện đã xảy ra.

💡
Càng cụ thể yêu cầu của bạn, câu trả lời càng nhanh. "Nó không hoạt động" yêu cầu điều tra. "Slicking save on AI Cấu hình cung cấp mã lỗi 502"có được một câu trả lời trực tiếp.