sendfox
Gère les listes email, contacts, campagnes et automatisations SendFox via l'API. Intégration avec WooCommerce, WordPress et workflows marketing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Gère les listes email, contacts, campagnes et automatisations SendFox via l'API. Intégration avec WooCommerce, WordPress et workflows marketing.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Voxtral TTS: Mistral voice cloning and text-to-speech via API.
Analyse SEO de mots-clés et scoring de contenu via NeuronWriter API. Automate your SEO pipeline from keyword research to WordPress publishing.
Générer des photos réalistes de personnes via PhotoGPT AI — portraits, headshots, mises en scène — en utilisant des modèles personnels entraînés (ex: modèle personnel) ou des modèles publics. Upload possible dans Mural via le flow assets.
YouTube transcripts to summaries, threads, blogs, and video uploads.
Créer, lire, modifier et organiser des murals (tableaux de collaboration visuelle mural.co) via l'API Mural — workspaces, rooms, widgets (stickies, formes, textes, images, connecteurs).
Créer des mises en page WordPress pro avec WPBakery — shortcodes + REST API (your WordPress sites).
| name | sendfox |
| category | |
| description | Gère les listes email, contacts, campagnes et automatisations SendFox via l'API. Intégration avec WooCommerce, WordPress et workflows marketing. |
| tags | ["email","marketing","newsletter","automation","woocommerce"] |
| requires | {"env_vars":["SENDFOX_API_KEY"],"python_packages":["requests"]} |
Gestion des listes email, contacts, campagnes et automatisations SendFox via l'API officielle.
SENDFOX_API_KEY dans .envhttps://api.sendfox.comGET /lists — lister les listes (id, name, subscriber_count)POST /lists — créer une listeDELETE /lists/{id} — supprimerGET /contacts?limit=100&offset=0 — lister avec paginationPOST /contacts — ajouter un contactPUT /contacts/{id} — mettre à jourDELETE /contacts/{id} — supprimerExemple body ajout :
{
"email": "contact@example.com",
"first_name": "Prénom",
"lists": [LIST_ID],
"tags": ["VIP", "Client"],
"custom_fields": {"formation": "Manager 3.0"}
}
GET /campaigns — listerPOST /campaigns — créerPOST /campaigns/{id}/send — envoyerGET /campaigns/{id}/stats — open_rate, click_rate, unsubscribe_rateGET /automations — lister (lecture seule via API, création uniquement dans l'UI)GET /lists/{id}/growth — croissance des abonnés (30 jours)import os, requests, re
BASE = "https://api.sendfox.com"
HEADERS = {"Authorization": f"Bearer {os.getenv('SENDFOX_API_KEY')}"}
def list_lists():
r = requests.get(f"{BASE}/lists", headers=HEADERS)
data = r.json()
return data['data'] if isinstance(data, dict) and 'data' in data else data
def add_contact(email, list_name, tags=None, first_name=None, custom_fields=None):
if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
raise ValueError("Email invalide")
lists = list_lists()
list_id = next((l["id"] for l in lists if l["name"] == list_name), None)
if not list_id:
raise ValueError(f"Liste '{list_name}' introuvable")
body = {"email": email, "lists": [list_id], "status": "subscribed"}
if first_name: body["first_name"] = first_name
if tags: body["tags"] = tags
if custom_fields: body["custom_fields"] = custom_fields
return requests.post(f"{BASE}/contacts", headers={**HEADERS, "Content-Type": "application/json"}, json=body).json()
def create_campaign(name, subject, content, list_name, scheduled_at=None):
lists = list_lists()
list_id = next((l["id"] for l in lists if l["name"] == list_name), None)
body = {"name": name, "subject": subject, "content": content, "list_ids": [list_id]}
if scheduled_at: body["scheduled_at"] = scheduled_at
return requests.post(f"{BASE}/campaigns", headers={**HEADERS, "Content-Type": "application/json"}, json=body).json()
def send_campaign(campaign_id):
return requests.post(f"{BASE}/campaigns/{campaign_id}/send", headers=HEADERS).json()
def campaign_stats(campaign_id):
return requests.get(f"{BASE}/campaigns/{campaign_id}/stats", headers=HEADERS).json()
lists = list_lists()
for lst in lists:
count = lst.get("email_count") or lst.get("contact_count") or lst.get("subscribed_contacts_count", "?")
print(f"- {lst['name']} ({count} abonnés)")
add_contact(
email="client@example.com",
list_name="Ma Liste",
tags=["Client", "Formation_Agile"],
custom_fields={"formation": "Manager 3.0", "date_achat": "2026-01-01"}
)
campaign = create_campaign(
name="Lancement Formation",
subject="Nouvelle session disponible !",
content="<html><body><h1>Inscrivez-vous</h1></body></html>",
list_name="Ma Liste",
scheduled_at="2026-09-01T09:00:00Z"
)
send_campaign(campaign["id"])
time.sleep(1) en bouclesearch_contacts(email=...) avant ajoutemail_count, contact_count, ou subscribed_contacts_count