Klaviyo Setup
Let the chatbot read back a discount code Klaviyo already issued to a customer, and tell them whether they are subscribed.
This is the customer-facing half only
Campaign reporting is deliberately not here. Klaviyo runs its own MCP server, so if you want to ask questions about campaign performance, add both Klaviyo's MCP server and Supportify's to Claude and ask across the two. You will get more than any fixed set of tools we could build.
What that setup cannot do is answer a shopper, because it has no idea which mailbox the person in your chat widget controls. That gap is what this integration fills.
Setup
Create a private API key
In Klaviyo, go to Settings → API keys and create a private key.
Scope the key read-only
Grant read access to Coupon Codes, Profiles and Lists — nothing else.
Your chatbot is reachable by anyone who opens your storefront. A full-access key would hand your entire marketing account to whatever that conversation turns into, for the sake of reading one discount code.
The connection test checks Coupon Codes and Profiles and names whichever is missing. Lists is optional — without it you can still connect, you just cannot pick a newsletter by name.
Klaviyo fixes a key's scopes when you create it. There is no way to add one afterwards, so a key that turns out to be missing something has to be deleted and replaced.
Pick your newsletter list
This is what "am I subscribed?" gets answered about. Leave it unset and the chatbot reports the profile's overall marketing consent instead, which is the right answer for a store running a single newsletter.
Limit which coupons may be read
Leave this empty to allow any coupon the key can see. Set it if you also run staff or wholesale coupons through Klaviyo — otherwise the chatbot could read those back to a customer who asks the right question.
Decide whether the chatbot may unsubscribe people
Off unless you turn it on, and it is the only setting here that changes what your key must be able to do — see the warning below before you decide.
What the chatbot can do
- Look up a discount code the customer already has. "I lost my welcome code" is the common one.
- Check newsletter subscription — including telling a customer their emails were bouncing, which is something they can actually fix.
- Unsubscribe them, if you switch it on. Off by default, and the only action here that writes.
Unsubscribing is the one thing that writes
Leave it off — the default — and everything works with a read-only key, which cannot change anyone's consent no matter what happens in a conversation.
Turn it on and the key also needs subscriptions:write. Klaviyo fixes a key's scopes when you create it, so that means replacing the key rather than editing it.
What you get for it: "stop emailing me" handled on the spot, instead of the customer hunting for a link in an old email. It only ever unsubscribes the address they verified, and it never touches order confirmations or delivery updates — those are not marketing email.
It reads codes, it never issues them
The chatbot only returns codes Klaviyo has already assigned to that specific verified customer. It will not hand out an unclaimed code from a campaign pool.
That restriction is deliberate. Sharing pool codes with anonymous visitors would let one person drain a promotion by asking repeatedly. If you have a code meant to be public, put it in your knowledge base instead — the chatbot will share it without needing this integration at all.