How I Built a Fully Autonomous AI Chatting System for Fanvue — Runs 24/7, Zero VAs

untaxed

Registered Member
Joined
Apr 19, 2023
Messages
82
Reaction score
44
**TL;DR:** I built a system that manages fan chats across 4 Fanvue creator accounts completely autonomously. No VAs, no manual work. It runs on a $24/month VPS, handles conversations 24/7, sends PPV at optimal times, auto-welcomes new subs, runs win-back sequences on expired ones, and has a live dashboard I check from my phone. Total build cost was about 3 weeks of development. Now it just... runs.
I'm not selling anything in this post. I'm sharing what I built, how it works, and the results so far because I've seen a lot of people on here asking about AI chatting and most of the answers are "use ChatGPT in a Chrome extension" which is... not it.
---
## The Problem I Was Solving

I manage 4 AI influencer accounts on Fanvue. The content generation side was automated (AI images, AI video, automated posting across IG/Threads/Twitter), but the CHATTING was still manual. I was either doing it myself or paying people.

The math wasn't working:

- A decent chatter costs $15-25/hr
- For 24/7 coverage you need 3 shifts minimum
- That's $1,200-2,000/week PER CREATOR
- Across 4 creators: $5K-8K/month just in chatter labor
- Quality was inconsistent — some chatters close $500/day, others $50
- Overnight shifts were impossible to fill reliably
- Every time a chatter quit, I lost 2-3 weeks training a replacement

So I built the whole thing from scratch.
---
## What The System Actually Does

This isn't a Chrome extension that suggests replies. This is a fully autonomous system that runs on a server with zero human involvement.

### Per-Creator AI Chatbot

Each creator has their own AI persona. Not just "respond like a hot girl" — it's trained on:

- The creator's actual messaging style (slang, emoji patterns, sentence structure)
- Revenue strategy (when to tease, when to push PPV, when to pull back)
- Fan tier awareness (free followers get different treatment than $50/month subs)
- Conversation memory (remembers previous chats, fan preferences, what they've bought)

The AI doesn't just reply — it follows a full revenue maximization strategy:

**Fan Tiering:**

- New subscriber → Welcome sequence → Build rapport → First PPV offer
- Active buyer → Drip exclusive content → Upsell bundles
- Dormant fan → Re-engagement sequence → Win-back offer
- Free follower → 10 message engagement limit → Push to subscribe

**PPV Dripping:**

The AI sends locked content at optimal times based on when each fan is most active. Not a blast to everyone at 3 PM — individualized timing.

### Auto-Welcome

Every new subscriber gets a personalized welcome within 60 seconds. The first message sets the tone and gets them engaged before they forget they subscribed. I tested this vs manual welcome (1-4 hour delay) and the conversion to first reply was 3x higher with instant welcome.

### Win-Back Sequences

When a subscription expires, the system runs a 4-step win-back campaign over 2 weeks:
1. Day 0: Casual "miss you" message
2. Day 3: Exclusive offer / tease
3. Day 7: FOMO trigger
4. Day 13: Final attempt with a deal
Each step has 3-4 message variants so it doesn't feel templated.

### Live Dashboard

I built a real-time dashboard that shows:
- Messages sent per creator per hour
- Fan engagement rates
- Token health status (more on this below)
- Revenue tracking per creator
- System health monitoring
I check it from my phone once a day. Usually everything is green.

### Token Management

This was the hardest part. Fanvue uses Ory Hydra with one-time-use refresh tokens. If you use a refresh token twice, it permanently dies. I've seen other people's systems break because they had two processes trying to refresh the same token.
My solution: a single Docker container that handles ALL token refreshes on a 15-minute cycle. Nothing else touches the tokens. It's been running for weeks without a single token death.
---
## The Tech Stack

Not going to gatekeep the architecture:

- **Server:** $24/month Vultr VPS (Ubuntu, Docker)
- **Orchestration:** n8n (self-hosted, workflow automation)
- **AI:** Mistral via OpenRouter for conversation generation (best price-to-quality ratio for this use case)
- **Database:** MySQL (fan records, conversation state, purchase history)
- **Token Refresh:** Custom Python script in Docker container
- **Dashboard:** Custom Python web app behind Cloudflare
- **Monitoring:** Health check workflow runs every 10 minutes, alerts me on Telegram if anything breaks

Each creator runs as a separate n8n workflow on a staggered timer (67s, 71s, 73s, 79s — all prime numbers so they never overlap). This prevents rate limiting and ensures only one API call happens at a time.
---
## What I Learned (The Hard Way)

**1. Fanvue's API is undocumented and full of gotchas.**

- Chat objects have NO uuid field — the fan UUID is at `chat.user.uuid`
- GET endpoint for messages is plural (`/messages`), POST endpoint for sending is singular (`/message`)
- Messages come newest-first. If you don't reverse them before sending to AI, the conversation is backwards and the AI gives nonsensical replies
- No `is_creator` field on messages — you have to check `sender.handle` to figure out who sent what

**2. Token management is life or death.**

If your refresh token gets used twice (race condition between two processes), it's permanently dead. You have to re-authenticate through the browser. I lost 3 days debugging this before I realized the solution was radical simplicity: ONE process refreshes tokens. Period.

**3. The AI needs guardrails, not freedom.**

Early versions would occasionally go off-script — promising things the creator doesn't offer, being too aggressive with PPV, or switching personality mid-conversation. The fix was strict system prompts with explicit boundaries and a "humanization" layer that adds natural imperfections (typos, delayed responses, varied message lengths).

**4. Free followers are a time sink.**

Unlimited free messaging = the AI spending all its time on people who will never pay. I added a 10-message limit for free followers, then a gentle push to subscribe. Revenue went up immediately.
---
## Results So Far

The system has been running autonomously for several weeks now. Key numbers:

- **Response time:** Under 60 seconds, 24/7 (vs 1-4 hours with VAs)
- **Uptime:** 99.9% (one restart in 3 weeks, auto-recovered)
- **VA cost eliminated:** $0/month (was projecting $3-5K/month)
- **Server cost:** $24/month
- **Messages per day:** 200-400 across all creators
- **No fan complaints** about AI detection (persona training works)

The system handles the entire fan lifecycle — from new subscriber welcome to dormant win-back — without me touching anything. I check the dashboard once a day, usually for 2 minutes.
---
## What's Next

I'm expanding the system to handle:

- Automatic PPV content creation (AI-generated images sent as locked messages)
- Cross-platform fan tracking (same fan on multiple platforms)
- Revenue prediction per fan (predict who will buy next and prioritize them)
---
## Questions?

Happy to answer technical questions about the architecture, Fanvue API, token management, or anything else. I'm NOT going to share the actual code or system prompts, but I'll answer "how did you solve X" type questions.

If anyone is running a similar setup or considering building one, I'm curious what your biggest bottleneck is. For me it was 100% the token management — everything else was straightforward once that was solved.
 
**TL;DR:** I built a system that manages fan chats across 4 Fanvue creator accounts completely autonomously. No VAs, no manual work. It runs on a $24/month VPS, handles conversations 24/7, sends PPV at optimal times, auto-welcomes new subs, runs win-back sequences on expired ones, and has a live dashboard I check from my phone. Total build cost was about 3 weeks of development. Now it just... runs.
I'm not selling anything in this post. I'm sharing what I built, how it works, and the results so far because I've seen a lot of people on here asking about AI chatting and most of the answers are "use ChatGPT in a Chrome extension" which is... not it.
---
## The Problem I Was Solving

I manage 4 AI influencer accounts on Fanvue. The content generation side was automated (AI images, AI video, automated posting across IG/Threads/Twitter), but the CHATTING was still manual. I was either doing it myself or paying people.

The math wasn't working:

- A decent chatter costs $15-25/hr
- For 24/7 coverage you need 3 shifts minimum
- That's $1,200-2,000/week PER CREATOR
- Across 4 creators: $5K-8K/month just in chatter labor
- Quality was inconsistent — some chatters close $500/day, others $50
- Overnight shifts were impossible to fill reliably
- Every time a chatter quit, I lost 2-3 weeks training a replacement

So I built the whole thing from scratch.
---
## What The System Actually Does

This isn't a Chrome extension that suggests replies. This is a fully autonomous system that runs on a server with zero human involvement.

### Per-Creator AI Chatbot

Each creator has their own AI persona. Not just "respond like a hot girl" — it's trained on:

- The creator's actual messaging style (slang, emoji patterns, sentence structure)
- Revenue strategy (when to tease, when to push PPV, when to pull back)
- Fan tier awareness (free followers get different treatment than $50/month subs)
- Conversation memory (remembers previous chats, fan preferences, what they've bought)

The AI doesn't just reply — it follows a full revenue maximization strategy:

**Fan Tiering:**

- New subscriber → Welcome sequence → Build rapport → First PPV offer
- Active buyer → Drip exclusive content → Upsell bundles
- Dormant fan → Re-engagement sequence → Win-back offer
- Free follower → 10 message engagement limit → Push to subscribe

**PPV Dripping:**

The AI sends locked content at optimal times based on when each fan is most active. Not a blast to everyone at 3 PM — individualized timing.

### Auto-Welcome

Every new subscriber gets a personalized welcome within 60 seconds. The first message sets the tone and gets them engaged before they forget they subscribed. I tested this vs manual welcome (1-4 hour delay) and the conversion to first reply was 3x higher with instant welcome.

### Win-Back Sequences

When a subscription expires, the system runs a 4-step win-back campaign over 2 weeks:
1. Day 0: Casual "miss you" message
2. Day 3: Exclusive offer / tease
3. Day 7: FOMO trigger
4. Day 13: Final attempt with a deal
Each step has 3-4 message variants so it doesn't feel templated.

### Live Dashboard

I built a real-time dashboard that shows:
- Messages sent per creator per hour
- Fan engagement rates
- Token health status (more on this below)
- Revenue tracking per creator
- System health monitoring
I check it from my phone once a day. Usually everything is green.

### Token Management

This was the hardest part. Fanvue uses Ory Hydra with one-time-use refresh tokens. If you use a refresh token twice, it permanently dies. I've seen other people's systems break because they had two processes trying to refresh the same token.
My solution: a single Docker container that handles ALL token refreshes on a 15-minute cycle. Nothing else touches the tokens. It's been running for weeks without a single token death.
---
## The Tech Stack

Not going to gatekeep the architecture:

- **Server:** $24/month Vultr VPS (Ubuntu, Docker)
- **Orchestration:** n8n (self-hosted, workflow automation)
- **AI:** Mistral via OpenRouter for conversation generation (best price-to-quality ratio for this use case)
- **Database:** MySQL (fan records, conversation state, purchase history)
- **Token Refresh:** Custom Python script in Docker container
- **Dashboard:** Custom Python web app behind Cloudflare
- **Monitoring:** Health check workflow runs every 10 minutes, alerts me on Telegram if anything breaks

Each creator runs as a separate n8n workflow on a staggered timer (67s, 71s, 73s, 79s — all prime numbers so they never overlap). This prevents rate limiting and ensures only one API call happens at a time.
---
## What I Learned (The Hard Way)

**1. Fanvue's API is undocumented and full of gotchas.**

- Chat objects have NO uuid field — the fan UUID is at `chat.user.uuid`
- GET endpoint for messages is plural (`/messages`), POST endpoint for sending is singular (`/message`)
- Messages come newest-first. If you don't reverse them before sending to AI, the conversation is backwards and the AI gives nonsensical replies
- No `is_creator` field on messages — you have to check `sender.handle` to figure out who sent what

**2. Token management is life or death.**

If your refresh token gets used twice (race condition between two processes), it's permanently dead. You have to re-authenticate through the browser. I lost 3 days debugging this before I realized the solution was radical simplicity: ONE process refreshes tokens. Period.

**3. The AI needs guardrails, not freedom.**

Early versions would occasionally go off-script — promising things the creator doesn't offer, being too aggressive with PPV, or switching personality mid-conversation. The fix was strict system prompts with explicit boundaries and a "humanization" layer that adds natural imperfections (typos, delayed responses, varied message lengths).

**4. Free followers are a time sink.**

Unlimited free messaging = the AI spending all its time on people who will never pay. I added a 10-message limit for free followers, then a gentle push to subscribe. Revenue went up immediately.
---
## Results So Far

The system has been running autonomously for several weeks now. Key numbers:

- **Response time:** Under 60 seconds, 24/7 (vs 1-4 hours with VAs)
- **Uptime:** 99.9% (one restart in 3 weeks, auto-recovered)
- **VA cost eliminated:** $0/month (was projecting $3-5K/month)
- **Server cost:** $24/month
- **Messages per day:** 200-400 across all creators
- **No fan complaints** about AI detection (persona training works)

The system handles the entire fan lifecycle — from new subscriber welcome to dormant win-back — without me touching anything. I check the dashboard once a day, usually for 2 minutes.
---
## What's Next

I'm expanding the system to handle:

- Automatic PPV content creation (AI-generated images sent as locked messages)
- Cross-platform fan tracking (same fan on multiple platforms)
- Revenue prediction per fan (predict who will buy next and prioritize them)
---
## Questions?

Happy to answer technical questions about the architecture, Fanvue API, token management, or anything else. I'm NOT going to share the actual code or system prompts, but I'll answer "how did you solve X" type questions.

If anyone is running a similar setup or considering building one, I'm curious what your biggest bottleneck is. For me it was 100% the token management — everything else was straightforward once that was solved.
Does your chat system use audio at any stage, or is it just a collection of chat messages?
 
Did you used AI to code this tool?
 
Does your chat system use audio at any stage, or is it just a collection of chat messages?
It uses elevenlabs API to create the audios. I have some default audios but it can also create in real time according to the messages received.

Did you used AI to code this tool?
Mostly yeah, but you need to be like an orchestrator and also correct and improve the output.
 
the $24/month VPS handling 4 accounts is the part worth sitting with, because i ran a similar multi-account setup for an ecom loyalty SMS system back when i had my second brand and the moment one account's sending behavior flagged the IP, all four went sideways at once, lost about $6k in paused campaigns while i sorted it out. curious if you've got the fanvue accounts on separate residential proxies or if theyre all routing through the same VPS IP, because thats the one thing i'd stress-test before this thing scales past 4 creators.
 
Not bad at all! Considering AI influencer accounts and this may be just what I needed to see

Not bad at all! Considering AI influencer accounts and this may be just what I needed to see
Yeah if the model is AI. Why not the chatters too?

the $24/month VPS handling 4 accounts is the part worth sitting with, because i ran a similar multi-account setup for an ecom loyalty SMS system back when i had my second brand and the moment one account's sending behavior flagged the IP, all four went sideways at once, lost about $6k in paused campaigns while i sorted it out. curious if you've got the fanvue accounts on separate residential proxies or if theyre all routing through the same VPS IP, because thats the one thing i'd stress-test before this thing scales past 4 creators.
Good tip. Each account has a n8n profile with a proxy node. So I can give different IP's for each account, even though I'm using the same server. I upgraded the server because of ram issues. The workflows work 24/7
 
Great work. Best of luck to you. I'm surprised you chose the Mistral as your model, does it really perform well? What other mods have you tried?
 
Great work. Best of luck to you. I'm surprised you chose the Mistral as your model, does it really perform well? What other mods have you tried?
I'm only testing with Mistral. I has another model but chat wasn't spicy enough. I chose Mistral because I checked the chats and they were nsfw style
 
I asked my friends, they use Gemini and GLM
 
Yeah, it's a combination of several models and powerful system prompts
 
Yeah, it's a combination of several models and powerful system prompts
Several LLM's for chatting? I'm using Claude code as the boss but the LLM for chatting is not Claude.
 
They offer a more sophisticated service, communication with virtual girlfriends. There are many different characters
 
They offer a more sophisticated service, communication with virtual girlfriends. There are many different characters
I don't even know what you are talking about my friend. Also, I'm not interested in any service.
 
I guess I didn't say it right. I'm not suggesting anything, I was just curious
 
I’m building something similar out right now. TOT the idea from here. Would love to pick your brain a bit once I have everything functional.
 
I’m building something similar out right now. TOT the idea from here. Would love to pick your brain a bit once I have everything functional.
Yeah man, good luck. Ask whenever you want.
 
This setup is seriously impressive and honestly a huge flex for your margins since cutting out VAs is the ultimate goal. You just saved yourself a massive headache and thousands in payroll, so definitely keep scaling this because automated revenue like that is the dream
 
It uses elevenlabs API to create the audios. I have some default audios but it can also create in real time according to the messages received.
Besides the $24/month VPS fee, do you have any other additional costs?
 
Besides the $24/month VPS fee, do you have any other additional costs?
you can have a cheaper VPS for sure, it doesnt have to $24/month, I just have a lot of automations so I upgraded the server.

Besides Openrouter credits for the LLM (you can selfhost and have it for free, but I'm low in disk space).

And Claude Code, I don't think you need anything else.
 
Back
Top