Questionnaire Clarifications
Medien / Fragebogen-Klärungen
Erstellt die Klärungspunkte einer Antwort erneut aus deren KI-Vergleichsergebnissen.
POST/api/media/questionnaire_answer/{identifier}/generate_clarifications
Punkte, an denen bereits jemand gearbeitet hat, und manuelle Punkte bleiben erhalten.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Erstellt die Klärungspunkte einer MediaQuestionnaireAnswer erneutMediaQuestionnaireAnswer3
Felder anzeigen (6)
companyCRMCompany23Felder anzeigen (62)
idintegerPrimärschlüssel des Unternehmens. Interne ID.
short_namestringKurzname des Unternehmens.
company_namestringRechtlicher Name der Firma.
secondary_namestringZweite Namenszeile des Unternehmens.
direct_dialstringDurchwahl der Firma.
invoice_emailstringE-Mail-Adresse für Rechnungen.
send_invoice_emailbooleanRechnungen per E-Mail versenden.
send_invoice_letterbooleanRechnungen per Brief versenden.
time_report_emailstringE-Mail-Adresse für Zeitberichte.
payment_goalPaymentGoalZahlungsbedingung der Firma.
payment_intervalstringIntervall der Zahlungen.
vatidstringUmsatzsteuer-Identifikationsnummer.
taxnumberstringSteuernummer des Unternehmens.
buyer_reference_idstringLeitweg-ID oder vom Kunden definierte individuelle Referenz-ID
taxTaxFür das Unternehmen verwendeter Steuersatz.
infostringInformationen zur Firma.
numberstringKunden- oder Lieferantennummer des Unternehmens.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringUnternehmensnummer als Text, einschließlich Präfix.
is_customerbooleanDas Unternehmen ist ein Kunde.
is_supplierbooleanDas Unternehmen ist ein Lieferant.
is_otherbooleanDas Unternehmen ist weder Kunde noch Lieferant.
is_memberbooleanDas Unternehmen ist ein Mitglied.
archivedbooleanDas Unternehmen ist archiviert.
categoryCRMCompanyCategoryKategorie des Unternehmens.
visible_for_customerbooleanOb das Unternehmen für den Kunden sichtbar ist.
founding_datestring (date-time)Gründungsdatum des Unternehmens.
nace_sectionstringNACE-Abschnittscode (Buchstabe A-U)
nace_codestringNACE-Code (numerisch, z. B. 01.11, 62.01)
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
payment_ownerstringKontoinhaber der Lastschrift.
payment_institutionstringName der Bank des Lastschrifteinzugs.
payment_bicstringBIC des Bankkontos.
payment_ibanstringIBAN des Bankkontos.
payment_mandatestringReferenz des SEPA-Mandats.
payment_mandate_sign_datestring (date-time)Datum, an dem das SEPA-Mandat unterschrieben wurde.
payment_mandate_valid_until_datestring (date-time)Datum, bis zu dem das SEPA-Mandat gültig ist.
payment_typePaymentTypecompany_employee_countintegerAnzahl der Mitarbeitenden der Firma.
company_founding_yearintegerGründungsjahr des Unternehmens.
company_family_ownedbooleanOb das Unternehmen familiengeführt ist.
company_sales_volumestringUmsatzvolumen des Unternehmens.
company_segmentstringMarktsegment der Firma.
personCRMPerson10Felder anzeigen (81)
idintegerPrimärschlüssel der Person. Interne ID.
first_namestringVorname der Person.
last_namestringNachname der Person.
numberintegerMitglieds- oder Kundennummer der Person.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringMitglieds- oder Kundennummer als Text, einschließlich Präfix.
genderstringGeschlecht der Person.
titlestringAkademischer oder sonstiger Titel der Person.
positionstringPosition oder Rolle der Person.
languagestringBevorzugte Sprache der Person.
special_salutationstringBesonderer Anredetext für Briefe.
form_of_salutationstringForm der Anrede, zum Beispiel förmlich oder informell.
birthdaystring (date-time)Geburtstag der Person.
known_allergiesstringBekannte Allergien der Person.
confirmed_no_allergiesbooleanErziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.
allow_photosbooleanFotos der Person dürfen aufgenommen und veröffentlicht werden.
allow_leaving_alonebooleanDie Person darf die Veranstaltung allein verlassen.
authorized_pickupstringPersonen, die die Person abholen dürfen.
needs_supportbooleanDie Person benötigt Unterstützung, zum Beispiel zur Inklusion.
support_descriptionstringBeschreibung der Unterstützung, die die Person benötigt.
financial_supportbooleanDie Person erhält finanzielle Unterstützung.
financial_support_numberstringNummer der finanziellen Förderung.
municipal_supportbooleanDie Person erhält kommunale Unterstützung.
municipal_support_numberstringNummer der kommunalen Förderung.
grade_levelintegerSchuljahrgang der Person.
school_classstringSchulklasse der Person.
start_timestring (date-time)Beginn der Mitgliedschaft oder Aktivität.
start_time_reasonstringGrund für den Beginn.
end_timestring (date-time)Ende der Mitgliedschaft oder Aktivität.
end_time_reasonstringGrund für das Ende.
confirmed_gtc_timestring (date-time)Zeitpunkt, zu dem die AGB bestätigt wurden.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.
archivedbooleanOb die Person archiviert ist.
subscribed_newsletterbooleanOb die Person den Newsletter abonniert hat.
subscribed_magazinebooleanOb die Person das Magazin abonniert hat.
printed_member_cardbooleanOb für die Person ein Mitgliedsausweis gedruckt wurde.
has_login_userbooleanOb die Person einen Anmelde-Benutzer hat.
profile_picture_urlstringURL des Profilbilds der Person.
log_book_staffbooleanLogbuch-Kennzeichen: Personal.
log_book_staff1booleanLogbuch-Kennzeichen: Personal, Stufe 1.
log_book_staff2booleanLogbuch-Kennzeichen: Personal, Stufe 2.
log_book_memberbooleanLogbuch-Kennzeichen: Mitglied.
log_book_trainerbooleanLogbuch-Kennzeichen: Trainer.
log_book_trainer1booleanLogbuch-Kennzeichen: Trainer, Stufe 1.
log_book_trainer2booleanLogbuch-Kennzeichen: Trainer, Stufe 2.
log_book_head_of_departmentbooleanLogbuch-Kennzeichen: Abteilungsleitung.
log_book_supervisory_boardbooleanLogbuch-Kennzeichen: Aufsichtsrat.
log_book_board_of_directorsbooleanLogbuch-Kennzeichen: Vorstand.
log_book_honorary_memberbooleanLogbuch-Kennzeichen: Ehrenmitglied.
log_book_club_card_onebooleanLogbuch-Kennzeichen: Vereinskarte.
log_book_health_recoveredbooleanLogbuch-Kennzeichen: von Krankheit genesen.
log_book_health_vaccinatedbooleanLogbuch-Kennzeichen: geimpft.
log_book_health_vaccinated_additionstringDetails der Impfung.
log_book_good_conductbooleanLogbuch-Kennzeichen: Führungszeugnis.
log_book_first_aidbooleanLogbuch-Kennzeichen: Erste-Hilfe-Schulung.
log_book_measles_vaccinationbooleanLogbuch-Kennzeichen: Masernimpfung.
sync_lanistabooleanOb die Person mit Lanista synchronisiert ist.
categoryCRMPersonCategoryPersonenkategorie.
nicknamestringSpitzname der Person.
preferred_color_hexstringBevorzugte Farbe der Person als Hexwert.
avatar_tokenstringToken des Avatarbildes.
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
- … 2 weitere Felder
idintegerPrimärschlüssel der Fragebogen-Antwort. Interne ID.
media_questionnaireMediaQuestionnaire5Fragebogen, der beantwortet wurde.
Felder anzeigen (37)
idintegerPrimärschlüssel des Fragebogens. Interne ID.
questionnaire_typestringArt des Fragebogens, zum Beispiel Anmeldung oder Umfrage.
tokenstringÖffentlicher Token des Fragebogens. Anstelle der ID verwendet.
public_copyrightstringUrheberrechtstext, der mit dem Fragebogen angezeigt wird.
public_language_codestringSprache des Fragebogens, zum Beispiel de.
complexity_levelintegerKomplexitätsstufe des Fragebogens.
public_authorstringÖffentlich angezeigter Autor.
show_free_textbooleanEin Freitextfeld anzeigen.
show_attachmentbooleanEin Upload-Feld für Anhänge anzeigen.
configuration_hintsarray<string>Nicht persistiert: Warnungen zur Installationskonfiguration, von der dieser Fragebogen abhängt (z. B. KI-Vergleich ohne LLM oder OCR), für die Admin-Detailantwort befüllt.
require_attachmentbooleanEin Anhang muss hochgeladen werden.
with_paginationbooleanDen Fragebogen seitenweise anzeigen.
one_entry_per_personbooleanWenn true, ist nur ein Eintrag pro Person erlaubt - nur für angemeldete Benutzer und Tabellenergebnisse
require_addressbooleanDie Adresse muss eingegeben werden.
require_contactbooleanKontaktdaten müssen eingegeben werden.
require_agebooleanDas Alter muss eingegeben werden.
require_grade_levelbooleanDie Schulklassenstufe muss eingegeben werden.
start_timestring (date-time)Beginn der Verfügbarkeit des Fragebogens.
end_timestring (date-time)Ende der Verfügbarkeit des Fragebogens.
pagesarray<MediaQuestionnairePage>Seiten des Fragebogens.
entriesarray<MediaQuestionnaireContent2>Fragen und Inhalte des Fragebogens.
age_groupstringAltersgruppe, für die der Fragebogen gedacht ist.
min_ageintegerMindestalter in Jahren.
max_ageintegerMaximales Alter in Jahren.
min_grade_levelintegerMindestschulstufe.
max_grade_levelintegerMaximale Klassenstufe.
age_toleranceintegerJahre, um die das Alter außerhalb der Spanne liegen darf und dennoch akzeptiert wird.
group_allowedbooleanOb der Fragebogen auf eine Gruppe beschränkt ist.
allow_self_registerbooleanOb sich Personen selbst für die Beantwortung des Fragebogens registrieren können.
allow_self_download_result_templatebooleanOb Antwortende ihr eigenes Ergebnis herunterladen können.
clarification_enabledbooleanZweite Schleife nach dem KI-Vergleich: Antworten, die die KI nicht als erfüllt bewertet, werden zu Klärungspunkten (MediaQuestionnaireClarification), die mit dem Kunden besprochen und entschieden werden, bevor die Ergebnisvorlage angelegt wird. Ohne sie folgt die Ergebnisvorlage direkt dem KI-Vergleich.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
image_urlstringURL des Bildes des Datensatzes.
namestringName der Einheit.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
media_questionnaire_answer_groupMediaQuestionnaireAnswerGroup11Antwortgruppe, zu der die Antwort gehört.
Felder anzeigen (17)
answer_countintegercompanyCRMCompany23personCRMPerson10idintegerPrimärschlüssel der Fragebogen-Antwortgruppe. Interne ID.
media_questionnaireMediaQuestionnaire5Fragebogen, zu dem die Antworten gehören.
answersarray<MediaQuestionnaireAnswer3>Antworten der Gruppe.
end_timestring (date-time)Zeitpunkt, zu dem die Antworten abgeschlossen wurden.
confirmedbooleanDie Antworten sind bestätigt.
draftbooleanDie Antworten sind ein Entwurf und noch nicht eingereicht.
processingbooleanDie Antworten werden verarbeitet.
externalbooleanDie Antworten wurden von einer externen Stelle gegeben.
confirmed_disclaimerbooleanHaftungsausschluss bestätigt.
confirmed_privacybooleanDatenschutzerklärung bestätigt.
confirmed_cancellation_policybooleanStornierungsbedingungen bestätigt.
nace_sectionstringNACE-Abschnittscode (Buchstabe A-U)
nace_codestringNACE-Code (numerisch, z. B. 01.11, 62.01)
- … 16 weitere Felder
- … 59 weitere Felder
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/generate_clarifications'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"company_name": "Beispiel",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"name": "Beispiel"
}Schließt die Prüfung einer Antwort ab, sobald jeder Klärungspunkt entschieden oder verworfen ist.
POST/api/media/questionnaire_answer/{identifier}/complete_review
Die Ergebnisvorlage (Bericht) folgt, wie ohne die zweite Schleife.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Schließt die Prüfung einer MediaQuestionnaireAnswer abMediaQuestionnaireAnswer3
Felder anzeigen (6)
companyCRMCompany23Felder anzeigen (62)
idintegerPrimärschlüssel des Unternehmens. Interne ID.
short_namestringKurzname des Unternehmens.
company_namestringRechtlicher Name der Firma.
secondary_namestringZweite Namenszeile des Unternehmens.
direct_dialstringDurchwahl der Firma.
invoice_emailstringE-Mail-Adresse für Rechnungen.
send_invoice_emailbooleanRechnungen per E-Mail versenden.
send_invoice_letterbooleanRechnungen per Brief versenden.
time_report_emailstringE-Mail-Adresse für Zeitberichte.
payment_goalPaymentGoalZahlungsbedingung der Firma.
payment_intervalstringIntervall der Zahlungen.
vatidstringUmsatzsteuer-Identifikationsnummer.
taxnumberstringSteuernummer des Unternehmens.
buyer_reference_idstringLeitweg-ID oder vom Kunden definierte individuelle Referenz-ID
taxTaxFür das Unternehmen verwendeter Steuersatz.
infostringInformationen zur Firma.
numberstringKunden- oder Lieferantennummer des Unternehmens.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringUnternehmensnummer als Text, einschließlich Präfix.
is_customerbooleanDas Unternehmen ist ein Kunde.
is_supplierbooleanDas Unternehmen ist ein Lieferant.
is_otherbooleanDas Unternehmen ist weder Kunde noch Lieferant.
is_memberbooleanDas Unternehmen ist ein Mitglied.
archivedbooleanDas Unternehmen ist archiviert.
categoryCRMCompanyCategoryKategorie des Unternehmens.
visible_for_customerbooleanOb das Unternehmen für den Kunden sichtbar ist.
founding_datestring (date-time)Gründungsdatum des Unternehmens.
nace_sectionstringNACE-Abschnittscode (Buchstabe A-U)
nace_codestringNACE-Code (numerisch, z. B. 01.11, 62.01)
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
main_phonestringHaupttelefonnummer.
main_faxstringHaupt-Faxnummer.
main_emailstringHaupt-E-Mail-Adresse.
websitestringWebsite-Adresse.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
payment_ownerstringKontoinhaber der Lastschrift.
payment_institutionstringName der Bank des Lastschrifteinzugs.
payment_bicstringBIC des Bankkontos.
payment_ibanstringIBAN des Bankkontos.
payment_mandatestringReferenz des SEPA-Mandats.
payment_mandate_sign_datestring (date-time)Datum, an dem das SEPA-Mandat unterschrieben wurde.
payment_mandate_valid_until_datestring (date-time)Datum, bis zu dem das SEPA-Mandat gültig ist.
payment_typePaymentTypecompany_employee_countintegerAnzahl der Mitarbeitenden der Firma.
company_founding_yearintegerGründungsjahr des Unternehmens.
company_family_ownedbooleanOb das Unternehmen familiengeführt ist.
company_sales_volumestringUmsatzvolumen des Unternehmens.
company_segmentstringMarktsegment der Firma.
personCRMPerson10Felder anzeigen (81)
idintegerPrimärschlüssel der Person. Interne ID.
first_namestringVorname der Person.
last_namestringNachname der Person.
numberintegerMitglieds- oder Kundennummer der Person.
manual_numberintegerManuell gesetzte Nummer statt der automatischen Nummer.
number_stringstringMitglieds- oder Kundennummer als Text, einschließlich Präfix.
genderstringGeschlecht der Person.
titlestringAkademischer oder sonstiger Titel der Person.
positionstringPosition oder Rolle der Person.
languagestringBevorzugte Sprache der Person.
special_salutationstringBesonderer Anredetext für Briefe.
form_of_salutationstringForm der Anrede, zum Beispiel förmlich oder informell.
birthdaystring (date-time)Geburtstag der Person.
known_allergiesstringBekannte Allergien der Person.
confirmed_no_allergiesbooleanErziehungsberechtigte(r) bestätigt, dass keine bekannten Allergien vorliegen.
allow_photosbooleanFotos der Person dürfen aufgenommen und veröffentlicht werden.
allow_leaving_alonebooleanDie Person darf die Veranstaltung allein verlassen.
authorized_pickupstringPersonen, die die Person abholen dürfen.
needs_supportbooleanDie Person benötigt Unterstützung, zum Beispiel zur Inklusion.
support_descriptionstringBeschreibung der Unterstützung, die die Person benötigt.
financial_supportbooleanDie Person erhält finanzielle Unterstützung.
financial_support_numberstringNummer der finanziellen Förderung.
municipal_supportbooleanDie Person erhält kommunale Unterstützung.
municipal_support_numberstringNummer der kommunalen Förderung.
grade_levelintegerSchuljahrgang der Person.
school_classstringSchulklasse der Person.
start_timestring (date-time)Beginn der Mitgliedschaft oder Aktivität.
start_time_reasonstringGrund für den Beginn.
end_timestring (date-time)Ende der Mitgliedschaft oder Aktivität.
end_time_reasonstringGrund für das Ende.
confirmed_gtc_timestring (date-time)Zeitpunkt, zu dem die AGB bestätigt wurden.
chatbot_opt_inbooleanEinwilligung in die Nutzung des KI-Assistenten. Denormalisierter aktueller Stand - das prüfbare Protokoll steht in ChatbotConsent.
chatbot_opt_in_atstring (date-time)Zeitpunkt, zu dem die Person dem Chatbot zugestimmt hat.
chatbot_opt_in_text_versionstringVersion des Einwilligungstextes, dem zugestimmt wurde. Weicht sie von der aktuellen Version ab, ist das Opt-in abgelaufen.
app_usage_statistics_opt_outbooleanWiderspruch gegen die anonyme Nutzungsstatistik der Mitglieder-App. Die App liest ihn aus den StaticData und schickt dann nichts mehr; die gezählten Aufrufe selbst haben keinen Bezug zur Person.
crm_person_contact_dataarray<CRMPersonContactData>Kontaktdaten der Person, zum Beispiel Telefon und E-Mail.
archivedbooleanOb die Person archiviert ist.
subscribed_newsletterbooleanOb die Person den Newsletter abonniert hat.
subscribed_magazinebooleanOb die Person das Magazin abonniert hat.
printed_member_cardbooleanOb für die Person ein Mitgliedsausweis gedruckt wurde.
has_login_userbooleanOb die Person einen Anmelde-Benutzer hat.
profile_picture_urlstringURL des Profilbilds der Person.
log_book_staffbooleanLogbuch-Kennzeichen: Personal.
log_book_staff1booleanLogbuch-Kennzeichen: Personal, Stufe 1.
log_book_staff2booleanLogbuch-Kennzeichen: Personal, Stufe 2.
log_book_memberbooleanLogbuch-Kennzeichen: Mitglied.
log_book_trainerbooleanLogbuch-Kennzeichen: Trainer.
log_book_trainer1booleanLogbuch-Kennzeichen: Trainer, Stufe 1.
log_book_trainer2booleanLogbuch-Kennzeichen: Trainer, Stufe 2.
log_book_head_of_departmentbooleanLogbuch-Kennzeichen: Abteilungsleitung.
log_book_supervisory_boardbooleanLogbuch-Kennzeichen: Aufsichtsrat.
log_book_board_of_directorsbooleanLogbuch-Kennzeichen: Vorstand.
log_book_honorary_memberbooleanLogbuch-Kennzeichen: Ehrenmitglied.
log_book_club_card_onebooleanLogbuch-Kennzeichen: Vereinskarte.
log_book_health_recoveredbooleanLogbuch-Kennzeichen: von Krankheit genesen.
log_book_health_vaccinatedbooleanLogbuch-Kennzeichen: geimpft.
log_book_health_vaccinated_additionstringDetails der Impfung.
log_book_good_conductbooleanLogbuch-Kennzeichen: Führungszeugnis.
log_book_first_aidbooleanLogbuch-Kennzeichen: Erste-Hilfe-Schulung.
log_book_measles_vaccinationbooleanLogbuch-Kennzeichen: Masernimpfung.
sync_lanistabooleanOb die Person mit Lanista synchronisiert ist.
categoryCRMPersonCategoryPersonenkategorie.
nicknamestringSpitzname der Person.
preferred_color_hexstringBevorzugte Farbe der Person als Hexwert.
avatar_tokenstringToken des Avatarbildes.
search_stringstringText, unter dem die Entität gesucht werden kann.
addressstringAdresse als Text.
address_streetstringStraße der Adresse.
address_house_numberstringHausnummer der Adresse.
address_street_levelstringStraße und Hausnummer der Adresse.
address_costringCare-of-Zeile der Adresse.
address_citystringOrt der Adresse.
address_zipstringPostleitzahl der Adresse.
address_admin_level1stringErste Verwaltungsebene der Adresse, z. B. das Bundesland.
address_countrystringLändercode der Adresse.
address_full_countrystringVollständiger Name des Landes der Adresse.
address_geo_latstringBreitengrad der Adresse.
address_geo_lngstringLängengrad der Adresse.
address_external_provider_idstringFeld zur Speicherung der externen Anbieter-ID der Adresse, z. B. Google-Maps-PlaceID wie google:ChIJVcKw5r90sEcRhdjNq6NItqE
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
- … 2 weitere Felder
idintegerPrimärschlüssel der Fragebogen-Antwort. Interne ID.
media_questionnaireMediaQuestionnaire5Fragebogen, der beantwortet wurde.
Felder anzeigen (37)
idintegerPrimärschlüssel des Fragebogens. Interne ID.
questionnaire_typestringArt des Fragebogens, zum Beispiel Anmeldung oder Umfrage.
tokenstringÖffentlicher Token des Fragebogens. Anstelle der ID verwendet.
public_copyrightstringUrheberrechtstext, der mit dem Fragebogen angezeigt wird.
public_language_codestringSprache des Fragebogens, zum Beispiel de.
complexity_levelintegerKomplexitätsstufe des Fragebogens.
public_authorstringÖffentlich angezeigter Autor.
show_free_textbooleanEin Freitextfeld anzeigen.
show_attachmentbooleanEin Upload-Feld für Anhänge anzeigen.
configuration_hintsarray<string>Nicht persistiert: Warnungen zur Installationskonfiguration, von der dieser Fragebogen abhängt (z. B. KI-Vergleich ohne LLM oder OCR), für die Admin-Detailantwort befüllt.
require_attachmentbooleanEin Anhang muss hochgeladen werden.
with_paginationbooleanDen Fragebogen seitenweise anzeigen.
one_entry_per_personbooleanWenn true, ist nur ein Eintrag pro Person erlaubt - nur für angemeldete Benutzer und Tabellenergebnisse
require_addressbooleanDie Adresse muss eingegeben werden.
require_contactbooleanKontaktdaten müssen eingegeben werden.
require_agebooleanDas Alter muss eingegeben werden.
require_grade_levelbooleanDie Schulklassenstufe muss eingegeben werden.
start_timestring (date-time)Beginn der Verfügbarkeit des Fragebogens.
end_timestring (date-time)Ende der Verfügbarkeit des Fragebogens.
pagesarray<MediaQuestionnairePage>Seiten des Fragebogens.
entriesarray<MediaQuestionnaireContent2>Fragen und Inhalte des Fragebogens.
age_groupstringAltersgruppe, für die der Fragebogen gedacht ist.
min_ageintegerMindestalter in Jahren.
max_ageintegerMaximales Alter in Jahren.
min_grade_levelintegerMindestschulstufe.
max_grade_levelintegerMaximale Klassenstufe.
age_toleranceintegerJahre, um die das Alter außerhalb der Spanne liegen darf und dennoch akzeptiert wird.
group_allowedbooleanOb der Fragebogen auf eine Gruppe beschränkt ist.
allow_self_registerbooleanOb sich Personen selbst für die Beantwortung des Fragebogens registrieren können.
allow_self_download_result_templatebooleanOb Antwortende ihr eigenes Ergebnis herunterladen können.
clarification_enabledbooleanZweite Schleife nach dem KI-Vergleich: Antworten, die die KI nicht als erfüllt bewertet, werden zu Klärungspunkten (MediaQuestionnaireClarification), die mit dem Kunden besprochen und entschieden werden, bevor die Ergebnisvorlage angelegt wird. Ohne sie folgt die Ergebnisvorlage direkt dem KI-Vergleich.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
image_urlstringURL des Bildes des Datensatzes.
namestringName der Einheit.
slug_identifierstringSlug, der in URLs der Entität verwendet wird.
media_questionnaire_answer_groupMediaQuestionnaireAnswerGroup11Antwortgruppe, zu der die Antwort gehört.
Felder anzeigen (17)
answer_countintegercompanyCRMCompany23personCRMPerson10idintegerPrimärschlüssel der Fragebogen-Antwortgruppe. Interne ID.
media_questionnaireMediaQuestionnaire5Fragebogen, zu dem die Antworten gehören.
answersarray<MediaQuestionnaireAnswer3>Antworten der Gruppe.
end_timestring (date-time)Zeitpunkt, zu dem die Antworten abgeschlossen wurden.
confirmedbooleanDie Antworten sind bestätigt.
draftbooleanDie Antworten sind ein Entwurf und noch nicht eingereicht.
processingbooleanDie Antworten werden verarbeitet.
externalbooleanDie Antworten wurden von einer externen Stelle gegeben.
confirmed_disclaimerbooleanHaftungsausschluss bestätigt.
confirmed_privacybooleanDatenschutzerklärung bestätigt.
confirmed_cancellation_policybooleanStornierungsbedingungen bestätigt.
nace_sectionstringNACE-Abschnittscode (Buchstabe A-U)
nace_codestringNACE-Code (numerisch, z. B. 01.11, 62.01)
- … 16 weitere Felder
- … 59 weitere Felder
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://eure-instanz.iw-erp.de/api/media/questionnaire_answer/42/complete_review'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"first_name": "Lena",
"last_name": "Hartmann",
"company_name": "Beispiel",
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"name": "Beispiel"
}Liefert die Klärungspunkte (Filter mit mediaQuestionnaireAnswer)
GET/api/media/questionnaire_clarification
Query-Parameter
idinteger | |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE | Standardwert: false |
mediaQuestionnaireAnswerstring | |
contentAnswerstring | Die beantwortete Frage, auf die sich dieser Punkt bezieht. Null bei allgemeinen Punkten des Prüfers. | Benötigtes Zugriffsrecht: SCOPE |
contentKeystring | Stabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen |
sourcestring | AI or MANUAL |
statusstring | OPEN, ANSWERED, RESOLVED, DISMISSED |
aiVerdictstring | Bewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab) | Benötigt Zugriffsrecht: SCOPE |
finalVerdictstring | Entscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE | Erfordert Zugriffs-Tag: SCOPE |
viewOrderstring | |
createdstring | |
updatedstring | |
searchStringstring | Text, nach dem in der Liste gesucht wird |
orderFieldNamestring | Name des Bestellfelds |
orderFieldSortstring | SortiermodusErlaubt: DESCASC |
pageinteger | Seite der Liste |
pageSizeinteger | Anzahl der Einträge je Seite |
withMaxPageNumberstring | gibt die Anzahl verfügbarer Seiten als Header zurück, wenn dies gesetzt ist |
Antworten
200Liefert eine Liste der MediaQuestionnaireClarification-Objekte.array<MediaQuestionnaireClarification>
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
]Fügt einen Klärungspunkt des Prüfers hinzu (Quelle MANUAL), z. B. einen Befund einer lokalen KI-Prüfung
POST/api/media/questionnaire_clarification
Request-Body application/json
dataMediaQuestionnaireClarification2Felder anzeigen (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Antwort, auf die sich die Klärung bezieht.
content_answerMediaQuestionnaireContentAnswer4Die beantwortete Frage, auf die sich dieser Punkt bezieht. Null bei allgemeinen Punkten des Prüfers.
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
view_orderintegerSortierreihenfolge der Klärung in Listen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200MediaQuestionnaireClarification neu anlegenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'POST',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification")
.post(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire_clarification.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.post(MediaQuestionnaireClarification.fromJson({
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Liefert einen einzelnen Klärungspunkt.
GET/api/media/questionnaire_clarification/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Liefert ein einzelnes MediaQuestionnaireClarification-Objekt.MediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Get,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42")
.get()
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Klärungspunkt aktualisieren (Frage, Antwort des Kunden, Entscheidung des Prüfers)
PUT/api/media/questionnaire_clarification/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataMediaQuestionnaireClarification2Felder anzeigen (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Antwort, auf die sich die Klärung bezieht.
content_answerMediaQuestionnaireContentAnswer4Die beantwortete Frage, auf die sich dieser Punkt bezieht. Null bei allgemeinen Punkten des Prüfers.
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
view_orderintegerSortierreihenfolge der Klärung in Listen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200MediaQuestionnaireClarification aktualisierenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PUT', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Put,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42")
.put(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
import 'package:iw_erp_api/model/media_questionnaire_clarification.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.put(MediaQuestionnaireClarification.fromJson({
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}));
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Klärungspunkt aktualisieren (Frage, Antwort des Kunden, Entscheidung des Prüfers)
PATCH/api/media/questionnaire_clarification/{identifier}
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
dataMediaQuestionnaireClarification2Felder anzeigen (13)
media_questionnaire_answerMediaQuestionnaireAnswer17Antwort, auf die sich die Klärung bezieht.
content_answerMediaQuestionnaireContentAnswer4Die beantwortete Frage, auf die sich dieser Punkt bezieht. Null bei allgemeinen Punkten des Prüfers.
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
view_orderintegerSortierreihenfolge der Klärung in Listen.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
Antworten
200MediaQuestionnaireClarification aktualisierenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({
data: {
title: 'Beispiel',
media_questionnaire_answer: {
address_street: 'Jakobistr. 39',
address_city: 'Hannover',
address_zip: '30163',
address_country: 'DE',
address_full_country: 'DE',
main_phone: '+49 511 123456'
},
ai_verdict: 'string',
ai_score: 1,
ai_reasoning: 'string',
question: 'string'
}
})
};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
payload = { "data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
} }
headers = {
"x-iw-jwt-token": "<TOKEN>",
"content-type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('PATCH', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', [
'body' => '{"data":{"title":"Beispiel","media_questionnaire_answer":{"address_street":"Jakobistr. 39","address_city":"Hannover","address_zip":"30163","address_country":"DE","address_full_country":"DE","main_phone":"+49 511 123456"},"ai_verdict":"string","ai_score":1,"ai_reasoning":"string","question":"string"}}',
'headers' => [
'content-type' => 'application/json',
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Patch,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
{
Headers =
{
ContentType = new MediaTypeHeaderValue("application/json")
}
}
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42")
.patch(body)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.addHeader("content-type", "application/json")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
payload := strings.NewReader("{\"data\":{\"title\":\"Beispiel\",\"media_questionnaire_answer\":{\"address_street\":\"Jakobistr. 39\",\"address_city\":\"Hannover\",\"address_zip\":\"30163\",\"address_country\":\"DE\",\"address_full_country\":\"DE\",\"main_phone\":\"+49 511 123456\"},\"ai_verdict\":\"string\",\"ai_score\":1,\"ai_reasoning\":\"string\",\"question\":\"string\"}}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.patch(
Uri.parse('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"data": {
"title": "Beispiel",
"media_questionnaire_answer": {
"address_street": "Jakobistr. 39",
"address_city": "Hannover",
"address_zip": "30163",
"address_country": "DE",
"address_full_country": "DE",
"main_phone": "+49 511 123456"
},
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}
}),
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Löscht einen Klärungspunkt (Soft Delete)
DELETE/api/media/questionnaire_clarification/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Eine MediaQuestionnaireClarification löschenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42 \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.delete(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('DELETE', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Delete,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42")
.delete(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.delete('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Startet die erneute KI-Bewertung eines Klärungspunkts mit der Antwort und dem nachgereichten Nachweis
POST/api/media/questionnaire_clarification/{identifier}/evaluate
Pfad-Parameter
identifierPflichtstring |
Antworten
200Startet die erneute KI-Bewertung eines MediaQuestionnaireClarificationMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/evaluate"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit dem Package iw_erp_api
import 'package:iw_erp_api/clients/media_questionnaire_clarification_controller.dart';
import 'package:iw_erp_api/logic/iw_api_state.dart';
IwApiState().host = 'eure-instanz.iw-erp.de';
IwApiState().currentJwtApiToken = '<TOKEN>';
final result = await MediaQuestionnaireClarificationController.postEvaluate('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Verknüpft ein nachträglich eingereichtes Nachweisdokument (ein hochgeladener Anhang) mit einem Klärungspunkt
POST/api/media/questionnaire_clarification/{identifier}/adds/attachments
Pfad-Parameter
identifierPflichtstring |
Antworten
200Anhang zu einer MediaQuestionnaireClarification hinzufügenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/adds/attachments'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}Entfernt ein nachträglich eingereichtes Nachweisdokument aus einem Klärungspunkt.
POST/api/media/questionnaire_clarification/{identifier}/deletes/attachments
Pfad-Parameter
identifierPflichtstring |
Antworten
200Einen Anhang aus einer MediaQuestionnaireClarification entfernenMediaQuestionnaireClarification
Felder anzeigen (24)
media_questionnaire_answer_idintegercontent_answer_idintegeridintegerPrimärschlüssel der Fragebogen-Klärung. Interne ID.
content_keystringStabiler Schlüssel der Frage (MediaQuestionnaireContent::$contentKey), aus der Inhaltsantwort übernommen
titlestringTitel der Frage, aus der Inhaltsantwort übernommen (oder ein freier Titel für manuelle Punkte)
sourcestringAI or MANUAL
ai_verdictstringBewertung der KI nach dem Vergleich: PASSED, NEEDS_CLARIFICATION, FAILED, NOT_APPLICABLE (null, wenn die KI keine gab)
ai_scoreintegerVon der KI ermittelter Erfüllungsgrad 0-100
ai_reasoningstringWarum die KI die Antwort so bewertet hat (was fehlt)
questionstringDie Frage an den Kunden (von der KI erzeugt, bearbeitbar)
responsestringWas der Kunde geantwortet hat (Notizen des Interviews)
statusstringOPEN, ANSWERED, RESOLVED, DISMISSED
processingbooleanWahr, solange die KI den Punkt neu bewertet
ai_suggested_verdictstringEmpfehlung der erneuten KI-Bewertung (einschließlich Antwort und nachgereichtem Nachweis)
ai_suggestion_reasoningstringBegründung des KI-Vorschlags für die Klärung.
final_verdictstringEntscheidung des Prüfers: PASSED, FAILED, NOT_APPLICABLE
auditor_notestringAnmerkung des Prüfers zum Bericht
decided_atstring (date-time)Zeitpunkt, zu dem über die Klärung entschieden wurde.
decided_bystringName des Benutzers, der den Punkt entschieden hat
attachmentsarray<Attachment10>Nachträglich eingereichter Nachweis während der Klärung
Felder anzeigen (25)
idintegerPrimärschlüssel des Anhangs. Interne ID.
filenamestringUrsprünglicher Dateiname.
filesizestringGröße der Datei in Bytes.
mimetypestringMIME-Typ der Datei.
createdbyusernamestringName des Benutzers, der die Datei hochgeladen hat, als Text.
createdstring (date-time)Zeitpunkt, zu dem der Anhang angelegt wurde.
googleidstringID der Datei in Google Drive.
scopestringScope, der steuert, wer den Anhang sehen kann.
ocr_document_typestringDokumenttyp, der per OCR erkannt wurde.
ocr_from_namestringPer OCR erkannter Absendername.
ocr_from_companystringPer OCR erkanntes Absenderunternehmen.
ocr_from_addressstringPer OCR erkannte Absenderadresse.
ocr_from_emailstringPer OCR erkannte Absender-E-Mail-Adresse.
ocr_from_phonestringPer OCR erkannte Absender-Telefonnummer.
ocr_to_namestringPer OCR erkannter Name des Empfängers.
ocr_to_companystringPer OCR erkanntes Empfängerunternehmen.
ocr_to_addressstringPer OCR erkannte Empfängeradresse.
ocr_to_emailstringPer OCR erkannte E-Mail-Adresse des Empfängers.
ocr_to_phonestringPer OCR erkannte Telefonnummer des Empfängers.
ocr_summarystringZusammenfassung des per OCR erstellten Dokuments.
ocr_statusstringOCR-Verarbeitungsstatus: null = nicht verarbeitet, pending, processing, done, error
ocr_errorstringGrund des letzten fehlgeschlagenen oder unvollständigen OCR-Laufs, null wenn er erfolgreich war
ocr_processed_atstring (date-time)Zeitpunkt, zu dem die OCR-Verarbeitung abgeschlossen wurde.
virus_checkedboolean1, sobald der Virenscan für diese Datei bestanden ist. Der Scan läuft im Hintergrund (AttachmentVirusScanCommand), daher beginnt eine neu hochgeladene Datei bei 0 und bleibt dort, bis sie tatsächlich geprüft wurde. Eine infizierte Datei erreicht nie 1 – sie wird stattdessen gelöscht. Die Oberflächen nutzen dies, um zu entscheiden, ob eine Datei an einen Benutzer ausgegeben werden darf; daher muss sie bis zum Nachweis des Gegenteils auf false bleiben.
virus_checked_atstring (date-time)Wann der Virenscan bestanden wurde. Null, solange die Datei noch wartet.
view_orderintegerSortierreihenfolge der Klärung in Listen.
createdstring (date-time)Zeitpunkt, zu dem der Datensatz angelegt wurde.
updatedstring (date-time)Zeitpunkt, zu dem der Datensatz zuletzt aktualisiert wurde.
deletedbooleanDiese Eigenschaft markiert eine Entität als gelöscht / archiviert
curl --request POST \
--url https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'POST', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"
headers = {"x-iw-jwt-token": "<TOKEN>"}
response = requests.post(url, headers=headers)
print(response.text)<?php
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments', [
'headers' => [
'x-iw-jwt-token' => '<TOKEN>',
],
]);
echo $response->getBody();using System.Net.Http.Headers;
var client = new HttpClient();
var request = new HttpRequestMessage
{
Method = HttpMethod.Post,
RequestUri = new Uri("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
};
using (var response = await client.SendAsync(request))
{
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
}OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments")
.post(null)
.addHeader("x-iw-jwt-token", "<TOKEN>")
.build();
Response response = client.newCall(request).execute();package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("x-iw-jwt-token", "<TOKEN>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}Dart mit package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('https://eure-instanz.iw-erp.de/api/media/questionnaire_clarification/42/deletes/attachments'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);{
"id": 42,
"title": "Beispiel",
"media_questionnaire_answer_id": 42,
"content_answer_id": 42,
"content_key": "string",
"source": "string",
"ai_verdict": "string",
"ai_score": 1,
"ai_reasoning": "string",
"question": "string"
}