Kicklace, an AI-powered CRM for micro SaaS
Vercel CRM
Connect Vercel and every production deployment becomes a record on a board of its own — which is what makes “when production deploys, draft the changelog email” an ordinary automation rather than a script.
A deployment becomes a record
A deployment is not a person, and Kicklace's automations run on records. So connecting Vercel gives the workspace a Releases board of its own.
Every production deployment that succeeds becomes one Release in the stage Deployed, on a pipeline of two — Deployed, then Announced. A preview is somebody's branch and is ignored, and so are a build starting, failing or being cancelled: a customer hears about what shipped, not about what was attempted.
- Its name
- The commit message's first line. A deployment made from the CLI carries no commit at all, and that is a real deployment: it is named after its id and the commit fields are left blank.
- Where it is
urlis the deployment's page in Vercel's dashboard, else its own host.- What shipped
commit,branchandsha. Vercel prefixes the commit keys with the git provider, and all three are read, so GitHub, GitLab and Bitbucket all land the same.- When
deployedAt, the day Vercel says the event happened, anddeploymentId, which is what stops one deployment landing twice.
When production deploys, draft the changelog email
That sentence is the reason a deployment is a record. Once it enters a stage, everything the automation engine already does applies to it.
The Release notes starter installs it in one press: a Product updates list, an email to rewrite in your own words, and one automation that copies those words into a draft when a production deployment succeeds, then tells you where the draft is.
Nothing is ever sent and nothing is scheduled. You open the draft, write what actually changed, and press send — which is the only sensible arrangement, since the machine knows a deployment shipped and not what it was for. It arrives paused, like everything a starter installs.
The same trigger takes anything else the engine can do: post the release to Slack, put a task on somebody's list to update the docs, or sign a request to your own API. And the board is a board — a release you have written about is dragged to Announced, so what is still unannounced is a column rather than a memory.
Connecting it by hand
Three steps, no code, and nothing to deploy.
- 1. Make the address. Settings → Integrations → Vercel → Connect Vercel. You get an address of the form
https://<your Kicklace>/api/webhooks/vercel/…and the workspace gains the Releases object. - 2. Register it in Vercel. Your team's Settings → Webhooks → Create Webhook. Tick Deployment Succeeded, choose the projects it covers, and paste the address. Ticking more events is harmless: everything else is answered 200 and ignored, which is what stops Vercel retrying it.
- 3. Bring back the secret. Vercel's “Webhook Created” dialog shows a secret once. Paste it into the second step in Kicklace. Until it is in, nothing is taken: the post is refused and the refusal is on your workspace's heartbeat, in English.
Vercel signs with x-vercel-signature, an HMAC-SHA1 of the raw request body, which Kicklace compares in constant time. A second post for a deployment it already has writes nothing and fires nothing. Disconnecting keeps the Releases object and every release in it.
Visitors are the tag's job, not Vercel's
Worth saying plainly, because it is the one thing this door cannot do.
Vercel has no webhook for the people who visit your site, so nothing about your traffic arrives this way. That side is the tag: one component in your layout, or one line of HTML anywhere else, and page reads, the campaign somebody arrived on, and the signup forms it can hear all land on the same records your releases sit beside.
The Next.js page has the tag and the two calls a sign-up route makes.
Questions
- Which deployments become records?
- Only a production deployment that succeeded. A preview is somebody's branch, and a build starting, failing or being cancelled is a build's own progress: a customer hears about what shipped, not about what was attempted. Everything else Vercel sends is answered and ignored, which is what stops it retrying.
- Does it send the changelog email by itself?
- No. The automation copies your template's words into a draft and tells you where it is; you write what actually changed and press send. Nothing is sent and nothing is scheduled — the machine knows a deployment shipped, not what it was for.
- Can Kicklace see my visitors through Vercel?
- No, and nothing here pretends otherwise: Vercel has no webhook for the people who visit your site. Traffic is the tag's job — one component in your Next.js layout, or one line of HTML anywhere else — and it lands on the same records your releases sit beside.
- What happens if I disconnect it?
- The Releases object and every release already in it stay exactly where they are. Disconnecting only stops new deployments arriving; nothing in Kicklace is deleted, and nothing changes in your Vercel project.
- Does it need a paid Vercel plan?
- Vercel makes account-level webhooks a Pro and Enterprise feature, and allows a team up to twenty of them. That is their rule rather than ours: the address Kicklace gives you is the same either way, and it is one webhook.
Read next
Join the waitlist
We are onboarding one company at a time. Leave your email and we will let you know when your workspace is ready.