PlanDocket

Massenimport

Business+

Importieren Sie mehrere Datensätze auf einmal.

Erforderliche Bereiche: contacts participants
Zugriffsstufe: GET {scope}:read POST / PUT / PATCH / DELETE {scope}:write Mehr zu Zugriffsstufen
Der Endpunkt /contacts erfordert den Bereich "contacts", der Endpunkt /participants erfordert den Bereich "participants".

Endpunkte

POST /api/v1/bulk-import/contacts

Kontakte importieren

POST /api/v1/bulk-import/participants

Teilnehmer importieren

Request-Schema

Parameter Typ Erforderlich Beschreibung
records array Ja Array von zu importierenden Datensätzen (max. 1000)
field_mapping object Nein Objekt zur Zuordnung von Quell- zu Zielfeldnamen
mode string Nein Import-Modus: create (bestehende Datensätze werden übersprungen, Grund "exists"), upsert oder update (Standard: create). Unveränderte Teilnehmer werden mit Grund "no_changes" als übersprungen gemeldet
match_field string Nein Feld zum Abgleich bestehender Datensätze: email oder customer_number (Standard: email)
skip_on_error boolean Nein Ob Datensätze mit Fehlern übersprungen werden sollen (Standard: true)
event_key string Nein Event-Schlüssel für Teilnehmerimport (erforderlich für Teilnehmer)
create_contacts boolean Nein Ob nicht existierende Kontakte beim Teilnehmerimport erstellt werden sollen (Standard: true; erfordert den Bereich contacts:write)

Response-Schema

Feld Typ
total integer
created integer
updated integer
skipped integer
contacts_created integer
errors array
details array

Codebeispiele

curl -X POST "https://ihr-mandant.plandocket.com/api/v1/bulk-import/contacts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "mode": "create",
    "match_field": "email",
    "records": [
        {
            "company_name": "Acme GmbH",
            "email": "info@acme.example",
            "first_name": "Max",
            "last_name": "Mustermann"
        }
    ]
}'
<?php
$apiKey = 'YOUR_API_KEY';
$baseUrl = 'https://ihr-mandant.plandocket.com';

$payload = [
    'mode' => 'create',
    'match_field' => 'email',
    'records' => [
        [
            'company_name' => 'Acme GmbH',
            'email' => 'info@acme.example',
            'first_name' => 'Max',
            'last_name' => 'Mustermann',
        ],
    ],
];

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => $baseUrl . '/api/v1/bulk-import/contacts',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = curl_exec($ch);
curl_close($ch);

$data = json_decode($response, true);
print_r($data);
const apiKey = 'YOUR_API_KEY';
const baseUrl = 'https://ihr-mandant.plandocket.com';

const payload = {
    "mode": "create",
    "match_field": "email",
    "records": [
        {
            "company_name": "Acme GmbH",
            "email": "info@acme.example",
            "first_name": "Max",
            "last_name": "Mustermann"
        }
    ]
};

const response = await fetch(`${baseUrl}/api/v1/bulk-import/contacts`, {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(payload),
});

const data = await response.json();
console.log(data);
import requests

api_key = 'YOUR_API_KEY'
base_url = 'https://ihr-mandant.plandocket.com'

headers = {
    'Authorization': f'Bearer {api_key}',
}

payload = {
    'mode': 'create',
    'match_field': 'email',
    'records': [
        {
            'company_name': 'Acme GmbH',
            'email': 'info@acme.example',
            'first_name': 'Max',
            'last_name': 'Mustermann',
        },
    ],
}

response = requests.request('POST', f'{base_url}/api/v1/bulk-import/contacts', headers=headers, json=payload)
data = response.json()
print(data)

Beispiel-Antwort

200 OK
{
    "data": {
        "total": 1,
        "created": 1,
        "updated": 1,
        "skipped": 1,
        "contacts_created": 1,
        "errors": [],
        "details": []
    }
}
API Version v1.0