Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .github/release-notes/v0.4.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
Adwarp can now build LinkedIn matched audiences straight from HubSpot, the same way it already does from Salesforce.

### HubSpot audiences

- New MCP tool `audience_from_hubspot` and CLI command `adwarp audience from-hubspot`. Point it at a HubSpot list or a set of property filters, pick contacts or companies, and it uploads the result as a LinkedIn matched audience.
- It reads HubSpot with a private app token you create in your own HubSpot account, with read-only scopes for contacts, companies and lists. Put the token in `~/.adwarp/hubspot.json` or `ADWARP_HUBSPOT_TOKEN`.
- Contacts go through the same cleaning as CSV uploads, and only SHA-256 hashes of the emails leave your machine. `--dry-run` shows the counts and a masked sample, and uploads nothing.
- It runs locally only. The hosted endpoint doesn't register it.
- Setup and examples: https://adwarp.dev/docs/hubspot

### Docs and the hosted endpoint

- The docs now live at https://adwarp.dev/docs, with new setup pages for Claude Code, Claude Desktop, Codex, Cursor and the CLI, and a LinkedIn Ads overview.
- `docs/tools.json` now marks the tools that need your machine (CSV and Salesforce uploads, HubSpot audiences and the change journal) as not hosted.
- The hosted app at mcp.adwarp.dev is now just the MCP endpoint. Its old pages redirect to adwarp.dev, and `https://mcp.adwarp.dev/api/mcp` works as before.

### Other changes

- Company list uploads now check LinkedIn's 300,000 row limit, as contact lists already did.
- `docs/tools.json` lists 37 tools: 28 for LinkedIn Ads and 9 for Google Ads.
2 changes: 1 addition & 1 deletion packages/adwarp/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "adwarp",
"version": "0.3.0",
"version": "0.4.0",
"description": "Open-source ad agent for LinkedIn Ads and Google Ads. Drafts campaigns, audiences and reports from Claude Code, Cursor, Codex or other MCP clients that can run a local server.",
"keywords": [
"mcp",
Expand Down
2 changes: 1 addition & 1 deletion packages/shared/src/version.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
* server version. Must match packages/adwarp/package.json, which the npm
* package build checks.
*/
export const VERSION = "0.3.0";
export const VERSION = "0.4.0";
4 changes: 2 additions & 2 deletions server.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
"source": "github",
"id": "1269596073"
},
"version": "0.3.0",
"version": "0.4.0",
"packages": [
{
"registryType": "npm",
"identifier": "adwarp",
"version": "0.3.0",
"version": "0.4.0",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
Expand Down
Loading