Lav en website-formular med Claude eller Cursor der sender leads til Salesbase
Denne guide viser, hvordan I med Claude, Cursor eller lignende AI-værktøjer hurtigt kan få en kontaktformular på jeres website, der opretter leads i Salesbase via REST API.
Forudsætninger
- Salesbase workspace med adgang til Indstillinger → API & Webhooks
- Et website eller landingsside hvor formularen skal leve
- Mulighed for en lille server-side funktion (Vercel, Netlify, Cloudflare Workers, jeres egen server)
Vigtigt om sikkerhed
Gem aldrig API-nøglen i browser-JavaScript. Nøglen skal kun ligge på serveren (miljøvariabel). Browseren kalder jeres egen endpoint, som videresender til Salesbase.
Trin 1: Opret API-nøgle
- Gå til Indstillinger → API & Webhooks
- Fanen API-nøgler
- Klik Opret API-nøgle
- Navn: fx "Website kontaktformular"
- Vælg scope inbound (eller write)
- Kopiér nøglen med det samme
Gem som SALESBASE_API_KEY i jeres hosting-miljø.
Trin 2: Giv AI'en den rigtige kontekst
Download eller link til API-referencen:
https://app.salesbase.dk/api/v1/docs/markdown- Eller Indstillinger → API & Webhooks → Dokumentation → Download
Se også Styr Salesbase med AI-agenter.
Trin 3: Prompt til Claude eller Cursor
Kopiér og tilpas denne prompt:
Byg en kontaktformular til vores website med server-side integration til Salesbase.
Krav:
- Felter: fornavn, efternavn, email, telefon, virksomhed, besked (valgfri)
- Frontend: simpel, responsiv HTML/CSS (ingen framework-krav)
- Backend: én POST-route der kalder Salesbase POST /api/v1/inbound
- Auth: Authorization Bearer fra process.env.SALESBASE_API_KEY
- Body til Salesbase:
- companyName (virksomhed eller fornavn + efternavn)
- firstName, lastName
- personEmail, personPhone
- title: "Website: {virksomhed eller navn}"
- source: "website"
- sourceChannel: "contact-form"
- createDeal: false
- createLead: true
- customFields.message med beskedteksten
- Vis dansk success/fejl til brugeren
- Valider email server-side
- API-nøgle må ALDRIG sendes til browseren
Læs https://app.salesbase.dk/api/v1/docs/markdown for inbound-endpoint.
Trin 4: Eksempel (Next.js API route)
Server-side handler der modtager formular og opretter lead:
// app/api/contact/route.js
export async function POST(request) {
const body = await request.json();
const { firstName, lastName, email, phone, company, message } = body;
if (!email?.includes("@")) {
return Response.json({ error: "Ugyldig email" }, { status: 400 });
}
const payload = {
companyName: company || [firstName, lastName].filter(Boolean).join(" "),
firstName,
lastName,
personEmail: email,
personPhone: phone || undefined,
title: `Website: ${company || firstName}`,
source: "website",
sourceChannel: "contact-form",
createDeal: false,
createLead: true,
customFields: message ? { message } : {},
};
const res = await fetch("https://app.salesbase.dk/api/v1/inbound", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.SALESBASE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
});
if (!res.ok) {
const err = await res.json().catch(() => ({}));
return Response.json({ error: err.error || "Kunne ikke gemme" }, { status: 502 });
}
return Response.json({ ok: true });
}
Frontend kalder /api/contact (jeres egen URL), ikke Salesbase direkte.
Alternativ: Kun lead uden virksomhed/person
Simplere payload med POST /api/v1/leads:
{
"title": "Website: Acme ApS",
"email": "kontakt@acme.dk",
"phone": "+4512345678",
"source": "website",
"sourceChannel": "contact-form"
}
Kræver scope write. Opretter kun lead-record.
Alternativ uden egen server: Automation webhook
Hvis I ikke har server-side kode:
- Opret automatisering med Webhook-trigger
- Tilføj Opret record (Lead)
- Brug Make/n8n/Formcarry til at POST'e til
/api/webhooks/automation/{id}medx-webhook-secret
Se Inbound webhooks.
Test
- Udfyld formularen på website
- Tjek Leads i Salesbase (filtrer på kilde
website) - Brug Indstillinger → API & Webhooks → Aktivitet ved fejl
Test med cURL mod jeres egen route først, derefter mod Salesbase Playground i appen.
Resultat
Besøgende udfylder formularen → lead oprettes automatisk → teamet kan følge op via dialer, email eller automatisering.