@minded-ai/mindedjs 1.0.0-ec2-beta-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/dist/agent.d.ts +256 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +896 -0
- package/dist/agent.js.map +1 -0
- package/dist/browserTask/README.md +419 -0
- package/dist/browserTask/browserAgent.py +632 -0
- package/dist/browserTask/captcha_isolated.png +0 -0
- package/dist/browserTask/executeBrowserTask.d.ts +14 -0
- package/dist/browserTask/executeBrowserTask.d.ts.map +1 -0
- package/dist/browserTask/executeBrowserTask.js +195 -0
- package/dist/browserTask/executeBrowserTask.js.map +1 -0
- package/dist/browserTask/executeBrowserTask.py +153 -0
- package/dist/browserTask/executeBrowserTask.ts +79 -0
- package/dist/browserTask/localBrowserTask.d.ts +49 -0
- package/dist/browserTask/localBrowserTask.d.ts.map +1 -0
- package/dist/browserTask/localBrowserTask.js +284 -0
- package/dist/browserTask/localBrowserTask.js.map +1 -0
- package/dist/browserTask/requirements.txt +8 -0
- package/dist/browserTask/setup.sh +144 -0
- package/dist/browserTask/types.d.ts +35 -0
- package/dist/browserTask/types.d.ts.map +1 -0
- package/dist/browserTask/types.js +10 -0
- package/dist/browserTask/types.js.map +1 -0
- package/dist/checkpointer/checkpointSaverFactory.d.ts +7 -0
- package/dist/checkpointer/checkpointSaverFactory.d.ts.map +1 -0
- package/dist/checkpointer/checkpointSaverFactory.js +53 -0
- package/dist/checkpointer/checkpointSaverFactory.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +209 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.d.ts +10 -0
- package/dist/cli/lambdaHandlerTemplate.d.ts.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.js +76 -0
- package/dist/cli/lambdaHandlerTemplate.js.map +1 -0
- package/dist/cli/lambdaHandlerTemplate.ts +78 -0
- package/dist/cli/localOperatorSetup.d.ts +6 -0
- package/dist/cli/localOperatorSetup.d.ts.map +1 -0
- package/dist/cli/localOperatorSetup.js +310 -0
- package/dist/cli/localOperatorSetup.js.map +1 -0
- package/dist/debugging/index.d.ts +2 -0
- package/dist/debugging/index.d.ts.map +1 -0
- package/dist/debugging/index.js +6 -0
- package/dist/debugging/index.js.map +1 -0
- package/dist/debugging/llmCallbackHandler.d.ts +36 -0
- package/dist/debugging/llmCallbackHandler.d.ts.map +1 -0
- package/dist/debugging/llmCallbackHandler.js +101 -0
- package/dist/debugging/llmCallbackHandler.js.map +1 -0
- package/dist/edges/createDirectEdge.d.ts +4 -0
- package/dist/edges/createDirectEdge.d.ts.map +1 -0
- package/dist/edges/createDirectEdge.js +24 -0
- package/dist/edges/createDirectEdge.js.map +1 -0
- package/dist/edges/createLogicalRouter.d.ts +8 -0
- package/dist/edges/createLogicalRouter.d.ts.map +1 -0
- package/dist/edges/createLogicalRouter.js +194 -0
- package/dist/edges/createLogicalRouter.js.map +1 -0
- package/dist/edges/createPromptRouter.d.ts +12 -0
- package/dist/edges/createPromptRouter.d.ts.map +1 -0
- package/dist/edges/createPromptRouter.js +176 -0
- package/dist/edges/createPromptRouter.js.map +1 -0
- package/dist/edges/edgeFactory.d.ts +14 -0
- package/dist/edges/edgeFactory.d.ts.map +1 -0
- package/dist/edges/edgeFactory.js +125 -0
- package/dist/edges/edgeFactory.js.map +1 -0
- package/dist/events/AgentEvents.d.ts +56 -0
- package/dist/events/AgentEvents.d.ts.map +1 -0
- package/dist/events/AgentEvents.js +13 -0
- package/dist/events/AgentEvents.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +5 -0
- package/dist/events/index.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +98 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/zendesk.d.ts +35 -0
- package/dist/interfaces/zendesk.d.ts.map +1 -0
- package/dist/interfaces/zendesk.js +219 -0
- package/dist/interfaces/zendesk.js.map +1 -0
- package/dist/internalTools/appActionRunnerTool.d.ts +5 -0
- package/dist/internalTools/appActionRunnerTool.d.ts.map +1 -0
- package/dist/internalTools/appActionRunnerTool.js +88 -0
- package/dist/internalTools/appActionRunnerTool.js.map +1 -0
- package/dist/internalTools/documentExtraction/documentExtraction.d.ts +129 -0
- package/dist/internalTools/documentExtraction/documentExtraction.d.ts.map +1 -0
- package/dist/internalTools/documentExtraction/documentExtraction.js +736 -0
- package/dist/internalTools/documentExtraction/documentExtraction.js.map +1 -0
- package/dist/internalTools/documentExtraction/types.d.ts +29 -0
- package/dist/internalTools/documentExtraction/types.d.ts.map +1 -0
- package/dist/internalTools/documentExtraction/types.js +35 -0
- package/dist/internalTools/documentExtraction/types.js.map +1 -0
- package/dist/internalTools/libraryActionRunnerTool.d.ts +4 -0
- package/dist/internalTools/libraryActionRunnerTool.d.ts.map +1 -0
- package/dist/internalTools/libraryActionRunnerTool.js +53 -0
- package/dist/internalTools/libraryActionRunnerTool.js.map +1 -0
- package/dist/internalTools/retell.d.ts +12 -0
- package/dist/internalTools/retell.d.ts.map +1 -0
- package/dist/internalTools/retell.js +54 -0
- package/dist/internalTools/retell.js.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/sendPlaceholderMessage.js.map +1 -0
- package/dist/internalTools/timer.d.ts +99 -0
- package/dist/internalTools/timer.d.ts.map +1 -0
- package/dist/internalTools/timer.js +139 -0
- package/dist/internalTools/timer.js.map +1 -0
- package/dist/internalTools/voice/escalateVoiceCall.d.ts +2 -0
- package/dist/internalTools/voice/escalateVoiceCall.d.ts.map +1 -0
- package/dist/internalTools/voice/escalateVoiceCall.js +52 -0
- package/dist/internalTools/voice/escalateVoiceCall.js.map +1 -0
- package/dist/internalTools/voice/retell.d.ts +12 -0
- package/dist/internalTools/voice/retell.d.ts.map +1 -0
- package/dist/internalTools/voice/retell.js +54 -0
- package/dist/internalTools/voice/retell.js.map +1 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.d.ts +14 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.d.ts.map +1 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.js +61 -0
- package/dist/internalTools/voice/sendPlaceholderMessage.js.map +1 -0
- package/dist/interrupts/BaseInterruptSessionManager.d.ts +49 -0
- package/dist/interrupts/BaseInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/BaseInterruptSessionManager.js +34 -0
- package/dist/interrupts/BaseInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/MemoryInterruptSessionManager.d.ts +14 -0
- package/dist/interrupts/MemoryInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/MemoryInterruptSessionManager.js +60 -0
- package/dist/interrupts/MemoryInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/MindedInterruptSessionManager.d.ts +13 -0
- package/dist/interrupts/MindedInterruptSessionManager.d.ts.map +1 -0
- package/dist/interrupts/MindedInterruptSessionManager.js +162 -0
- package/dist/interrupts/MindedInterruptSessionManager.js.map +1 -0
- package/dist/interrupts/interruptSessionManagerFactory.d.ts +3 -0
- package/dist/interrupts/interruptSessionManagerFactory.d.ts.map +1 -0
- package/dist/interrupts/interruptSessionManagerFactory.js +56 -0
- package/dist/interrupts/interruptSessionManagerFactory.js.map +1 -0
- package/dist/llm/createLlmInstance.d.ts +3 -0
- package/dist/llm/createLlmInstance.d.ts.map +1 -0
- package/dist/llm/createLlmInstance.js +31 -0
- package/dist/llm/createLlmInstance.js.map +1 -0
- package/dist/nodes/addAppToolNode.d.ts +13 -0
- package/dist/nodes/addAppToolNode.d.ts.map +1 -0
- package/dist/nodes/addAppToolNode.js +87 -0
- package/dist/nodes/addAppToolNode.js.map +1 -0
- package/dist/nodes/addBrowserTaskNode.d.ts +13 -0
- package/dist/nodes/addBrowserTaskNode.d.ts.map +1 -0
- package/dist/nodes/addBrowserTaskNode.js +167 -0
- package/dist/nodes/addBrowserTaskNode.js.map +1 -0
- package/dist/nodes/addBrowserTaskRunNode.d.ts +13 -0
- package/dist/nodes/addBrowserTaskRunNode.d.ts.map +1 -0
- package/dist/nodes/addBrowserTaskRunNode.js +167 -0
- package/dist/nodes/addBrowserTaskRunNode.js.map +1 -0
- package/dist/nodes/addHumanInTheLoopNode.d.ts +9 -0
- package/dist/nodes/addHumanInTheLoopNode.d.ts.map +1 -0
- package/dist/nodes/addHumanInTheLoopNode.js +22 -0
- package/dist/nodes/addHumanInTheLoopNode.js.map +1 -0
- package/dist/nodes/addJumpToNode.d.ts +7 -0
- package/dist/nodes/addJumpToNode.d.ts.map +1 -0
- package/dist/nodes/addJumpToNode.js +24 -0
- package/dist/nodes/addJumpToNode.js.map +1 -0
- package/dist/nodes/addJunctionNode.d.ts +7 -0
- package/dist/nodes/addJunctionNode.d.ts.map +1 -0
- package/dist/nodes/addJunctionNode.js +20 -0
- package/dist/nodes/addJunctionNode.js.map +1 -0
- package/dist/nodes/addPromptNode.d.ts +18 -0
- package/dist/nodes/addPromptNode.d.ts.map +1 -0
- package/dist/nodes/addPromptNode.js +253 -0
- package/dist/nodes/addPromptNode.js.map +1 -0
- package/dist/nodes/addRpaNode.d.ts +18 -0
- package/dist/nodes/addRpaNode.d.ts.map +1 -0
- package/dist/nodes/addRpaNode.js +180 -0
- package/dist/nodes/addRpaNode.js.map +1 -0
- package/dist/nodes/addToolNode.d.ts +13 -0
- package/dist/nodes/addToolNode.d.ts.map +1 -0
- package/dist/nodes/addToolNode.js +67 -0
- package/dist/nodes/addToolNode.js.map +1 -0
- package/dist/nodes/addToolRunNode.d.ts +17 -0
- package/dist/nodes/addToolRunNode.d.ts.map +1 -0
- package/dist/nodes/addToolRunNode.js +59 -0
- package/dist/nodes/addToolRunNode.js.map +1 -0
- package/dist/nodes/addTriggerNode.d.ts +7 -0
- package/dist/nodes/addTriggerNode.d.ts.map +1 -0
- package/dist/nodes/addTriggerNode.js +25 -0
- package/dist/nodes/addTriggerNode.js.map +1 -0
- package/dist/nodes/compilePrompt.d.ts +5 -0
- package/dist/nodes/compilePrompt.d.ts.map +1 -0
- package/dist/nodes/compilePrompt.js +76 -0
- package/dist/nodes/compilePrompt.js.map +1 -0
- package/dist/nodes/nodeFactory.d.ts +16 -0
- package/dist/nodes/nodeFactory.d.ts.map +1 -0
- package/dist/nodes/nodeFactory.js +45 -0
- package/dist/nodes/nodeFactory.js.map +1 -0
- package/dist/nodes/rpaStepsExecutor.d.ts +5 -0
- package/dist/nodes/rpaStepsExecutor.d.ts.map +1 -0
- package/dist/nodes/rpaStepsExecutor.js +156 -0
- package/dist/nodes/rpaStepsExecutor.js.map +1 -0
- package/dist/platform/config.d.ts +16 -0
- package/dist/platform/config.d.ts.map +1 -0
- package/dist/platform/config.js +80 -0
- package/dist/platform/config.js.map +1 -0
- package/dist/platform/mindedCheckpointSaver.d.ts +10 -0
- package/dist/platform/mindedCheckpointSaver.d.ts.map +1 -0
- package/dist/platform/mindedCheckpointSaver.js +137 -0
- package/dist/platform/mindedCheckpointSaver.js.map +1 -0
- package/dist/platform/mindedConnection.d.ts +15 -0
- package/dist/platform/mindedConnection.d.ts.map +1 -0
- package/dist/platform/mindedConnection.js +254 -0
- package/dist/platform/mindedConnection.js.map +1 -0
- package/dist/platform/mindedConnectionTypes.d.ts +404 -0
- package/dist/platform/mindedConnectionTypes.d.ts.map +1 -0
- package/dist/platform/mindedConnectionTypes.js +51 -0
- package/dist/platform/mindedConnectionTypes.js.map +1 -0
- package/dist/platform/models/mindedChatOpenAI.d.ts +20 -0
- package/dist/platform/models/mindedChatOpenAI.d.ts.map +1 -0
- package/dist/platform/models/mindedChatOpenAI.js +32 -0
- package/dist/platform/models/mindedChatOpenAI.js.map +1 -0
- package/dist/platform/models/parallelWrapper.d.ts +17 -0
- package/dist/platform/models/parallelWrapper.d.ts.map +1 -0
- package/dist/platform/models/parallelWrapper.js +105 -0
- package/dist/platform/models/parallelWrapper.js.map +1 -0
- package/dist/platform/piiGateway/gateway.d.ts +14 -0
- package/dist/platform/piiGateway/gateway.d.ts.map +1 -0
- package/dist/platform/piiGateway/gateway.js +117 -0
- package/dist/platform/piiGateway/gateway.js.map +1 -0
- package/dist/platform/piiGateway/index.d.ts +3 -0
- package/dist/platform/piiGateway/index.d.ts.map +1 -0
- package/dist/platform/piiGateway/index.js +7 -0
- package/dist/platform/piiGateway/index.js.map +1 -0
- package/dist/platform/piiGateway/types.d.ts +27 -0
- package/dist/platform/piiGateway/types.d.ts.map +1 -0
- package/dist/platform/piiGateway/types.js +3 -0
- package/dist/platform/piiGateway/types.js.map +1 -0
- package/dist/platform/toolExecutor.d.ts +29 -0
- package/dist/platform/toolExecutor.d.ts.map +1 -0
- package/dist/platform/toolExecutor.js +84 -0
- package/dist/platform/toolExecutor.js.map +1 -0
- package/dist/platform/utils/parseAttachments.d.ts +14 -0
- package/dist/platform/utils/parseAttachments.d.ts.map +1 -0
- package/dist/platform/utils/parseAttachments.js +53 -0
- package/dist/platform/utils/parseAttachments.js.map +1 -0
- package/dist/platform/utils/tools.d.ts +6 -0
- package/dist/platform/utils/tools.d.ts.map +1 -0
- package/dist/platform/utils/tools.js +57 -0
- package/dist/platform/utils/tools.js.map +1 -0
- package/dist/playbooks/playbooks.d.ts +15 -0
- package/dist/playbooks/playbooks.d.ts.map +1 -0
- package/dist/playbooks/playbooks.js +208 -0
- package/dist/playbooks/playbooks.js.map +1 -0
- package/dist/toolsLibrary/classifier.d.ts +74 -0
- package/dist/toolsLibrary/classifier.d.ts.map +1 -0
- package/dist/toolsLibrary/classifier.js +256 -0
- package/dist/toolsLibrary/classifier.js.map +1 -0
- package/dist/toolsLibrary/extraction.d.ts +83 -0
- package/dist/toolsLibrary/extraction.d.ts.map +1 -0
- package/dist/toolsLibrary/extraction.js +328 -0
- package/dist/toolsLibrary/extraction.js.map +1 -0
- package/dist/toolsLibrary/index.d.ts +9 -0
- package/dist/toolsLibrary/index.d.ts.map +1 -0
- package/dist/toolsLibrary/index.js +46 -0
- package/dist/toolsLibrary/index.js.map +1 -0
- package/dist/toolsLibrary/parseDocument.d.ts +30 -0
- package/dist/toolsLibrary/parseDocument.d.ts.map +1 -0
- package/dist/toolsLibrary/parseDocument.js +119 -0
- package/dist/toolsLibrary/parseDocument.js.map +1 -0
- package/dist/triggers/triggerTypeToDefaultMessage.d.ts +4 -0
- package/dist/triggers/triggerTypeToDefaultMessage.d.ts.map +1 -0
- package/dist/triggers/triggerTypeToDefaultMessage.js +10 -0
- package/dist/triggers/triggerTypeToDefaultMessage.js.map +1 -0
- package/dist/types/Agent.types.d.ts +60 -0
- package/dist/types/Agent.types.d.ts.map +1 -0
- package/dist/types/Agent.types.js +9 -0
- package/dist/types/Agent.types.js.map +1 -0
- package/dist/types/Flows.types.d.ts +232 -0
- package/dist/types/Flows.types.d.ts.map +1 -0
- package/dist/types/Flows.types.js +65 -0
- package/dist/types/Flows.types.js.map +1 -0
- package/dist/types/LLM.types.d.ts +7 -0
- package/dist/types/LLM.types.d.ts.map +1 -0
- package/dist/types/LLM.types.js +11 -0
- package/dist/types/LLM.types.js.map +1 -0
- package/dist/types/LangGraph.types.d.ts +45 -0
- package/dist/types/LangGraph.types.d.ts.map +1 -0
- package/dist/types/LangGraph.types.js +77 -0
- package/dist/types/LangGraph.types.js.map +1 -0
- package/dist/types/Platform.types.d.ts +7 -0
- package/dist/types/Platform.types.d.ts.map +1 -0
- package/dist/types/Platform.types.js +11 -0
- package/dist/types/Platform.types.js.map +1 -0
- package/dist/types/Tools.types.d.ts +26 -0
- package/dist/types/Tools.types.d.ts.map +1 -0
- package/dist/types/Tools.types.js +3 -0
- package/dist/types/Tools.types.js.map +1 -0
- package/dist/types/Voice.types.d.ts +5 -0
- package/dist/types/Voice.types.d.ts.map +1 -0
- package/dist/types/Voice.types.js +3 -0
- package/dist/types/Voice.types.js.map +1 -0
- package/dist/utils/agentUtils.d.ts +5 -0
- package/dist/utils/agentUtils.d.ts.map +1 -0
- package/dist/utils/agentUtils.js +97 -0
- package/dist/utils/agentUtils.js.map +1 -0
- package/dist/utils/extractStateMemoryResponse.d.ts +5 -0
- package/dist/utils/extractStateMemoryResponse.d.ts.map +1 -0
- package/dist/utils/extractStateMemoryResponse.js +91 -0
- package/dist/utils/extractStateMemoryResponse.js.map +1 -0
- package/dist/utils/history.d.ts +4 -0
- package/dist/utils/history.d.ts.map +1 -0
- package/dist/utils/history.js +33 -0
- package/dist/utils/history.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +39 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/schemaUtils.d.ts +15 -0
- package/dist/utils/schemaUtils.d.ts.map +1 -0
- package/dist/utils/schemaUtils.js +56 -0
- package/dist/utils/schemaUtils.js.map +1 -0
- package/dist/utils/wait.d.ts +2 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +6 -0
- package/dist/utils/wait.js.map +1 -0
- package/dist/voice/elevenLabsUtils.d.ts +65 -0
- package/dist/voice/elevenLabsUtils.d.ts.map +1 -0
- package/dist/voice/elevenLabsUtils.js +4 -0
- package/dist/voice/elevenLabsUtils.js.map +1 -0
- package/dist/voice/voiceSession.d.ts +37 -0
- package/dist/voice/voiceSession.d.ts.map +1 -0
- package/dist/voice/voiceSession.js +306 -0
- package/dist/voice/voiceSession.js.map +1 -0
- package/docs/.gitbook/assets/ADLC.png +0 -0
- package/docs/.gitbook/assets/PII-masking.png +0 -0
- package/docs/.gitbook/assets/image.png +0 -0
- package/docs/.gitbook/assets/on-prem.svg +4 -0
- package/docs/README.md +54 -0
- package/docs/SUMMARY.md +56 -0
- package/docs/examples/order-refund-flow.md +566 -0
- package/docs/getting-started/environment-configuration.md +158 -0
- package/docs/getting-started/installation.md +44 -0
- package/docs/getting-started/project-configuration.md +206 -0
- package/docs/getting-started/quick-start.md +262 -0
- package/docs/integrations/zendesk.md +554 -0
- package/docs/low-code-editor/edges.md +396 -0
- package/docs/low-code-editor/flows.md +74 -0
- package/docs/low-code-editor/nodes.md +367 -0
- package/docs/low-code-editor/playbooks.md +280 -0
- package/docs/low-code-editor/tools.md +358 -0
- package/docs/low-code-editor/triggers.md +182 -0
- package/docs/platform/on-prem.md +182 -0
- package/docs/platform/operator.md +89 -0
- package/docs/platform/pii-masking.md +221 -0
- package/docs/platform/scenarios.md +43 -0
- package/docs/platform/secrets.md +99 -0
- package/docs/platform/sso.md +27 -0
- package/docs/resources/your-first-eval.md +108 -0
- package/docs/sdk/agent-api.md +540 -0
- package/docs/sdk/debugging.md +80 -0
- package/docs/sdk/events.md +595 -0
- package/docs/sdk/logging.md +72 -0
- package/docs/sdk/memory.md +271 -0
- package/docs/sdk/parallel-llm.md +242 -0
- package/docs/sdk/vectorstore-query.md +60 -0
- package/docs/tooling/classifier.md +217 -0
- package/docs/tooling/document-processing.md +389 -0
- package/docs/tooling/extraction.md +78 -0
- package/docs/tooling/timers.md +61 -0
- package/package.json +73 -0
- package/src/agent.ts +1019 -0
- package/src/browserTask/executeBrowserTask.py +153 -0
- package/src/browserTask/executeBrowserTask.ts +253 -0
- package/src/browserTask/localBrowserTask.ts +300 -0
- package/src/browserTask/profile/Default/Extension Rules/000003.log +0 -0
- package/src/browserTask/profile/Default/Extension Scripts/000003.log +0 -0
- package/src/browserTask/profile/Default/Extension State/000003.log +0 -0
- package/src/browserTask/profile/Default/GCM Store/000003.log +0 -0
- package/src/browserTask/profile/Default/Local Storage/leveldb/000004.log +0 -0
- package/src/browserTask/profile/Default/Session Storage/000003.log +0 -0
- package/src/browserTask/profile/Default/Site Characteristics Database/000003.log +0 -0
- package/src/browserTask/profile/Default/Sync Data/LevelDB/000003.log +0 -0
- package/src/browserTask/profile/Default/shared_proto_db/000003.log +0 -0
- package/src/browserTask/profile/Default/shared_proto_db/metadata/000003.log +0 -0
- package/src/browserTask/types.ts +37 -0
- package/src/checkpointer/checkpointSaverFactory.ts +18 -0
- package/src/cli/index.ts +188 -0
- package/src/cli/lambdaHandlerTemplate.ts +78 -0
- package/src/cli/localOperatorSetup.ts +308 -0
- package/src/debugging/index.ts +1 -0
- package/src/debugging/llmCallbackHandler.ts +125 -0
- package/src/edges/createDirectEdge.ts +22 -0
- package/src/edges/createLogicalRouter.ts +182 -0
- package/src/edges/createPromptRouter.ts +213 -0
- package/src/edges/edgeFactory.ts +167 -0
- package/src/events/AgentEvents.ts +58 -0
- package/src/events/index.ts +3 -0
- package/src/index.ts +105 -0
- package/src/interfaces/zendesk.ts +212 -0
- package/src/internalTools/appActionRunnerTool.ts +68 -0
- package/src/internalTools/documentExtraction/documentExtraction.ts +804 -0
- package/src/internalTools/documentExtraction/types.ts +59 -0
- package/src/internalTools/libraryActionRunnerTool.ts +62 -0
- package/src/internalTools/timer.ts +125 -0
- package/src/internalTools/voice/escalateVoiceCall.ts +15 -0
- package/src/internalTools/voice/retell.ts +28 -0
- package/src/internalTools/voice/sendPlaceholderMessage.ts +27 -0
- package/src/interrupts/BaseInterruptSessionManager.ts +80 -0
- package/src/interrupts/MemoryInterruptSessionManager.ts +63 -0
- package/src/interrupts/MindedInterruptSessionManager.ts +163 -0
- package/src/interrupts/interruptSessionManagerFactory.ts +20 -0
- package/src/llm/createLlmInstance.ts +33 -0
- package/src/nodes/addAppToolNode.ts +111 -0
- package/src/nodes/addBrowserTaskNode.ts +191 -0
- package/src/nodes/addBrowserTaskRunNode.ts +190 -0
- package/src/nodes/addHumanInTheLoopNode.ts +26 -0
- package/src/nodes/addJumpToNode.ts +26 -0
- package/src/nodes/addJunctionNode.ts +21 -0
- package/src/nodes/addPromptNode.ts +305 -0
- package/src/nodes/addRpaNode.ts +217 -0
- package/src/nodes/addToolNode.ts +84 -0
- package/src/nodes/addToolRunNode.ts +80 -0
- package/src/nodes/addTriggerNode.ts +27 -0
- package/src/nodes/compilePrompt.ts +44 -0
- package/src/nodes/nodeFactory.ts +61 -0
- package/src/nodes/rpaStepsExecutor.ts +175 -0
- package/src/platform/config.ts +89 -0
- package/src/platform/mindedCheckpointSaver.ts +146 -0
- package/src/platform/mindedConnection.ts +250 -0
- package/src/platform/mindedConnectionTypes.ts +495 -0
- package/src/platform/models/mindedChatOpenAI.ts +49 -0
- package/src/platform/models/parallelWrapper.ts +141 -0
- package/src/platform/piiGateway/gateway.ts +103 -0
- package/src/platform/piiGateway/index.ts +5 -0
- package/src/platform/piiGateway/types.ts +29 -0
- package/src/platform/toolExecutor.ts +106 -0
- package/src/platform/utils/parseAttachments.ts +56 -0
- package/src/platform/utils/tools.ts +55 -0
- package/src/playbooks/playbooks.ts +200 -0
- package/src/toolsLibrary/classifier.ts +326 -0
- package/src/toolsLibrary/extraction.ts +393 -0
- package/src/toolsLibrary/index.ts +10 -0
- package/src/toolsLibrary/parseDocument.ts +129 -0
- package/src/triggers/triggerTypeToDefaultMessage.ts +9 -0
- package/src/types/Agent.types.ts +73 -0
- package/src/types/Flows.types.ts +262 -0
- package/src/types/LLM.types.ts +15 -0
- package/src/types/LangGraph.types.ts +86 -0
- package/src/types/Platform.types.ts +6 -0
- package/src/types/Tools.types.ts +28 -0
- package/src/types/Voice.types.ts +4 -0
- package/src/utils/agentUtils.ts +69 -0
- package/src/utils/history.ts +38 -0
- package/src/utils/logger.ts +38 -0
- package/src/utils/schemaUtils.ts +68 -0
- package/src/utils/wait.ts +1 -0
- package/src/voice/elevenLabsUtils.ts +81 -0
- package/src/voice/voiceSession.ts +309 -0
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
# Zendesk Integration
|
|
2
|
+
|
|
3
|
+
The Zendesk integration enables your Minded agents to seamlessly interact with Zendesk tickets, conversations, and customer data. This integration provides a complete interface for building intelligent customer support agents that can handle ticket management, customer communication, and workflow automation.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
The Zendesk integration provides:
|
|
8
|
+
|
|
9
|
+
- **Ticket Management** - Create, update, and manage ticket status
|
|
10
|
+
- **Customer Communication** - Send messages and comments
|
|
11
|
+
- **Conversation Handling** - Access conversation history and context
|
|
12
|
+
- **Tag Management** - Add and manage ticket tags
|
|
13
|
+
- **Custom Fields** - Set and update custom field values
|
|
14
|
+
- **Search Capabilities** - Search tickets and conversations
|
|
15
|
+
- **Real-time Updates** - Receive and respond to Zendesk events
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
|
|
19
|
+
### 1. Basic Setup
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { Agent } from '@minded/sdk';
|
|
23
|
+
import { zendesk } from '@minded/sdk/interfaces/zendesk';
|
|
24
|
+
import { events } from '@minded/sdk';
|
|
25
|
+
|
|
26
|
+
const agent = new Agent({
|
|
27
|
+
memorySchema: yourMemorySchema,
|
|
28
|
+
config: mindedConfig,
|
|
29
|
+
tools: yourTools,
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Initialize Zendesk interface
|
|
33
|
+
zendesk.init(agent);
|
|
34
|
+
|
|
35
|
+
// Handle AI messages - send them to Zendesk
|
|
36
|
+
agent.on(events.AI_MESSAGE, async ({ message, state }) => {
|
|
37
|
+
await zendesk.sendMessage(state.sessionId!, message);
|
|
38
|
+
});
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### 2. Trigger Configuration
|
|
42
|
+
|
|
43
|
+
Configure your flow with a Zendesk trigger:
|
|
44
|
+
|
|
45
|
+
```yaml
|
|
46
|
+
# flows/zendeskFlow.yaml
|
|
47
|
+
name: Zendesk Support Flow
|
|
48
|
+
nodes:
|
|
49
|
+
- name: Zendesk-Trigger
|
|
50
|
+
type: trigger
|
|
51
|
+
triggerType: app
|
|
52
|
+
appTriggerId: zendesk-interface
|
|
53
|
+
appTriggerName: Zendesk Minded Conversation
|
|
54
|
+
appName: Zendesk
|
|
55
|
+
|
|
56
|
+
- name: Support-Agent
|
|
57
|
+
type: promptNode
|
|
58
|
+
prompt: |
|
|
59
|
+
You are a helpful customer support agent.
|
|
60
|
+
Respond to the customer's inquiry professionally and helpfully.
|
|
61
|
+
|
|
62
|
+
edges:
|
|
63
|
+
- source: Zendesk-Trigger
|
|
64
|
+
target: Support-Agent
|
|
65
|
+
type: stepForward
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Available Methods
|
|
69
|
+
|
|
70
|
+
### Core Communication
|
|
71
|
+
|
|
72
|
+
#### `sendMessage(sessionId: string, message: string)`
|
|
73
|
+
|
|
74
|
+
Send a message to the customer in the Zendesk conversation.
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
await zendesk.sendMessage(sessionId, 'Hello! How can I help you today?');
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### `sendComment(sessionId: string, comment: string)`
|
|
81
|
+
|
|
82
|
+
Add an internal comment to the ticket (not visible to customer).
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
await zendesk.sendComment(sessionId, 'Customer issue escalated to tier 2');
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
#### `sendPublicComment(sessionId: string, comment: string)`
|
|
89
|
+
|
|
90
|
+
Add a public comment to the ticket (visible to customer).
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
await zendesk.sendPublicComment(sessionId, 'Issue resolved - closing ticket');
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Conversation Management
|
|
97
|
+
|
|
98
|
+
#### `getConversation(sessionId: string)`
|
|
99
|
+
|
|
100
|
+
Retrieve the complete conversation context.
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const conversation = await zendesk.getConversation(sessionId);
|
|
104
|
+
console.log(conversation);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### `getConversationMessages(sessionId: string)`
|
|
108
|
+
|
|
109
|
+
Get all messages in the conversation.
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
const messages = await zendesk.getConversationMessages(sessionId);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Ticket Operations
|
|
116
|
+
|
|
117
|
+
#### `getTicket(sessionId: string)`
|
|
118
|
+
|
|
119
|
+
Retrieve ticket information and metadata.
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
const ticket = await zendesk.getTicket(sessionId);
|
|
123
|
+
console.log(`Ticket status: ${ticket.status}`);
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### `createTicket(params)`
|
|
127
|
+
|
|
128
|
+
Create a new ticket with specified parameters.
|
|
129
|
+
|
|
130
|
+
```typescript
|
|
131
|
+
await zendesk.createTicket({
|
|
132
|
+
sessionId: sessionId,
|
|
133
|
+
subject: 'Customer inquiry about order #12345',
|
|
134
|
+
ticketBody: 'Customer is asking about their order status',
|
|
135
|
+
priority: 'normal',
|
|
136
|
+
tags: ['order-inquiry', 'customer-support'],
|
|
137
|
+
customFields: [
|
|
138
|
+
{ id: 123, value: 'urgent' },
|
|
139
|
+
{ id: 456, value: 'premium-customer' },
|
|
140
|
+
],
|
|
141
|
+
});
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### `markTicketAsSolved(sessionId: string)`
|
|
145
|
+
|
|
146
|
+
Mark a ticket as solved.
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
await zendesk.markTicketAsSolved({ sessionId });
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
#### `markTicketAsOpen(sessionId: string)`
|
|
153
|
+
|
|
154
|
+
Reopen a closed ticket.
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
await zendesk.markTicketAsOpen({ sessionId });
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Tag and Field Management
|
|
161
|
+
|
|
162
|
+
#### `addTag(sessionId: string, tag: string)`
|
|
163
|
+
|
|
164
|
+
Add a tag to the ticket.
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
await zendesk.addTag(sessionId, 'escalated');
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
#### `setCustomFields(sessionId: string, fields: any[])`
|
|
171
|
+
|
|
172
|
+
Set custom field values on the ticket.
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
await zendesk.setCustomFields({
|
|
176
|
+
sessionId,
|
|
177
|
+
fields: [
|
|
178
|
+
{ id: 123, value: 'high-priority' },
|
|
179
|
+
{ id: 456, value: 'technical-issue' },
|
|
180
|
+
],
|
|
181
|
+
});
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
#### `search(sessionId: string, query: string)`
|
|
185
|
+
|
|
186
|
+
Search tickets and conversations.
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
const results = await zendesk.search({
|
|
190
|
+
sessionId,
|
|
191
|
+
query: 'customer:john.doe@example.com status:open',
|
|
192
|
+
});
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Complete Example
|
|
196
|
+
|
|
197
|
+
Here's a comprehensive example of a Zendesk customer support agent:
|
|
198
|
+
|
|
199
|
+
### Project Structure
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
zendesk-agent/
|
|
203
|
+
├── minded.json
|
|
204
|
+
├── schema.ts
|
|
205
|
+
├── zendeskAgent.ts
|
|
206
|
+
├── flows/
|
|
207
|
+
│ └── supportFlow.yaml
|
|
208
|
+
└── tools/
|
|
209
|
+
├── escalateIssue.ts
|
|
210
|
+
├── lookupOrder.ts
|
|
211
|
+
└── index.ts
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
### Configuration
|
|
215
|
+
|
|
216
|
+
**`minded.json`:**
|
|
217
|
+
|
|
218
|
+
```json
|
|
219
|
+
{
|
|
220
|
+
"flows": ["./flows"],
|
|
221
|
+
"tools": ["./tools"],
|
|
222
|
+
"agent": "./zendeskAgent.ts",
|
|
223
|
+
"llm": {
|
|
224
|
+
"name": "AzureChatOpenAI",
|
|
225
|
+
"properties": {
|
|
226
|
+
"model": "gpt-4o",
|
|
227
|
+
"temperature": 0.7
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Memory Schema
|
|
234
|
+
|
|
235
|
+
**`schema.ts`:**
|
|
236
|
+
|
|
237
|
+
```typescript
|
|
238
|
+
import { z } from 'zod';
|
|
239
|
+
|
|
240
|
+
export default z.object({
|
|
241
|
+
// Customer information
|
|
242
|
+
customerName: z.string().optional(),
|
|
243
|
+
customerEmail: z.string().optional(),
|
|
244
|
+
customerId: z.string().optional(),
|
|
245
|
+
|
|
246
|
+
// Issue tracking
|
|
247
|
+
issueType: z.enum(['billing', 'technical', 'general', 'escalation']).optional(),
|
|
248
|
+
issueDescription: z.string().optional(),
|
|
249
|
+
priority: z.enum(['low', 'normal', 'high', 'urgent']).optional(),
|
|
250
|
+
|
|
251
|
+
// Ticket information
|
|
252
|
+
ticketId: z.string().optional(),
|
|
253
|
+
ticketStatus: z.string().optional(),
|
|
254
|
+
ticketTags: z.array(z.string()).optional(),
|
|
255
|
+
|
|
256
|
+
// Resolution tracking
|
|
257
|
+
resolution: z.string().optional(),
|
|
258
|
+
resolved: z.boolean().optional(),
|
|
259
|
+
escalated: z.boolean().optional(),
|
|
260
|
+
|
|
261
|
+
// Conversation context
|
|
262
|
+
conversationStage: z.enum(['greeting', 'information_gathering', 'issue_resolution', 'closing']).optional(),
|
|
263
|
+
});
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### Agent Implementation
|
|
267
|
+
|
|
268
|
+
**`zendeskAgent.ts`:**
|
|
269
|
+
|
|
270
|
+
```typescript
|
|
271
|
+
import { Agent } from '@minded/sdk';
|
|
272
|
+
import { zendesk } from '@minded/sdk/interfaces/zendesk';
|
|
273
|
+
import { events } from '@minded/sdk';
|
|
274
|
+
import { HumanMessage } from '@langchain/core/messages';
|
|
275
|
+
import memorySchema from './schema';
|
|
276
|
+
import tools from './tools';
|
|
277
|
+
import mindedConfig from './minded.json';
|
|
278
|
+
|
|
279
|
+
const agent = new Agent({
|
|
280
|
+
memorySchema,
|
|
281
|
+
config: mindedConfig,
|
|
282
|
+
tools,
|
|
283
|
+
});
|
|
284
|
+
|
|
285
|
+
// Initialize Zendesk interface
|
|
286
|
+
zendesk.init(agent);
|
|
287
|
+
|
|
288
|
+
// Handle AI messages
|
|
289
|
+
agent.on(events.AI_MESSAGE, async ({ message, state }) => {
|
|
290
|
+
await zendesk.sendMessage(state.sessionId!, message);
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
// Handle trigger events from Zendesk
|
|
294
|
+
agent.on(events.TRIGGER_EVENT, async ({ triggerBody, sessionId }) => {
|
|
295
|
+
// Qualify the trigger and set initial context
|
|
296
|
+
const isValidTrigger = triggerBody.content && triggerBody.content.trim().length > 0;
|
|
297
|
+
|
|
298
|
+
if (!isValidTrigger) {
|
|
299
|
+
return { isQualified: false };
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return {
|
|
303
|
+
isQualified: true,
|
|
304
|
+
messages: [new HumanMessage({ content: triggerBody.content })],
|
|
305
|
+
sessionId,
|
|
306
|
+
memory: {
|
|
307
|
+
conversationStage: 'greeting',
|
|
308
|
+
customerEmail: triggerBody.customerEmail,
|
|
309
|
+
ticketId: triggerBody.ticketId,
|
|
310
|
+
},
|
|
311
|
+
};
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
// Handle escalation events
|
|
315
|
+
agent.on(events.MEMORY_UPDATE, async ({ memory, state }) => {
|
|
316
|
+
if (memory.escalated && !memory.resolved) {
|
|
317
|
+
await zendesk.addTag(state.sessionId!, 'escalated');
|
|
318
|
+
await zendesk.sendComment(state.sessionId!, `Issue escalated: ${memory.issueDescription}`);
|
|
319
|
+
}
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
export default agent;
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
### Flow Definition
|
|
326
|
+
|
|
327
|
+
**`flows/supportFlow.yaml`:**
|
|
328
|
+
|
|
329
|
+
```yaml
|
|
330
|
+
name: Zendesk Support Flow
|
|
331
|
+
nodes:
|
|
332
|
+
- name: Zendesk-Trigger
|
|
333
|
+
type: trigger
|
|
334
|
+
triggerType: app
|
|
335
|
+
appTriggerId: zendesk-interface
|
|
336
|
+
appTriggerName: Zendesk Minded Conversation
|
|
337
|
+
appName: Zendesk
|
|
338
|
+
|
|
339
|
+
- name: Support-Agent
|
|
340
|
+
type: promptNode
|
|
341
|
+
prompt: |
|
|
342
|
+
You are a professional customer support agent.
|
|
343
|
+
|
|
344
|
+
Customer Context:
|
|
345
|
+
- Email: {{memory.customerEmail}}
|
|
346
|
+
- Issue Type: {{memory.issueType}}
|
|
347
|
+
- Priority: {{memory.priority}}
|
|
348
|
+
- Stage: {{memory.conversationStage}}
|
|
349
|
+
|
|
350
|
+
Guidelines:
|
|
351
|
+
1. Be empathetic and professional
|
|
352
|
+
2. Gather necessary information about the issue
|
|
353
|
+
3. Provide clear solutions or next steps
|
|
354
|
+
4. Escalate complex issues when needed
|
|
355
|
+
5. Always confirm resolution before closing
|
|
356
|
+
|
|
357
|
+
If this is the first interaction, greet the customer and ask about their issue.
|
|
358
|
+
|
|
359
|
+
- name: Escalate-Issue
|
|
360
|
+
type: tool
|
|
361
|
+
toolName: escalateIssue
|
|
362
|
+
|
|
363
|
+
- name: Resolve-Issue
|
|
364
|
+
type: promptNode
|
|
365
|
+
prompt: |
|
|
366
|
+
The issue has been resolved. Please:
|
|
367
|
+
1. Summarize the solution provided
|
|
368
|
+
2. Ask if the customer needs anything else
|
|
369
|
+
3. Thank them for their patience
|
|
370
|
+
|
|
371
|
+
edges:
|
|
372
|
+
- source: Zendesk-Trigger
|
|
373
|
+
target: Support-Agent
|
|
374
|
+
type: stepForward
|
|
375
|
+
|
|
376
|
+
- source: Support-Agent
|
|
377
|
+
target: Escalate-Issue
|
|
378
|
+
type: promptCondition
|
|
379
|
+
prompt: Customer issue requires escalation to a specialist
|
|
380
|
+
|
|
381
|
+
- source: Support-Agent
|
|
382
|
+
target: Resolve-Issue
|
|
383
|
+
type: promptCondition
|
|
384
|
+
prompt: Customer issue has been resolved successfully
|
|
385
|
+
|
|
386
|
+
- source: Escalate-Issue
|
|
387
|
+
target: Support-Agent
|
|
388
|
+
type: stepForward
|
|
389
|
+
|
|
390
|
+
- source: Resolve-Issue
|
|
391
|
+
target: Support-Agent
|
|
392
|
+
type: promptCondition
|
|
393
|
+
prompt: Customer has additional questions or issues
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### Tools Implementation
|
|
397
|
+
|
|
398
|
+
**`tools/escalateIssue.ts`:**
|
|
399
|
+
|
|
400
|
+
```typescript
|
|
401
|
+
import { Tool } from '@minded/sdk';
|
|
402
|
+
import { zendesk } from '@minded/sdk/interfaces/zendesk';
|
|
403
|
+
import { z } from 'zod';
|
|
404
|
+
|
|
405
|
+
const escalateIssue: Tool<any, any> = {
|
|
406
|
+
name: 'escalateIssue',
|
|
407
|
+
description: 'Escalate a customer issue to a specialist',
|
|
408
|
+
inputSchema: z.object({
|
|
409
|
+
reason: z.string().describe('Reason for escalation'),
|
|
410
|
+
priority: z.enum(['high', 'urgent']).describe('Escalation priority'),
|
|
411
|
+
}),
|
|
412
|
+
func: async ({ reason, priority }, { memory, sessionId }) => {
|
|
413
|
+
// Add escalation tag
|
|
414
|
+
await zendesk.addTag(sessionId!, 'escalated');
|
|
415
|
+
|
|
416
|
+
// Set priority
|
|
417
|
+
await zendesk.setCustomFields({
|
|
418
|
+
sessionId: sessionId!,
|
|
419
|
+
fields: [{ id: 123, value: priority }], // Assuming field ID 123 is priority
|
|
420
|
+
});
|
|
421
|
+
|
|
422
|
+
// Add internal comment
|
|
423
|
+
await zendesk.sendComment(sessionId!, `ESCALATED: ${reason} - Priority: ${priority}`);
|
|
424
|
+
|
|
425
|
+
return {
|
|
426
|
+
success: true,
|
|
427
|
+
message: `Issue escalated with priority: ${priority}`,
|
|
428
|
+
memory: {
|
|
429
|
+
...memory,
|
|
430
|
+
escalated: true,
|
|
431
|
+
priority: priority,
|
|
432
|
+
},
|
|
433
|
+
};
|
|
434
|
+
},
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
export default escalateIssue;
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
## Best Practices
|
|
441
|
+
|
|
442
|
+
### 1. Error Handling
|
|
443
|
+
|
|
444
|
+
Always implement proper error handling for Zendesk operations:
|
|
445
|
+
|
|
446
|
+
```typescript
|
|
447
|
+
agent.on(events.AI_MESSAGE, async ({ message, state }) => {
|
|
448
|
+
try {
|
|
449
|
+
await zendesk.sendMessage(state.sessionId!, message);
|
|
450
|
+
} catch (err) {
|
|
451
|
+
logger.error({ message: 'Failed to send message to Zendesk', err });
|
|
452
|
+
// Implement fallback or retry logic
|
|
453
|
+
}
|
|
454
|
+
});
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### 2. Memory Management
|
|
458
|
+
|
|
459
|
+
Use memory to maintain context across the conversation:
|
|
460
|
+
|
|
461
|
+
```typescript
|
|
462
|
+
// Track conversation progress
|
|
463
|
+
memory.conversationStage = 'information_gathering';
|
|
464
|
+
|
|
465
|
+
// Store important customer data
|
|
466
|
+
memory.customerEmail = triggerBody.customerEmail;
|
|
467
|
+
memory.issueType = 'billing';
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### 3. Trigger Qualification
|
|
471
|
+
|
|
472
|
+
Implement proper trigger qualification to handle only relevant events:
|
|
473
|
+
|
|
474
|
+
```typescript
|
|
475
|
+
agent.on(events.TRIGGER_EVENT, async ({ triggerBody, sessionId }) => {
|
|
476
|
+
// Only process triggers with actual content
|
|
477
|
+
if (!triggerBody.content || triggerBody.content.trim().length === 0) {
|
|
478
|
+
return { isQualified: false };
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
// Skip automated messages
|
|
482
|
+
if (triggerBody.isAutomated) {
|
|
483
|
+
return { isQualified: false };
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
return { isQualified: true };
|
|
487
|
+
});
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
### 4. Tag Management
|
|
491
|
+
|
|
492
|
+
Use tags consistently for tracking and automation:
|
|
493
|
+
|
|
494
|
+
```typescript
|
|
495
|
+
// Add tags based on issue type
|
|
496
|
+
if (memory.issueType === 'billing') {
|
|
497
|
+
await zendesk.addTag(sessionId, 'billing-issue');
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
// Track resolution status
|
|
501
|
+
if (memory.resolved) {
|
|
502
|
+
await zendesk.addTag(sessionId, 'resolved-by-ai');
|
|
503
|
+
}
|
|
504
|
+
```
|
|
505
|
+
|
|
506
|
+
### 5. Custom Fields
|
|
507
|
+
|
|
508
|
+
Leverage custom fields for enhanced workflow automation:
|
|
509
|
+
|
|
510
|
+
```typescript
|
|
511
|
+
// Set custom fields for reporting and automation
|
|
512
|
+
await zendesk.setCustomFields({
|
|
513
|
+
sessionId,
|
|
514
|
+
fields: [
|
|
515
|
+
{ id: 123, value: memory.priority },
|
|
516
|
+
{ id: 456, value: memory.issueType },
|
|
517
|
+
{ id: 789, value: 'ai-handled' },
|
|
518
|
+
],
|
|
519
|
+
});
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
## Integration Architecture
|
|
523
|
+
|
|
524
|
+
The Zendesk integration follows this architecture:
|
|
525
|
+
|
|
526
|
+
1. **Trigger Events** - Zendesk sends events to your agent
|
|
527
|
+
2. **Agent Processing** - Your agent processes the event and determines response
|
|
528
|
+
3. **Zendesk API Calls** - Agent makes calls back to Zendesk via the interface
|
|
529
|
+
4. **Real-time Updates** - Changes are reflected in Zendesk immediately
|
|
530
|
+
|
|
531
|
+
This architecture ensures seamless bi-directional communication between your Minded agent and Zendesk, enabling sophisticated customer support automation while maintaining full control over the conversation flow.
|
|
532
|
+
|
|
533
|
+
## Troubleshooting
|
|
534
|
+
|
|
535
|
+
### Common Issues
|
|
536
|
+
|
|
537
|
+
1. **Connection Issues**: Ensure your Zendesk credentials are properly configured
|
|
538
|
+
2. **Permission Errors**: Verify your Zendesk API permissions include required scopes
|
|
539
|
+
3. **Rate Limiting**: Implement proper rate limiting and retry logic
|
|
540
|
+
4. **Session Management**: Ensure sessionId is properly maintained across requests
|
|
541
|
+
|
|
542
|
+
### Debug Mode
|
|
543
|
+
|
|
544
|
+
Enable debug logging to troubleshoot issues:
|
|
545
|
+
|
|
546
|
+
```typescript
|
|
547
|
+
// Add debugging to your agent
|
|
548
|
+
agent.on(events.AI_MESSAGE, async ({ message, state }) => {
|
|
549
|
+
console.log('Sending message to Zendesk:', { message, sessionId: state.sessionId });
|
|
550
|
+
await zendesk.sendMessage(state.sessionId!, message);
|
|
551
|
+
});
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
For additional support, consult the [Minded platform documentation](../platform) or contact support.
|