FlowRunner
PricingContact
Theme
Start Free

Zee

Messaging

Connect AI agents to Zee (ZEETECH), a WhatsApp conversational agent platform, to send and schedule WhatsApp messages. Agents keep customer conversations running on the channel they already use.

17 actions API key available
Platform Documentation ↗ Capability data verified 2026-08-01
A customer's account tier changes in the CRM
Get Contact returns the current record with its assigned tag identifiers and its existing custom agent instructions
List Tags resolves which of those tags carry behaviour flags such as support escalation, notifications and auto tagging
Get Conversation Summary produces an AI summary of the live thread so the reviewer sees how the agent is behaving today
Agent composes an explicit tag delta rather than a replacement set, so nothing is removed by accident
The proposed instruction text and the tags that would change are posted to the account owner
A person approves before Update Contact writes instructions the Zee agent will follow unattended on every future message

What This Integration Enables

Zee (ZEETECH) is a conversational agent platform, and the object that matters in this connector is not the message, it is the contact. A Zee contact carries custom agent instructions of up to a thousand characters, which are the standing directions the platform's own agent follows when talking to that specific person. It also carries tags, and Zee tags are not passive labels: List Tags reports behaviour flags on each one covering auto tagging, notifications, support escalation and webhook delivery. Change a contact's tags and you have changed how the platform behaves toward that customer from the next message onwards.

That is what makes this integration different from a send API. FlowRunner agents here are not primarily writing copy, they are keeping an autonomous conversational agent aligned with the systems that hold the truth about a customer. Tier changed in the CRM, so the instructions change. Contract signed, so the escalation tag goes on. Account churned, so the thread is closed with Close Thread and the agent stops treating it as active. Alongside that there is a complete conversational read surface, List Threads and List Thread Messages with message direction and the automation that produced each outbound message, plus Get Conversation Summary for an AI summary of what actually happened. And there is a scheduling surface, Schedule Message and Cancel Scheduled Message, which is how reminders survive a plan change. This is Orchestration as a Service applied to an agent that is already running: FlowRunner is the layer that governs it, not a second agent competing with it.

Without FlowRunner

Agent behaviour set once The conversational agent treats a renewed enterprise account the same as a trial signup
Tags edited by hand Segments drift because nobody updates them when the CRM changes
Escalation configured and forgotten Whether a customer can reach a person depends on a tag nobody has looked at in months

With FlowRunner

Behaviour follows the account Instructions and tags are rewritten from the system that actually knows the tier
Changes proposed as a delta The agent shows exactly which tags are added and which would be removed
Escalation stays visible A tag change that would strip support escalation is named before it happens

Use Case Scenarios

The CRM decides how the agent talks

A deal closes in HubSpot and the account moves from trial to enterprise. The flow calls Get Contact by phone number and reads the current instructions and tag identifiers. It then composes new instructions naming the assigned account manager, the support hours the contract entitles them to, and the two product areas they are actually licensed for, and calls Update Contact with Override Tags left off so the enterprise tag is added rather than replacing the existing set. From the customer's next message onward, the Zee agent answers as though it read the contract, because in effect it did. Nobody edited a prompt by hand and nobody has to remember to do it again at renewal.

Reminders that cancel themselves when plans change

An appointment is booked in Acuity Scheduling. The agent calls Schedule Message twice, once for the day before and once for the morning of, each with a single payload, because Zee accepts exactly one payload per call and rejects requests carrying more than one media item. It stores the schedule identifiers on the booking record. When the customer reschedules, the flow calls Cancel Scheduled Message for both identifiers and queues the new pair. List Scheduled Messages gives the team a way to reconcile what is still pending, with failure details attached. The reminder that arrives for an appointment that moved is one of the most reliable ways to lose trust in an automated channel, and this closes that loop properly.

Conversation data that leaves the platform

On a schedule, the agent walks List Chats for the previous day, fifty at a time, and pulls the exchanged messages with their media payloads. For threads that closed, it calls Get Conversation Summary and List Thread Messages, which reports each message's direction and the automation behind it, campaign, followup, reminder or WABA template. Summaries and outcomes are written to Google Sheets for the weekly review and the structured records land in PostgreSQL for analysis. What the team gets is not a chat log, it is a record of which automations produced which conversations and how they ended.

Human-in-Loop Highlight

The gated decision here is not a message, it is a change to standing behaviour. Set Contact Tags and Update Contact both accept an Override Tags flag, and when it is enabled the supplied tag set replaces the contact's current one. Since Zee tags carry behaviour flags, an override that omits a tag can silently disable that customer's support escalation path, and nothing about the operation announces it. Custom agent instructions have the same shape of risk in a different direction: they change what an autonomous agent says to that person on every future message, with nobody reading the output. So the agent assembles the whole picture and stops. It posts the current instructions and the proposed ones side by side, the tag delta named tag by tag, and a flag on any tag whose behaviour flags include support escalation or notifications: "Updating Marina Souza to enterprise. Adding tier_enterprise. Override would remove escalation_priority, which carries support escalation. Apply as an addition, apply the override, or leave it?" A person answers before anything is written. Approving a single outbound message is a small decision. Rewriting the instructions an agent will follow unsupervised for the next six months is not, and human-in-the-loop belongs on the second one.

Agent processes routinely
Detects exception requiring judgment
Clear match Continues automatically
Ambiguous Routes to human via preferred channel
Human decides
Agent resumes with decision

Agent Capabilities

17 actions

Conversations and Threads

6
  • List Chats Retrieves WhatsApp chats for a specific day with contact details and the full list of exchanged messages, covering text, audio, image, video, document, contact card, location and reaction payloads. Optionally narrowed to a single contact and paginated at a maximum page size of 50.
  • List Threads Lists conversation threads with their status and start and end timestamps, filterable by contact, by date range and by one or more statuses. Used to find the conversations a flow should act on.
  • Get Thread Retrieves a single thread by identifier, including the owning contact, the thread status of open, closed, expired or closed by user, and its start and end timestamps.
  • List Thread Messages Retrieves the messages inside a single thread with their direction, the agent role of system, user, assistant or tool, the automation that produced an outbound message such as campaign, followup, reminder or WABA template, and any media payload. This is the operation that tells you which automation actually said what.
  • Get Conversation Summary Returns an AI generated summary of a contact's conversation, covering the current conversation by default or one specific thread when a thread identifier is supplied. Used to give a person the gist before they take a handover.
  • Close Thread Closes an open thread so the agent stops treating it as active, typically once a downstream process has completed the work the conversation was about.

Sending and Scheduling

6
  • Send Message Sends a WhatsApp message to a contact through the Zee agent. Exactly one payload is sent per call, plain text or an image, video, audio clip, document or contact card, and the API rejects requests containing more than one media payload.
  • Send Template Message Sends an approved WhatsApp Business template to a phone number, with header and body placeholders filled by named parameters and a language that must match an approved translation. This is the path for opening a conversation rather than continuing one.
  • List Templates Lists the WhatsApp Business templates available to the connected WABA integration with each template's name, language, approval status, category and its header, body, footer and button components with example values. Cursor paginated.
  • Schedule Message Queues a message for delivery at a future moment, one payload per call, and returns the schedule identifier that Cancel Scheduled Message accepts. Store that identifier if the plan it depends on can change.
  • List Scheduled Messages Lists messages queued for future delivery with their payload, target contact, delivery timestamp, creation date, failure details and current status, filterable by status and paginated.
  • Cancel Scheduled Message Cancels a message still waiting to be delivered so it is never sent, returning a not found error when the schedule identifier does not exist.

Contacts and Tags

5
  • Create Contact Creates a contact the Zee agent can converse with, accepting a phone number, display name, optional legal name, profile photo, custom agent instructions of up to 1000 characters, free-form string metadata, tag assignments and the messaging provider. When the phone number already exists the API returns the existing contact rather than creating a duplicate.
  • Get Contact Retrieves a single contact by phone number or contact UUID, returning its display name, legal name, photo, assigned tag identifiers, custom agent instructions, metadata, messaging provider and creation date. At least one of the two lookup values must be supplied.
  • Update Contact Updates an existing contact, changing only the fields supplied, across phone number, display name, legal name, photo, custom agent instructions and tags. Enabling Override Tags replaces the current tag set instead of adding to it, which is the behaviour worth gating.
  • Set Contact Tags Assigns tags to an existing contact, adding to the existing set by default or replacing it when Override Tags is enabled.
  • List Tags Lists every tag configured in the workspace with its identifier, label, colour, usage count and behaviour flags including auto tagging, notifications, support escalation, webhook delivery and whether the tag is immutable. Agents call it before changing tags so the consequences of a change are known rather than assumed.

Frequently Asked Questions

What can FlowRunner do with Zee?

FlowRunner agents can run List Chats, Send Message, and Get Conversation Summary in Zee, plus 14 more actions.

Does connecting Zee to FlowRunner require OAuth?

No. Zee connects to FlowRunner with an API key, no OAuth flow required.

Can Zee trigger a FlowRunner workflow automatically?

Zee doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

Start building with Zee

$100 in credits. No card required. Connect in minutes.