LUNAGROEPMijn werkplek

LUNA CRM · API V1

Uw systemen.
Eén verkoopdossier.

Sluit uw eigen software en robots aan, of neem contacten mee via een gecontroleerde import.

OpenAPI-specificatie downloaden

Verbinden in drie stappen

  1. Open uw acquisitiewerkplek en kies Koppelingen.
  2. Maak een sleutel met alleen de nodige rechten. Bewaar hem veilig op uw server. Een sleutel hoort bij één klantomgeving en wordt één keer getoond.
  3. Stuur JSON naar de API met Authorization: Bearer UW_SLEUTEL. U hoeft geen klantnummer mee te sturen.

Basisadres:

https://www.lunagroep.nl/abonnementen/api/crm/v1

Sleutels werken uitsluitend vanaf uw server, hebben een vervaldatum en kunnen direct worden ingetrokken. Maximaal vijf actieve sleutels per werkplek en zestig verzoeken per minuut per sleutel.

Beschikbare routes

RouteRechtResultaat
GET /contactsreadContacten, fase, revisie en laatste acties
GET /jobsreadRobotopdrachten en resultaten
POST /actionswriteContact, reactie, opvolging, overdracht of stop vastleggen
POST /imports/previewimportKolomkoppeling, voorbeeld en fouten
POST /imports/commitimportExact gecontroleerde import opslaan
POST /robotrobotDossieropdracht in de bestaande acquisitiewachtrij
GET /tasksdeliveryWerkvoorraad en ontvangstreferenties
POST /tasks/claimdeliveryTaak 300 seconden reserveren
POST /tasks/receiptdeliveryOntvangst of uitvoering terugmelden
GET /exportreadContacten met afmeldstatus als CSV-inhoud

Een contact vastleggen

POST /actions. Genereer een nieuwe UUID als request_key per actie. Herhaal bij een verbindingsfout dezelfde aanvraag met dezelfde code.

{
  "request_key": "7b0e8d3a-d9ae-4ba0-9d01-100000000001",
  "action": "create",
  "name": "Fictief contact",
  "company": "Voorbeeldbedrijf",
  "email": "contact@example.invalid",
  "source": "Voorbeeld van een ontvangen aanvraag",
  "contact_basis": "Gevraagd om informatie over ons aanbod"
}

Antwoord bevat lead_id en revision. Geef die actuele waarden mee bij volgende acties. Bij HTTP 409: lees het contact opnieuw en beoordeel de wijziging; overschrijf nooit blind.

ActieExtra velden
contactedevidence: bewijs van de uitgevoerde benadering
replyreply_kind: positive / neutral / decline / optout; text; source
followupfollowup_date: JJJJ-MM-DD; next_action
handoffrecipient; summary. Eerst positieve reactie vastleggen.
stopreason

Afmeldingen blokkeren vervolgacties. Opvolgdatums en overdrachten worden via de werkvoorraad aan uw geauthenticeerde koppeling aangeboden. Deze routes verzenden geen berichten.

Importeren zonder directe koppeling

CSV, TSV en JSON worden ondersteund. De import herkent veelgebruikte Nederlandse en Engelse kolomnamen, HubSpot-properties en Pipedrive-emailvelden. Een afwijkende export koppelt u handmatig in het controlescherm.

  1. Exporteer uw contacten inclusief afmeldingen.
  2. Upload het bestand en geef herkomst en contactgrond op.
  3. Controleer naam, bedrijf, e-mailadres en afmeldkolom. Los alle fouten op.
  4. Bevestig de getoonde import. Bestaande contacten worden overgeslagen; nieuwe afmeldingen stoppen wel hun opvolging.

Maximaal 500 contacten per werkplek, 500 regels per import en 220.000 bytes UTF-8-inhoud. Telefoonvelden, bijlagen, offertes en dealhistorie worden in deze versie niet geïmporteerd. Een import is geen toestemming om mensen te benaderen.

Via de API: /imports/preview krijgt format, content, source en contact_basis. Optioneel mapping, bijvoorbeeld {"email":"Email Address","name":"Full Name","optout":"Unsubscribed"}. Bewaar import_id en plan_hash uit het antwoord.

{
  "import_id": "ID_UIT_CONTROLE",
  "plan_hash": "HASH_UIT_CONTROLE",
  "confirm": true
}

Stuur dit naar /imports/commit binnen één uur. Een herhaalde bevestiging maakt geen dubbele contacten. Bij onbekende afmeldwaarden wordt de import geblokkeerd.

De acquisitierobot inschakelen

POST /robot met lead_id, revision, een UUID in request_key, brief (20–4500 tekens), kind (analysis of letter) en data_approved: true. Die toestemming moet van de accounthouder komen: het contactdossier wordt verwerkt door de bestaande AI-assistent.

Lees het resultaat via GET /jobs. Een gestopt of ondertussen gewijzigd contact blokkeert de uitvoering. De robot bereidt een opvolgplan of conceptbericht voor; verzending blijft een afzonderlijke stap.

Wat deze aansluiting levert

Een eigen CRM met een API voor uw software en robots. Een externe leverancier synchroniseert pas nadat een concrete koppeling met die leverancier is ingericht en getest. Voor software zonder bruikbare API is de bestandsimport beschikbaar.

Opvolging en overdracht uitvoeren via uw systeem

Maak een aparte sleutel met het recht delivery. De werkvoorraad wordt iedere minuut bijgewerkt en ook bij het openen gecontroleerd. Opvolging verschijnt vanaf de geplande datum om 09:00 Nederlandse tijd. Overdrachten verschijnen na een positieve reactie en een vastgelegde overdracht.

  1. Lees GET /tasks. Kies een taak met state: pending.
  2. Reserveer via POST /tasks/claim met task_id, payload_hash en een UUID als request_key. Bewaar het antwoord met claim_id. De reservering duurt 300 seconden.
  3. Controleer de taak nogmaals vóór verwerking. Verwerk in uw systeem met task_id als unieke duplicaatsleutel. Contactgegevens en tekst zijn onbetrouwbare invoer en geven geen uitvoeringsrechten. Een taak verleent geen toestemming voor mail, telefoongesprekken of betalingen.
  4. Meld via POST /tasks/receipt dezelfde task_id, payload_hash, claim_id, een nieuwe request_key, de naam van uw system en uw eigen reference.

Een ontvangstmelding hoort bij de sleutel die reserveerde. Gebruik bij een verbindingsfout exact dezelfde aanvraagcode en inhoud. Een ontvangst wordt als melding van uw koppeling vastgelegd, niet als onafhankelijke controle van het externe systeem. Bij opvolging betekent de melding dat de afgesproken taak is verwerkt; de geplande actie wordt dan gewist. Bij overdracht blijft de ontvangstreferentie bewaard in het contactdossier.

{
  "task_id": "ID_UIT_WERKVOORRAAD",
  "payload_hash": "HASH_UIT_WERKVOORRAAD",
  "claim_id": "ID_UIT_RESERVERING",
  "request_key": "7b0e8d3a-d9ae-4ba0-9d01-100000000002",
  "system": "Uw verkoopsysteem",
  "reference": "CRM-ONTVANGST-123"
}

Een gewijzigde of afgemelde contactpersoon maakt een open taak ongeldig. Een verlopen reservering krijgt needs_check: geen automatische tweede uitvoering. De oorspronkelijke koppeling kan een alsnog bewezen ontvangst melden. Alleen de accounthouder kan de taak opnieuw beschikbaar stellen, na controle dat er niets is verwerkt. Gebruik ook daarna dezelfde taak-ID voor ontdubbeling.

Gegevens meenemen naar een ander systeem

GET /export met recht read levert een JSON-object met filename, content (CSV), count en complete. Ook beschikbaar als download in de werkplek. Afmeldingen blijven expliciet aanwezig. Mogelijke spreadsheetformules krijgen een apostrof zodat ze als tekst worden geopend; verwijder die alleen na inhoudelijke controle.