Skip to the reply box
Contact center prototypeFictional utility // deterministic NLU, no LLM callsfullbuild.ai ↗
RelayProactive outreach, both ends of the wire
Hollowell Power & LightCHAT

Event ledger

  • EV-2214Payment reminder cycleIDLE
  • EV-2231Planned outage BR-7ARMED
  • EV-2240Storm watch digestIDLE

Flow

TRIGGERDIAL OUTLISTENANSWEROPT INPOLICYHANDOVERWRAP UP

Last inbound read

No inbound yet · assistant holds the line

IN 0OUT 0CONF ··CH CHATMODE BOTT 00:00

What Relay maps to in Cognigy and CXone

Every piece above was built by hand, and every piece has a name in Cognigy, CXone and Omilia. Same row, same idea, three vocabularies.

In RelayCognigyNICE CXoneOn a client project
Event ledger arms EV-2231, fires, assistant dials outAPI call into an Endpoint kicks off the flowProactive AI Agent campaign · Personal Connection outboundWire the client's event source (billing, outage, CRM) to the trigger
Flow reducer: TRIGGER → DIAL OUT → LISTEN → ANSWER → HANDOVER → WRAP UPFlow canvas: Say, Question, Logic, Code nodesStudio script routes the interactionBuild flows on the canvas, drop to Code Nodes when logic outgrows drag and drop
Keyword scorer, confidence 0 to 0.97, threshold 0.45Intents trained on example sentences, confidence threshold plus reconfirmation bandOmilia side: deepNLU inside miniAppsWrite example sentences, tune thresholds, review what missed in the transcripts
Entity extractors: phone, time, equipment termsLexicon keyphrases carry the slot, which fills on any message, independent of the intentOmilia miniApps each collect one thing: address, card, dateDefine lexicons for the client's vocabulary, attach slot fillers to questions
expect: optin_confirm, so yes or no answers the open question instead of re-classifyingQuestion node holds the expected answer type, session Context carries stateStudio variables carry state across the scriptDesign questions so answers land in context, and confirm before acting on them
Escalation rules: medical device, two misses, ask for a personHandover conditions on the flowRoute to an ACD skill and queueEncode the client's escalation policy. Vulnerable-customer rules are policy, never model judgment
Handover packet: summary lines, slots, intents seenHandover to Agent node passes conversation and contextScreen pop on the agent desktop · Agent SDKDecide exactly what the human sees, so the customer never repeats themselves
Suggested replies at the desk, built from session stateAgent CopilotAgent Assist hubTemplates from context first, generative drafting only where the client accepts the risk
Chat pane re-skins to SMS mid-conversationOne flow, many Endpoints (webchat, SMS, voice)Digital channels on one routing layerSame flow logic per channel, channel-specific rendering and consent
Wrap card: computed disposition, mean confidence, sentimentInsights: transcripts and analyticsDisposition and wrap-up codes on the ACDDefine dispositions with ops so they can measure containment, the conversations the assistant finishes without a human
19 tests on the engine and its contract, run with node --testPlaybooks: scripted conversations asserting outcomesQA cycle in the release processWrite conversation tests before release, fix what the QA cycle finds
Engine and scenario live in git, deterministicSnapshots, pulled and pushed with cognigy-cliTenant promotion dev, test, prodKeep agents in version control, promote snapshots, never hand-edit prod
ACD
the router that hands conversations to human agents, by skill and queue
NLU
the layer that reads what the customer wrote, works out what they want, and pulls the details out of it
MCP
the standard that lets an outside AI call a platform's functions as tools

How a client project runs

  1. Discovery: map the client's triggers, channels, escalation policy, and the disposition list ops actually reports on
  2. Build flows on the canvas, Code Nodes where the logic gets real
  3. Integrations: REST lookups into the client's systems from inside the flow, for account, order, outage
  4. Tune the NLU: seed example sentences, read live transcripts, fix missed intents, adjust thresholds. This loop is most of the ongoing work
  5. Wire the handover: ACD skills and queues, plus what the agent desktop shows on arrival
  6. Test with scripted conversations that assert outcomes, then fix what QA finds
  7. Ship a snapshot dev to test to prod. Production support afterward is mostly reading dialog logs, which is the same work as step 4

Where this is heading, July 2026

  • NiCE bought Cognigy, closing in 2025. NICE Proactive AI Agent and Cognigy are one platform family now, Omilia stands on its own
  • All three expose MCP surfaces: the Cognigy MCP Server took OAuth in release 2026.12, CXone 26.2 connects agents to MCP servers without manual schema setup, and Omilia publishes MCP servers on GitHub
  • The Cognigy CLI pulls a whole agent down to JSON in git. Agents plus config as code is how I already work every day, and the platforms are converging on it

Relay on Cognigy

Read the build on GitHub
webchat endpoint2026-08-02one unbroken session

The assistant opens before the customer asks. That is the flow's Once node firing on first contact, and every message after it crosses the intent switch to exactly one branch.

Once, On First Time
the announce, before anything is asked
ask_duration
the window, and what happens if crews run past it
sms_optin
offers the reminder against the number on file
medical_equipment
the equipment slot fills and the flow hands over

One conversation here. Eight branches below, replayed against the same tenant and asserted line by line.

cognigy run playbooks2026-08-020 failed

Each playbook opens on Hi, who is this, asserts the greeting and the announce, then probes one branch

  1. relay-01

    How long will the power be out

    ask_durationintent text2/2

  2. relay-02

    Why is this happening

    ask_reasonintent text2/2

  3. relay-03

    Will I get a credit on my bill

    ask_compensationintent text2/2

  4. relay-04

    Can you text me a reminder

    sms_optinintent text2/2

  5. relay-05

    There's an oxygen concentrator at home

    medical_equipmentequipmentintent slot text3/3

  6. relay-06

    Get me a real person

    agent_requestintent text2/2

  7. relay-07

    Thanks, that's all I needed

    thanks_doneintent text2/2

  8. relay-08

    purple monkey dishwasher

    no intent, default branchtext1/1

playbooks
8
steps
16
asserts
32