Edge-deployed on Cloudflare · 99.99% uptime

Real-time message control for cloud contact centers.

Update Emergency and Closure prompts on your IVR in seconds — from a browser, an email, or even a phone call. Per-PIN isolation, full audit trail, every channel governed by the same trust list.

4
Channels — web, email, IVR, API
< 2s
Change propagation to live IVR
100%
Per-PIN tenant isolation
Core capabilities

The control plane your IVR was missing.

Operators shouldn't need a developer to change what callers hear. MSGManager gives every team direct, governed control over the prompts that matter most.

Toggle ON / OFF instantly

Enable or disable the Emergency or Closure message with one click. Next call hears the change.

Update message text

Edit the spoken prompt in plain language. Preview the TTS audio before publishing to callers.

Check live status

See what's currently playing, when it last changed, and which operator made the change.

Multi-channel control

Same state, four channels — web app, email, IVR DTMF menu, and REST API. Pick what fits the moment.

Schedule messages in advance

Queue an Emergency or Closure message for a future window. The IVR turns it on at the start time and switches it off automatically at the end.

Full control from the admin console

Admins edit and toggle any team's live message straight from the console — no operator login needed — and can rename a team or change its allowed actions anytime.

Bulk operator onboarding

Add operators in bulk from a CSV template instead of one at a time. Destructive actions, like deleting a team, require typing the PIN to confirm.

Live integration health

A built-in panel shows the status of the data store, audit retention, and the IVR worker — so you catch problems before callers do.

Exportable, audit-ready logs

The audit log and email-status pages auto-refresh, export to CSV for reporting, and show every timestamp in your local time zone.

Clear by default

Operators edit messages right from their dashboard, see who last changed each one and when, and get plain-language guidance at sign-in — never a raw error code.

Multi-tenant

One platform, many organizations.

Run separate organizations — cities, agencies, departments — side by side on the same MSGManager deployment. Each tenant has its own administrator and its own set of teams, fully separated from the others.

Tenant accounts

Create a tenant for each organization — Long Beach, Santa Monica, and so on. Every team and its PIN belongs to exactly one tenant.

Per-tenant administrators

Assign a dedicated administrator to each tenant. They manage only their own organization's teams and operators — nothing outside it.

Scoped data, end to end

A tenant administrator's console, audit log, and email-status page show only their own tenant's activity. Isolation is enforced at the API layer.

Move teams between tenants

Reassign a team to a different tenant from a single dropdown — handy as organizations are added or restructured.

How it works

From login to live IVR — under 30 seconds.

Four clean steps, every one of them governed and audited. No vendor lock-in, no developer ticket, no spreadsheet of admin emails.

1

Authenticate

Sign in with your authorized email and team PIN. A 6-digit code is sent to your inbox. Two-factor by construction.

2

See live state

Your dashboard shows the current Emergency and Closure state for your PIN — toggles, text, last-updated-by.

3

Make the change

Flip a toggle or rewrite the message. Preview the TTS audio. Publish with one click.

4

Live in seconds

Your contact center pulls the new value on the next call. Every action is logged to the audit trail.

Use cases

Built for the moments when message timing matters.

Every minute counts when something changes for your callers. MSGManager turns what used to be a vendor support ticket into a self-service action.

Emergency & weather events

Update the prompt the second a storm hits, a system goes down, or a public-safety event affects service.

After-hours closure

Flip on the closure message at end-of-day, flip it off when offices reopen — without paging an engineer.

Service disruption alerts

Tell callers exactly what's down, when it'll be back, and what to do — without retraining the IVR.

Maintenance windows

Schedule pre-recorded closure text the night before. Audit shows who scheduled what and when.

Compliance disclosures

Update legal or regulatory disclosure language at the start of a call without re-publishing your flow.

Holiday & seasonal hours

Pre-stage holiday greetings and closure schedules. Toggle them on without a 6-week change-management cycle.

Audit module

Every change, every channel — traced.

Every operator action — from the web app, an email, the IVR menu, or a direct API call — writes to a single immutable audit log. Sign in to your PIN and the most recent activity is the first thing you see.

msgmanager.com/dashboard
YT
Your Team Universal tenant
PIN: <your PIN> · session: [email protected]
Emergency · ON Closure · OFF

Recent activity — last 3 actions

your PIN · all channels
[email protected] 2 min ago
Enabled Emergency<PIN>TTS
Web Toggle OFF → ON · session a8f3c2…
[email protected] 14 min ago
Updated Emergency<PIN>TTS text — 147 chars
Email Subject: EMERGENCY UPDATE <PIN> · DKIM verified
admin menu (caller verified by PIN) 1 hr ago
Disabled Closure<PIN>TTS
IVR DTMF option 5 · PIN-gated subflow
WxCC / IVR integration

Drops into your existing contact center.

MSGManager is a control plane, not a replacement. Your IVR keeps doing what it already does — it just gets fresh prompts every time a call lands.

How Webex Contact Center calls MSGManager

Add a single HTTP Request activity at the top of your call flow. Point it at https://api.msgmanager.com/v1/state/<PIN> and bind the response to two flow variables — one for the toggle state, one for the message text.

The flow's decision activity branches on the toggle. The PlayMessage activity speaks the text. That's the whole integration. No SDK, no plugin, no flow re-architecture.

  • Works with Webex Contact Center, Cisco Unified CCX, and Cisco UCCE
  • Compatible with Genesys Cloud, Five9, Amazon Connect — any platform with HTTP request blocks
  • Per-PIN variable naming — no tenant-global collisions across teams
  • Caller-side IVR DTMF channel for operator updates from any phone
📞 Caller Webex Contact Center HTTP Request activity MSGManager api.msgmanager.com /v1/state/<PIN> Cloudflare KV Emergency<PIN>TTS / On|Off Web app msgmanager.com Email [email protected] IVR (DTMF) PIN-gated admin menu all three channels write to the same KV state Single source of truth. Three operator entrances. One IVR consumer.
REST API

One endpoint. Four actions. Any caller.

Wire MSGManager into anything — ticketing systems, ops dashboards, Slack bots, scheduled tasks. Bearer-token auth, per-PIN scoping, JSON in / JSON out.

Built for automation, not just humans

Every action available in the UI is a single HTTP call. The same Bearer token that gates the web app can drive a PagerDuty webhook, a cron job, or your team's internal ops platform.

Calls are idempotent where it matters (toggle state), atomic where it counts (text updates), and audited universally. The data worker validates every request against the per-PIN trust list before any state changes.

  • Bearer-token authentication — pin-scoped, revocable
  • Webhook callbacks on state change — drive downstream automation
  • Rate-limited per PIN — no noisy neighbors
  • OpenAPI 3.0 spec — generate clients in any language
curl — read current state
curl https://api.msgmanager.com/v1/state/1234 \
  -H "Authorization: Bearer $TOKEN"

// → 200 OK
{
  "pin": "1234",
  "team": "Your Team",
  "emergency": {
    "on": true,
    "text": "Due to a water service...",
    "updated_by": "[email protected]",
    "updated_at": "2026-05-15T22:30:00Z"
  },
  "closure": {
    "on": false,
    "text": "Our offices are currently closed..."
  }
}
curl — enable the emergency message
curl -X POST https://api.msgmanager.com/v1/toggle/1234/emergency \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state": "on"}'

// → 200 OK
{
  "pin": "1234",
  "action": "toggle",
  "scope": "emergency",
  "before": "off",
  "after": "on",
  "audit_id": "a8f3c2e1-..."
}
curl — replace the message text
curl -X PUT https://api.msgmanager.com/v1/message/1234/emergency \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "Due to high call volume..."}'

// → 200 OK
{
  "pin": "1234",
  "action": "update",
  "scope": "emergency",
  "chars": 42,
  "audit_id": "b9d4f2a8-..."
}
curl — fetch audit log for a PIN
curl https://api.msgmanager.com/v1/audit/1234?limit=3 \
  -H "Authorization: Bearer $TOKEN"

// → 200 OK
{
  "items": [
    {
      "ts": "2026-05-15T22:30:00Z",
      "actor": "[email protected]",
      "source": "web",
      "action": "update",
      "scope": "emergency"
    },
    { /* ... */ }
  ]
}
Security & governance

Built like enterprise infrastructure.

Every action passes through three independent gates before any state changes. Every change is captured in an immutable audit log. Every operator is scoped to exactly the PINs they own.

Two-factor by construction

Email + PIN + 6-digit OTP delivered to the authorized inbox. Knowledge plus proof-of-control on every session.

Strict per-PIN isolation

Operators see and touch only the PINs they're authorized for. Cross-tenant access is blocked at the API layer, not by convention.

Immutable audit log

Every action — from any channel — recorded with who, what, when, before, after. Compliance-ready out of the box.

Edge-deployed on Cloudflare

Pages, Workers, KV, Turnstile, DDoS protection — globally distributed, zero vendor sprawl, no single-region failure.

Rate-limited & bot-protected

Cloudflare Turnstile on the login, per-IP and per-email rate limiting on every endpoint. Scripted attacks fail fast.

Vendor-neutral by design

No assumptions about your industry, compliance posture, or naming. Drops cleanly into any contact center, any team.

FAQ

Questions teams ask before going live.

Does MSGManager replace my contact center platform?
No — it's a control plane that sits alongside Webex Contact Center, Genesys, Five9, Amazon Connect, or any IVR with HTTP request blocks. Your flow keeps running. MSGManager just supplies fresh prompt text and toggle state on each call.
How is each team isolated from the others?
Every team gets a unique PIN. Trust lists are scoped to a single PIN per record. The system enforces "one operator, one PIN" at the authentication layer — a user authorized for one PIN cannot see, query, or modify another team's state. Teams can also be grouped into tenants, with each tenant administrator scoped to only their own organization's teams.
Can MSGManager manage multiple organizations?
Yes. Create a tenant for each organization — a city, agency, or department — and assign it a dedicated administrator. Each tenant has its own teams and operators, and a tenant administrator's console, audit log, and email-status page show only that tenant's activity. PINs stay unique across the platform, so there is no cross-over between tenants.
What if my IVR vendor isn't supported?
If your IVR can make an HTTP request to a URL and parse JSON, it works. That covers virtually every modern cloud contact center and most on-prem platforms. We provide ready-made flow snippets for Webex CC, Genesys Cloud, and Amazon Connect.
How fast does a change propagate to live calls?
Sub-2 seconds, end-to-end. The web action writes to Cloudflare KV, which is consistent globally within a couple seconds. The next inbound call to your IVR pulls the new value on its HTTP request activity — no caching layer to invalidate.
What does the audit log capture?
Every state-changing action: who (email), when (timestamp, shown in your local time zone), what (action + scope), where (web / email / IVR / API source), before-and-after values, plus the originating IP and session ID. The audit and email-status pages auto-refresh and export to CSV.
How are operators added or removed?
Through the admin trust-list API or the web admin panel. Adding an email to a PIN's trust list grants them access on the next login; removing them invalidates all of their active sessions within the next polling interval.

Ready to give your operators control?

A 30-minute walkthrough is all it takes to see your IVR's emergency and closure prompts under MSGManager governance. No code change to your contact center required.

Request a walkthrough