API

Eine Schnittstelle, viele Möglichkeiten

Teilnehmerlisten

Um Teilnehmer zur Umfrage über das easyfeedback E-Mail-Einladungstool einzuladen, werden Teilnehmerlisten benötigt. Die Teilnehmerlisten und die Einträge (Teilnehmer) in den Listen können über die API ausgelesen oder anonymisiert werden. Zu beachten ist, dass Teilnehmerlisten technisch an zwei Stellen in easyfeedback verwendet werden:

  1. Als „globale“ Teilnehmerliste über den Menüpunkt „Teilnehmerlisten
  2. Als Teilnehmerliste, die unter „E-Mail Einladung“ der Umfrage hinzugefügt wurde

Globale Teilnehmerlisten des gesamten Account

Diese Methode bietet Zugriff auf alle Teilnehmerlisten, die für den Account angelegt wurden.

URL

/api/v2/participants/lists

Methode

GET

Parameter

page, limit

Rückgabe

JSON

Rückgabewerte

Id

int

ID des Datensatzes

CustomerId

int

ID des Kunden

GroupId

int

Gruppen ID

Name

str

Name der Liste

Participants

int

Anzahl der Teilnehmer

CreatedAt

date

Erstellungsdatum der Liste

UpdatedAt

date

Letzte Änderung der Liste

Beispiel: Alle Teilnehmerlisten
PHP
<?php

// Hole alle Teilnehmerlisten
// getParticipantsLists.php
// v1.0.0

// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';

$apiUrl = 'https://app.easy-feedback.com/api/v2/participants/lists';

$ch = curl_init($apiUrl);

// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));

// Anfrage durchführen
$response = curl_exec($ch);

// Das Ergebnis als JSON anzeigen
if ($response === false) {
    echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
    $jsonData = json_decode($response, true);
    if ($jsonData === null) {
        echo 'Fehler beim Dekodieren der JSON-Antwort.';
    } else {
        echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT) . "</pre>";
    }
}

// cURL-Verbindung schließen
curl_close($ch);

?>

Teilnehmer einer globalen Teilnehmerliste

Diese Methode bietet Zugriff auf die Teilnehmer, die in einer globalen Teilnehmerliste angelegt wurden.

URL

/api/v2/participants/users

Methode

GET

Parameter

participantlistid, email, usercode, firstname, lastname, value1, value2, value3, value4, value5, page, limit

Rückgabe

JSON

Rückgabewerte

Id

int

ID des Datensatzes

ParticipantListId

int

ID der Teilnehmerliste

Email

str

E-Mail

Title

str

Anrede

FirstName

str

Vorname

LastName

str

Nachname

ReferenceText

str

Wert aus Spalte „Referenztext“

AccessCode

str

Zugriffscode für die Teilnahme an der Umfrage

CreatedAt

date

Anlagedatum

UpdatedAt

date

Änderungsdatum

Beispiel: Alle Teilnehmer einer Teilnehmerliste
PHP
<?php

// Hole alle Teilnehmer einer Teilnehmerliste
// getParticipantsUsers.php
// v1.0.0

// access Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';

 	
// Teilnehmer nach z.B. E-Mail filtern (emailfromparticipantslist@easy-feedback.de ersetzen durch eigene E-Mail aus der Teilnehmerliste)
$participantlistid = '';
$email = 'emailfromparticipantslist@easy-feedback.de';
$usercode = '';
$firstname = '';
$lastname = '';
$value1 = '';
$value2 = '';
$value3 = '';
$value4 = '';
$value5 = '';
$page = '';
$limit = '';

$apiUrl = 'https://app.easy-feedback.com/api/v2/participants/users?participantlistid=' . $participantlistid .
'&email=' . urlencode($email) . '&usercode=' . urlencode($usercode) . '&firstname=' . urlencode($firstname) . '&lastname=' . urlencode($lastname) .
'&value1=' . urlencode($value1) . '&value2=' . urlencode($value2) . '&value3=' . urlencode($value3) . '&value4=' . urlencode($value4) .
'&value5=' . urlencode($value5) . '&page=' . $page . '&limit=' . $limit;

$ch = curl_init($apiUrl);

// cURL-Optionen konfigurieren
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));

// Anfrage durchführen
$response = curl_exec($ch);

// Das Ergebnis als JSON anzeigen
if ($response === false) {
    echo 'Fehler bei der cURL-Anfrage: ' . curl_error($ch);
} else {
    $jsonData = json_decode($response, true);
    if ($jsonData === null) {
        echo 'Fehler beim Dekodieren der JSON-Antwort.';
    } else {
        echo 'JSON-Antwort: <pre>' . json_encode($jsonData, JSON_PRETTY_PRINT) . "</pre>";
    }
}

// cURL-Verbindung schließen
curl_close($ch);

?>

Zusätzliche Spalten (Values) in der Teilnehmerliste

Innerhalb der Teilnehmerliste können beliebig viele weitere Spalten (Values) pro Teilnehmer hinzugefügt werden. Mit dieser Methode können die zusätzlichen Spalten abgefragt werden.

URL

/api/v2/participants/customvalues

Methode

GET

Parameter

participantlistid, page, limit

Rückgabe

JSON

Rückgabewerte

ID

int

Datensatz-ID

ParticipantListId

int

ID der Teilnehmerliste

Name

str

Name des Feldes

Position

int

Postion des Feldes

Value der zusätzlichen Spalten in der Teilnehmerliste

Mit dieser Methode lassen sich die Values der zusätzlichen Spalten pro Teilnehmer auslesen.

URL

/api/v2/participants/users/customvalues

Methode

GET

Parameter

participantlistid, participantlistentryid, value, page, limit

Rückgabe

JSON

Rückgabewerte

Id

int

Datensatz-ID

ParticipantListUserId

int

ID des Teilnehmers in der Teilnehmerliste

ParticipantListCustomId

int

ID des Zusatzfeldes

Value

str

Im Zusatzfeld für den Teilnehmer gespeicherter Wert

Beispiel: Alle Daten aus Teilnehmerlisten mit verknüpften benutzerdefinierten Werte
PHP
// Hole alle Daten aus Teilnehmerliste/n einer Umfrage und verknüpfe benutzerdefinierte Werte
// getSurveysParticipantsListsEntryWithCustomValues.php
// v1.0.0

// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';

// Umfrage-ID hier einfügen
$surveyid = 'YOUR_SURVEYID';

// API-URLs
$apiUrl1 = 'https://app.easy-feedback.com/api/v2/surveys/participants/lists/entry/?surveyid=' . $surveyid;
$apiUrl2 = 'https://app.easy-feedback.com/api/v2/participants/users/customvalues';

// cURL-Initialisierung für Teilnehmerliste (participantslists)
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
    echo 'Fehler bei der cURL-Anfrage für Teilnehmerliste (participants lists): ' . curl_error($ch1);
    exit;
}
curl_close($ch1);

// cURL-Initialisierung für benutzerdefinierte Werte (customvalues)
$ch2 = curl_init($apiUrl2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));
$response2 = curl_exec($ch2);
if ($response2 === false) {
    echo 'Fehler bei der cURL-Anfrage für benutzerdefinierte Werte (customvalues): ' . curl_error($ch2);
    exit;
}
curl_close($ch2);

// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
    echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmerliste (participants lists):.';
    exit;
}
$jsonData2 = json_decode($response2, true);
if ($jsonData2 === null) {
    echo 'Fehler beim Dekodieren der JSON-Antwort für benutzerdefinierte Werte (customvalues).';
    exit;
}

// Verknüpfung der Daten
if ($jsonData1 && $jsonData2) {
    foreach ($jsonData1['results'] as &$participantslists) {
        $participantListUserId = $participantslists['ParticipantListUserId'];
        $customValues = array_filter($jsonData2['results'], function ($customValue) use ($participantListUserId) {
            return $customValue['ParticipantListUserId'] === $participantListUserId;
        });
        // Füge die Werte der Custom Values direkt zu $participantslists hinzu
        $i = 1;
        foreach ($customValues as $customValue) {
            $participantslists['Value' . $i++] = $customValue['Value'];
        }
    }
}

// Ausgabe des kombinierten JSON
echo 'JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";

?>
Beispiel: Alle Daten aus Teilnehmerlisten mit Verknüpfung zu benutzerdefinierten Werte aus der Teilnehmerliste
PHP
<?php

// Hole alle Daten aus Teilnehmerliste/n und verknüpfe benutzerdefinierte Werte (custom values)
// getParticipantsUsersWithCustomValues.php
// v1.0.0

// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';

// Teilnehmerlisten-ID hier einfügen
$participantlistid = 'YOUR_PARTICIPANT_LIST_ID';

// API-URLs
$apiUrl1 = 'https://app.easy-feedback.com/api/v2/participants/users/?participantlistid=' . $participantlistid;
$apiUrl2 = 'https://app.easy-feedback.com/api/v2/participants/users/customvalues/?participantlistid=' . $participantlistid;

// cURL-Initialisierung für Teilnehmerliste (participantslists)
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
    echo 'Fehler bei der cURL-Anfrage für Teilnehmerliste (participants lists): ' . curl_error($ch1);
    exit;
}
curl_close($ch1);

// cURL-Initialisierung für benutzerdefinierte Werte (custom values)
$ch2 = curl_init($apiUrl2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));
$response2 = curl_exec($ch2);
if ($response2 === false) {
    echo 'Fehler bei der cURL-Anfrage für benutzerdefinierte Werte (customvalues): ' . curl_error($ch2);
    exit;
}
curl_close($ch2);

// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
    echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmerliste (participants lists):.';
    exit;
}
$jsonData2 = json_decode($response2, true);
if ($jsonData2 === null) {
    echo 'Fehler beim Dekodieren der JSON-Antwort für benutzerdefinierte Werte (customvalues).';
    exit;
}

// Verknüpfung der Daten
if ($jsonData1 && $jsonData2) {
    foreach ($jsonData1['results'] as &$participantsusers) {
        $participantListUserId = $participantsusers['Id'];
        $customValues = array_filter($jsonData2['results'], function ($customValue) use ($participantListUserId) {
            return $customValue['ParticipantListUserId'] === $participantListUserId;
        });
        // Füge die Werte der Custom Values direkt zu $participantsusers hinzu
        $i = 1;
        foreach ($customValues as $customValue) {
            $participantsusers['Value' . $i++] = $customValue['Value'];
        }
    }
}

// Ausgabe des kombinierten JSON
echo 'JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";

?>

Teilnehmerlisten, die unter E-Mail-Einladung hinzugefügt wurden

Diese Methode bietet Zugriff auf die Teilnehmerlisten, die unter „Teilnehmer einladen“ bei E-Mail-Einladungen einer Umfrage zugewiesen sind.

URL

/api/v2/surveys/participants/lists

Methode

GET

Parameter

surveyid, page, limit

Rückgabe

JSON

Rückgabewerte

Id

int

ID des Datensatzes

SurveyId

int

Umfrage-ID

Name

str

Name der Liste

Teilnehmer einer Liste unter E-Mail-Einladungen

Diese Methode bietet Zugriff auf alle Teilnehmer einer Teilnehmerliste, die an einer Umfrage teilgenommen haben. Der surveyid Parameter ist bei dieser Methode verpflichtend!

URL

/api/v2/surveys/participants/lists/entry

Methode

GET

Parameter

surveyid (verpflichtend), surveyparticipantlistid, email, usercode, firstname, lastname, value1, value2, value3, value4, value5, page, limit

Rückgabe

JSON

Rückgabewerte

Id

int

ID des Datensatzes

SurveyParticipantListId

int

ID der Teilnehmerliste

SurveyParticipantListUserId

int

ID des Teilnehmers in der Teilnehmerliste

MemberId

int

ID des Teilnehmers der Umfrage

ParticipantUserCode

str

Usercode, der aus der Teilnehmerliste an den Umfragelink gesetzt wird

Email

str

E-Mail

Title

str

Anrede

FirstName

str

Vorname

LastName

str

Nachname

ReferenceText

str

Wert aus Spalte „Referenztext“

AccessCode

str

Zugriffscode für die Teilnahme an der Umfrage

SendDate1

date

Versanddatum erste Einladung

SendDate2

date

Versanddatum zweite Einladung

SendDate3

date

Versanddatum dritte Einladung

Beispiel: Alle Teilnehmer einer Umfrage mit Verknüpfung zu benutzerdefinierten Werte aus der Teilnehmerliste
PHP
<?php

// Hole alle Teilnehmer einer Umfrage und verknüpfe benutzerdefinierte Werte (Custom Values) aus den Teilnehmerlisten
// getMembersWithCustomValues.php
// v1.1.0

// Zugriffs-Token hier einfügen
$accessToken = 'YOUR_ACCESS_TOKEN';

// Umfrage-ID hier einfügen
$surveyid = 'YOUR_SURVEYID';

// Basis-URL für API
$baseUrl = 'https://app.easy-feedback.com';

// API-URL für die Teilnehmer abrufen
$apiUrl1 = $baseUrl . '/api/v2/members?surveyid=' . $surveyid;

echo "Hole Teilnehmer: " . $apiUrl1;
 
// cURL-Initialisierung für Teilnehmer
$ch1 = curl_init($apiUrl1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));
$response1 = curl_exec($ch1);
if ($response1 === false) {
    echo 'Fehler bei der cURL-Anfrage für Teilnehmer: ' . curl_error($ch1);
    exit;
}
curl_close($ch1);

// JSON-Daten dekodieren
$jsonData1 = json_decode($response1, true);
if ($jsonData1 === null) {
    echo 'Fehler beim Dekodieren der JSON-Antwort für Teilnehmer.';
    exit;
}

// Initialisiere ein leeres Array für die Custom Values
$customValues = [];

// API-URLs für die Custom Values abrufen und verknüpfen
if (isset($jsonData1['results']) && is_array($jsonData1['results'])) {
    foreach ($jsonData1['results'] as $participant) {

	// 1 Sekunde Pause zwischen den API-Aufrufen
	sleep(1);

        $participantlistid = $participant['ParticipantListId'];

        // Überprüfen, ob eine Participant List ID verwendet wurde
        if ($participantlistid > 0 && !isset($customValues[$participantlistid])) {
            $apiUrl2 = $baseUrl . '/api/v2/participants/users/customvalues?participantlistid=' . $participantlistid;

            echo "<br>Hole benutzerdefinierte Werte: " . $apiUrl2;

            // cURL-Initialisierung für Custom Values
            $ch2 = curl_init($apiUrl2);
            curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch2, CURLOPT_HTTPHEADER, array(
                'Authorization: Bearer ' . $accessToken,
            ));
            $response2 = curl_exec($ch2);
            if ($response2 === false) {
                echo 'Fehler bei der cURL-Anfrage für Custom Values: ' . curl_error($ch2);
                exit;
            }
            curl_close($ch2);

            // JSON-Daten dekodieren und zu $customValues hinzufügen
            $decodedResponse = json_decode($response2, true);
            if ($decodedResponse === null) {
                echo 'Fehler beim Dekodieren der JSON-Antwort für Custom Values.';
                exit;
            } else {
                // Füge die Ergebnisse aus jedem Durchlauf der Schleife zu $customValues hinzu
                if (isset($decodedResponse['results'])) {
                    $customValues[$participantlistid] = $decodedResponse['results'];
                }
            }
        }
    }
}

// Verknüpfung der Daten
if ($jsonData1 && $customValues) {
    foreach ($jsonData1['results'] as &$member) {
        $participantListUserId = $member['ParticipantListUserId'];
        $participantlistid = $member['ParticipantListId'];
        if (isset($customValues[$participantlistid])) {
            $memberCustomValues = array_filter($customValues[$participantlistid], function ($customValue) use ($participantListUserId) {
                return $customValue['ParticipantListUserId'] === $participantListUserId;
            });
            // Füge die Werte der Custom Values direkt zu $member hinzu
            $i = 1;
            foreach ($memberCustomValues as $customValue) {
                $member['Value' . $i++] = $customValue['Value'];
            }
        }
    }
}

// Ausgabe des kombinierten JSON
echo '<br><br>JSON-Antwort: <pre>' . json_encode($jsonData1, JSON_PRETTY_PRINT) . "</pre>";

?>

Bereit zu starten? Erstellen Sie jetzt großartige Umfragen!