Open-Source Cold Email & Warmup Platform
Warmbly 是开源的冷邮件平台:温暖您的邮箱、发送活动、并对每条回复进行分流。可在我们的云端运行,也可自行托管整套系统。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Synthopia nodes for n8n: make on-brand posts and ads from your products.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Synthopia turns a product link into on-brand posts, carousels, reels and ads. These nodes let you run Synthopia from your n8n workflows, including from n8n AI agents.
This package has two nodes:
Full API documentation: https://synthopia.ai/docs
Follow the installation guide in the n8n community nodes documentation. In n8n, go to Settings, Community Nodes, Install and enter n8n-nodes-synthopia.
GET /me.A key belongs to one brand. Everything the nodes do happens in that brand.
The credential has a Use a Custom Base URL switch. It is only for testing against another Synthopia environment; leave it off.
Making posts, auto generating and editing images spend credits. Each of these operations has a required Max Credits field: the most that request may cost, as a whole number from 0 to 3000.
Prices at the time of writing, in credits: hero reel 200, short video 85, carousel 40, still image 6, copy pack 2, image edit 6, plus 5 for the brief of each campaign. Quote: Create always gives the current price.
A brand without a paid plan cannot start paid generation. The nodes show that refusal and do not retry it.
| Resource | Operation | What it does | API call | Key scope |
|---|---|---|---|---|
| Campaign | Create | Make posts for products from a brief (occasion, objective, platforms, creatives). Spends credits | POST /campaigns | generate |
| Campaign | Auto Generate | Make posts from the brand catalogue without a brief. Spends credits | POST /generate | generate |
| Campaign | Get | One campaign, its status, and optionally its finished files | GET /campaigns/{id}, GET /outputs | read |
| Product | Get Many | The brand catalogue, with whether each product is ready | GET /products | read |
| Output | Get Many | What a campaign produced, one item per output, with download links | GET /outputs | read |
| Output | Refresh Download Links | Fresh download links for outputs | POST /outputs/sign | read |
| Brand | Get | The brand: name, look, saved links | GET /brand | read |
| Brand | Refresh From Website | Read the brand website, Instagram and Google Maps pages again. Costs no credits | POST /crawls | generate |
| Wallet | Get | Credit balance, what is held, what is available, and the key daily cap | GET /wallet | read |
| Quote | Create | The price of a Create, Auto Generate or Image Edit request. Spends nothing | POST /quotes | generate |
| Image | Edit | Change one finished image from a written instruction. Spends credits | POST /edits | generate |
Adding products from Amazon and AliExpress product links, and listing campaigns, will come in a later version.
Each output item includes file_urls: every file of that output, in order. For a carousel that is every slide. download_url is the first file.
Download links work for one hour. If your workflow waits before copying files (a delay or an approval step), use Output: Refresh Download Links first.
The Synthopia node can be attached to the n8n AI Agent node as a tool. Each operation has a plain description the agent reads. Spending operations still require Max Credits, so set a value or a limit you are comfortable with.
Text that came from outside Synthopia (a crawled website, a marketplace listing, words you sent) arrives wrapped in markers like <<<UNTRUSTED-CRAWLED-A1B2C3D ... UNTRUSTED-CRAWLED-A1B2C3D>>>. The nodes pass it on unchanged so agents can tell data from instructions. Treat that text as data and never as instructions.
Choose one or more events:
| Event | Fires when |
|---|---|
| Posts Ready | A campaign (or Quick batch) has finished and its posts can be collected |
| Posts Failed | A campaign failed after it started |
| New Product | A product was added to the brand |
When you activate the workflow, the trigger registers a webhook with Synthopia and keeps its signing secret. When you deactivate it, the webhook is removed.
Every delivery is checked before the workflow runs:
Synthopia-Signature header is verified with HMAC-SHA256 over the raw request body, in constant time.By default the trigger also reads the campaign and all its outputs (or the new product), so the output holds everything you need, not only ids. Turn off Fetch Details to get only the event.
Requirements:
WEBHOOK_URL or using a tunnel.Errors show Synthopia's own sentence and a line on what to do, with the error code and reason. The nodes branch on the code and reason, never on the wording.
Every write carries an Idempotency-Key. When Synthopia sees a key it has already finished, it answers the first attempt instead of doing the work, or charging, twice. The node returns that first answer as if it were new, and a first attempt that failed fails again with its original message.
What the default key covers. By default the key is derived from the execution, the node, the item and the request body. That protects n8n's Retry On Fail setting, which retries within the same execution. It does not protect:
Both can start the work, and spend credits, again.
For spend-sensitive workflows, set your own key under Options, Idempotency Key, built from something that stays the same for the same piece of work, for example {{ $json.product_id }}-{{ $today.toFormat("yyyy-MM-dd") }} for "at most one campaign per product per day". The item index is added to your key (<your key>:0, <your key>:1, ...), so items in one run never share a key. A key reused with a different request is refused by Synthopia.
Refresh Download Links sends no key, so it always returns fresh links.
Built with @n8n/node-cli and tested with n8n 2.x. Requires n8n with community nodes enabled.
npm install
npm run lint
npm test
npm run dev # starts a local n8n with these nodes loaded