1 of 10

HUMARACART

What v1 Didn't Cover

Coordination over WhatsApp, and how it actually talks to Instamart

2 of 10

THE MESSAGING LAYER

WhatsApp Doesn't Support Group Bots

What You'd Expect

One WhatsApp group.

Everyone in it, talking to one bot together.

What We Built

N separate 1:1 threads with the bot.

The backend maps each one to a single household ID: one shared cart underneath.

The Business API terms forbid group bots, so the household is a backend concept, not a WhatsApp one.

3 of 10

ROLES & PERMISSIONS

Who Can Do What

Member

Add items to the cart

Remove items from the cart

Nudge the holder to check out

Account Holder

Sets the delivery address

Add items to the cart

Remove items from the cart

Confirm checkout & choose payment method

4 of 10

ELI5

What is MCP?

MCP

An open standard that lets an AI agent call external tools in a consistent way, regardless of who built them

Tool

A single callable function a server exposes, with defined inputs and outputs (e.g. search_products)

MCP Client

The agent side. Discovers what tools are available and calls them: this is HumaraCart's role

MCP Server

The provider side. Exposes a set of tools over the protocol: this is what Instamart runs

5 of 10

ARCHITECTURE

Where HumaraCart Sits

HumaraCart

Agent: the MCP Client

Instamart

Backend: the MCP Server

MCP

HumaraCart never talks to Instamart directly: every call and every result crosses this one standard interface.

6 of 10

THE AGENTIC PART

LangGraph + Human-in-the-Loop

agent

calls the LLM, decides next step

tools

calls Instamart MCP

ask_human

pauses the graph for a person

START → agent → tools → agent → … → END

ask_human pauses for two things: picking a variant, or confirming a checkout, whose first call only previews. The real order is placed by a second, code-issued call.

checkout confirmed

START

END

7 of 10

AVAILABLE TOOL CALLS

What HumaraCart Actually Calls

Discover

get_addresses

search_products

Cart

update_cart

get_cart

clear_cart

Payment

get_payment_options

Order

checkout

Track

get_orders

8 of 10

Let's Look at the Docs

9 of 10

CONSTRAINTS & CHALLENGES

What Was Hard

Wrong person could answer a pending question: a race in who a paused question was actually addressed to

Concurrent messages could race on the same session: two messages for one household hitting the agent at once

Sync def, or async, for the background handler?: every message triggers a slow LLM call and an MCP round-trip; both concurrency models were on the table

10 of 10

HUMARACART

Thank you.