cf
CallFunnel.ai

Rule books

Brief it like a human. Run it like a system.

Other voice platforms make you build a flow chart with nodes, edges, and a hundred edge-case branches. We don't. You write the policy the way you'd brief a new rep. Claude Opus drafts a validated rule book. Validators catch the gaps. The orchestrator runs it on every call.

Input → output

Your plain-English brief
Call our trial users on day 5. If they haven't placed a strategy yet, ask why. If they say "too complicated," offer a 1:1 onboarding call. If they say "still evaluating," ask what they're comparing against. If they say "no time," ask when to call back. Never offer a discount — that's a future conversation.
Generated rule book (excerpt)
workflow: trial_day5_nudge persona: jacqueline goal_kind: info opening: greeting: "Hi {{first_name}}, this is {persona} from Tradetron." ask: "Saw you signed up on {{signup_date_human}} — quick question, have you got to building a strategy yet?" branches: - if: matches([too complicated, hard, confused]) do: offer_onboarding_call - if: matches([still evaluating, looking around]) do: send_comparison_sheet_via_wa - if: matches([no time, busy, later]) do: ask_callback_time forbidden: - "any discount offer" - "any refund offer"

Self-heal on validation failure

Opus drafts the rule book. Then a deterministic validator runs over it: every branch labelled, every required variable bound, every forbidden phrase listed in the don't-say block, every persona supported. If anything's missing, the validator sends Opus the exact list of repairs needed. Second pass usually succeeds.

You don't hand-edit YAML. You re-brief in English ("also handle 'I'll think about it' the same as 'no time'") and the rule book regenerates.

Approval ladder

Every workflow can name a concession threshold. Below it, the AI auto-approves. Above it, the decision drops into Slack with the transcript and a one-tap action. Nobody answers? It escalates. The AI never invents a discount.

< ₹500
Auto-approve. The AI offers the concession and logs the decision in the timeline.
₹500 – ₹2000
Wait 30 seconds for a Slack response. If somebody approves, run with it. If not, the AI politely defers and offers to call back.
> ₹2000
Hold the line, ping the owner in Slack. If nobody responds within the ladder window, escalate to a backup user. The customer is told "I'm checking with my team," not made to wait silently.
Custom
Define your own ladder per workflow. Different products, different stakes — different ladders. The workflow's rule book carries the threshold and the escalation path.

One timeline per customer

Every call — and every approval, transcript, and outcome — is appended to one Conversation per customer. The next call reads the previous ones. The AI knows what already happened. So does your team, in one view.

Mongo holds the timeline (one database per tenant, hard-isolated). Each turn captures the channel, the rule book branch hit, the KB chunks used, any approval requested, and the final disposition. Customer asks "didn't I already tell you that on the call?" The AI says yes, cites the call's summary, and moves on.