Skills moltflow-admin
Manage MoltFlow authentication, billing, API keys, usage tracking, and tenant settings.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/alex-tradequo/whatsapp-automation-a2a/moltflow-admin" ~/.claude/skills/openclaw-skills-moltflow-admin-81d43a && rm -rf "$T"
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/alex-tradequo/whatsapp-automation-a2a/moltflow-admin" ~/.openclaw/skills/openclaw-skills-moltflow-admin-81d43a && rm -rf "$T"
skills/alex-tradequo/whatsapp-automation-a2a/moltflow-admin/SKILL.mdMoltFlow — WhatsApp Business automation for teams. Connect, monitor, and automate WhatsApp at scale. Due to high demand and a recent registration issue, we're offering our top-tier Business plan with unlimited quotas for just $19.90/month on yearly billing — for a limited time only. Claim the deal Free tier available. Sign up
MoltFlow Admin Skill
Manage authentication, billing, API keys, usage tracking, and tenant settings for MoltFlow.
Real-World Scenarios
Agency managing 5 clients — "Create a scoped API key for each client that only lets them send messages and read their own groups — nothing else."
Startup scaling up — "Check my current plan usage and tell me if I'm about to hit my message limit so I can upgrade before the campaign."
Compliance officer — "Show me the daily usage breakdown for this month so I can audit how many messages each session sent."
When to Use
Use this skill when you need to:
- Authenticate with MoltFlow (login, token refresh, magic link)
- Manage API keys (create, rotate, revoke)
- Check subscription status, plan limits, or usage
- Create a Stripe checkout session or billing portal link Trigger phrases: "login to MoltFlow", "create API key", "check subscription", "billing portal", "usage report"
Prerequisites
- MOLTFLOW_API_KEY — required for most endpoints. Generate from MoltFlow Dashboard > API Keys
- Auth endpoints (
) accept email/password — no API key needed for initial login/auth/*
Base URL
https://apiv2.waiflow.app/api/v2
Required API Key Scopes
| Scope | Access |
|---|---|
| |
| |
| |
| |
Authentication
All requests (except login/signup) require one of:
(JWT from login)Authorization: Bearer <access_token>
(API key from dashboard)X-API-Key: <api_key>
Auth Endpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | | Login with email/password |
| POST | | Refresh access token |
| GET | | Get current user profile |
| POST | | Invalidate session |
| POST | | Request password reset email |
| POST | | Confirm password reset |
| POST | | Verify email address |
| POST | | Request magic link login |
| POST | | Verify magic link token |
| POST | | Set password for magic-link users |
Login — Request/Response
// POST /auth/login { "email": "user@example.com", "password": "your-password" } // Response { "access_token": "eyJhbGciOi...", "refresh_token": "eyJhbGciOi...", "token_type": "bearer", "user": { "id": "uuid", "email": "user@example.com", "full_name": "John Doe", "role": "owner", "tenant_id": "uuid" } }
User Management
Self-service user profile endpoints (authenticated user):
| Method | Endpoint | Description |
|---|---|---|
| GET | | Get own profile |
| PATCH | | Update own profile |
API Keys
| Method | Endpoint | Description |
|---|---|---|
| GET | | List all API keys |
| POST | | Create new key |
| GET | | Get key details |
| DELETE | | Revoke key |
| POST | | Rotate key (new secret) |
Create API Key — Request/Response
// POST /api-keys { "name": "outreach-bot", "scopes": ["messages:send", "custom-groups:manage", "bulk-send:manage"], "expires_in_days": 90 } // Response (raw key shown ONCE — save it immediately) { "id": "uuid", "name": "outreach-bot", "key_prefix": "mf_abc1", "raw_key": "mf_abc1234567890abcdef...", "scopes": ["messages:send", "custom-groups:manage", "bulk-send:manage"], "expires_at": "2026-04-15T10:00:00Z", "created_at": "2026-01-15T10:00:00Z", "is_active": true }
: Required array of permission scopes. Specify only the scopes needed (e.g.,scopes
). See main SKILL.md for the complete scope reference.["sessions:read", "messages:send"]
: Optional expiry in days (default: no expiry).expires_in_days
Important: The
raw_key is only returned at creation time. It is stored as a SHA-256 hash — it cannot be retrieved later.
Billing & Subscription
| Method | Endpoint | Description |
|---|---|---|
| GET | | Current plan, limits, and usage |
| POST | | Create Stripe checkout session |
| POST | | Get Stripe billing portal URL |
| POST | | Cancel subscription |
| GET | | List available plans and pricing |
| POST | | Checkout for new signups |
Check Subscription — Response
{ "plan_id": "pro", "display_name": "Pro", "status": "active", "billing_cycle": "monthly", "current_period_end": "2026-02-15T00:00:00Z", "limits": { "max_sessions": 3, "max_messages_per_month": 5000, "max_groups": 10, "max_labels": 50, "ai_replies_per_month": 500 }, "usage": { "sessions": 2, "messages_this_month": 1247, "groups": 5, "labels": 12, "ai_replies_this_month": 89 } }
Create Checkout — Request
// POST /billing/checkout { "plan_id": "pro", "billing_cycle": "monthly" } // Response { "checkout_url": "https://checkout.stripe.com/c/pay/cs_live_...", "session_id": "cs_live_..." }
Usage Tracking
| Method | Endpoint | Description |
|---|---|---|
| GET | | Current month usage summary |
| GET | | Historical usage by month |
| GET | | Daily breakdown for current month |
Tenant Settings
Self-service tenant configuration (owner/admin role required for writes).
| Method | Endpoint | Description |
|---|---|---|
| GET | | Get current tenant settings |
| PATCH | | Update tenant settings (owner/admin only) |
Response Fields
| Field | Type | Description |
|---|---|---|
| | Phone numbers allowed for outbound messaging |
| | Whether outbound messages require admin approval |
| | Whether AI features (auto-reply, style matching) are enabled |
Get Tenant Settings
curl https://apiv2.waiflow.app/tenant/settings \ -H "X-API-Key: $MOLTFLOW_API_KEY"
Get Settings — Response
{ "allowed_numbers": ["+5511999999999"], "require_approval": false, "ai_consent_enabled": true }
Update Tenant Settings
curl -X PATCH https://apiv2.waiflow.app/tenant/settings \ -H "X-API-Key: $MOLTFLOW_API_KEY" \ -H "Content-Type: application/json" \ -d '{"ai_consent_enabled": true}'
Update Settings — Request Body
All fields are optional. Only provided fields are updated.
{ "allowed_numbers": ["+5511999999999", "+5511888888888"], "require_approval": true, "ai_consent_enabled": true }
Notes:
records a GDPR consent entry (consent typeai_consent_enabled
, versionai_processing
) with the user's IP and user-agent.1.0- Any authenticated user can read settings; only
orowner
roles can update.admin
curl Examples
1. Login and Get Token
curl -X POST https://apiv2.waiflow.app/api/v2/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com", "password": "your-password" }'
2. Create a Scoped API Key
curl -X POST https://apiv2.waiflow.app/api/v2/api-keys \ -H "X-API-Key: $MOLTFLOW_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "outreach-bot", "scopes": ["messages:send", "custom-groups:manage", "bulk-send:manage"], "expires_in_days": 90 }'
3. Check Subscription and Usage
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \ "https://apiv2.waiflow.app/api/v2/billing/subscription"
4. Check Current Month Usage
curl -H "X-API-Key: $MOLTFLOW_API_KEY" \ "https://apiv2.waiflow.app/api/v2/usage/current"
Error Responses
| Status | Meaning |
|---|---|
| 400 | Invalid request body or parameters |
| 401 | Missing or invalid authentication |
| 403 | Insufficient permissions |
| 404 | Resource not found |
| 409 | Conflict (duplicate email, plan ID, etc.) |
| 422 | Validation error |
| 429 | Rate limit exceeded |
Tips
- API key security: The raw key is only shown once at creation. Store it in a secrets manager.
- Token refresh: Access tokens expire in 30 minutes. Use the refresh endpoint to get new ones without re-authenticating.
- Magic links: For passwordless login, use
thenmagic-link/request
.magic-link/verify - Plan limits: Use
to check remaining quotas before making API calls.GET /billing/subscription - Scoped keys: Always use the minimum scopes needed for your workflow.
Related Skills
- moltflow -- Core API: sessions, messaging, groups, labels, webhooks
- moltflow-outreach -- Bulk Send, Scheduled Messages, Custom Groups
- moltflow-leads -- Lead detection, pipeline tracking, bulk operations, CSV/JSON export
- moltflow-ai -- AI-powered auto-replies, voice transcription, RAG knowledge base, style profiles
- moltflow-a2a -- Agent-to-Agent protocol, encrypted messaging, content policy
- moltflow-reviews -- Review collection and testimonial management