CustomerChatroom
Liefert eine Liste aller Chatrooms-Objekte.
GET/api/cp/chat/chatroom
Query-Parameter
namestring | _LIST, LOGGED_IN_LIST, C1, C2 |
createdstring | _LIST, LOGGED_IN_LIST, C1, C2 |
companystring | _LIST, LOGGED_IN_LIST, C1, C2 |
eventstring | _LIST, LOGGED_IN_LIST, C1, C2 |
deletedboolean | Diese Eigenschaft markiert eine Entität als gelöscht / archiviert | Benötigtes Zugriffsrecht: SCOPE_LIST, C1 |
trustLevelstring | Berechnete Vertrauensstufe, siehe TRUST_LEVEL_*. Nach außen nur lesbar; gesetzt wird sie ausschließlich vom ChatroomTrustLevelHelper. | _LIST, C1 |
handoverAtstring | Seit wann sich die KI aus dem Raum zurückgezogen hat. Solange das gesetzt ist, antwortet kein Profil-Bot mehr; der Raum wartet auf das Team. Gesetzt und gelöscht nur vom ChatbotHandoverHelper. | _LIST, C1 |
personstring | Die Person, deren persönlicher Assistenten-Raum das hier ist. Genau eine Person plus Bot - die Logik dazu folgt, das Feld steht schon. | Erfordert Zugriffs-Tag: SCOPE_LIST, C1 |
mediaQuestionnaireAnswerstring | _LIST, C1 |
idstring | Erfordert Zugriffsrecht: C1, C2 |
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 aller Chatrooms-Objekte.array<Chatroom2>
Felder anzeigen (11)
unread_countintegeris_unreadbooleanmember_managedbooleanEvent- und freie Gruppenraeume verwalten Mitglieder bzw. Raum-Admins mit (verlassen, aufnehmen); Support-, Assistenten- und Fragebogen-Raeume nur die Verwaltung. Die Apps blenden danach die Raum-Optionen ein.
idintegerPrimärschlüssel des Chatraums. Interne ID.
notification_tokenstringToken für Benachrichtigungen des Chatraums.
trust_levelstringBerechnete Vertrauensstufe, siehe TRUST_LEVEL_*. Nach außen nur lesbar; gesetzt wird sie ausschließlich vom ChatroomTrustLevelHelper.
member_started_typestringVon Mitgliedern gestartet (Paket D): „direct“ (1:1, chatroom_member_direct_enabled) oder „group“ (Gruppe eines Trainers, chatroom_trainer_groups_enabled); null für alle anderen Räume.
handover_atstring (date-time)Seit wann sich die KI aus dem Raum zurückgezogen hat. Solange das gesetzt ist, antwortet kein Profil-Bot mehr; der Raum wartet auf das Team. Gesetzt und gelöscht nur vom ChatbotHandoverHelper.
handover_reasonstringSiehe HANDOVER_REASON_*.
namestringName der Einheit.
image_urlstringURL des Bildes des Datensatzes.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/chatroom', 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/cp/chat/chatroom"
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/cp/chat/chatroom', [
'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/cp/chat/chatroom"),
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/cp/chat/chatroom")
.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/cp/chat/chatroom"
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/customer_chatroom_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 CustomerChatroomController.getAll();
if (result.success) {
print(result.data);
}[
{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"unread_count": 1,
"is_unread": true,
"member_managed": true,
"notification_token": "string",
"trust_level": "string",
"member_started_type": "string",
"handover_at": "2026-10-15T09:30:00+02:00"
}
]Liefert einen einzelnen Chatroom-Eintrag.
GET/api/cp/chat/chatroom/{identifier}
Pfad-Parameter
identifierPflichtstring |
Antworten
200Gibt ein einzelnes Chatroom-Objekt zurück.Chatroom
Felder anzeigen (12)
unread_countintegeris_unreadbooleanmember_managedbooleanEvent- und freie Gruppenraeume verwalten Mitglieder bzw. Raum-Admins mit (verlassen, aufnehmen); Support-, Assistenten- und Fragebogen-Raeume nur die Verwaltung. Die Apps blenden danach die Raum-Optionen ein.
is_support_roombooleanIst das der Haushalts-Chat mit dem Verein (Support-Chat)? Die Kunden-Apps sehen die Firma nicht und zeigen damit den Hinweis auf die Buerozeiten (chatroom_support_office_hours_enabled).
idintegerPrimärschlüssel des Chatraums. Interne ID.
notification_tokenstringToken für Benachrichtigungen des Chatraums.
trust_levelstringBerechnete Vertrauensstufe, siehe TRUST_LEVEL_*. Nach außen nur lesbar; gesetzt wird sie ausschließlich vom ChatroomTrustLevelHelper.
member_started_typestringVon Mitgliedern gestartet (Paket D): „direct“ (1:1, chatroom_member_direct_enabled) oder „group“ (Gruppe eines Trainers, chatroom_trainer_groups_enabled); null für alle anderen Räume.
handover_atstring (date-time)Seit wann sich die KI aus dem Raum zurückgezogen hat. Solange das gesetzt ist, antwortet kein Profil-Bot mehr; der Raum wartet auf das Team. Gesetzt und gelöscht nur vom ChatbotHandoverHelper.
handover_reasonstringSiehe HANDOVER_REASON_*.
namestringName der Einheit.
image_urlstringURL des Bildes des Datensatzes.
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/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/cp/chat/chatroom/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/cp/chat/chatroom/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/cp/chat/chatroom/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/cp/chat/chatroom/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/cp/chat/chatroom/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/cp/chat/chatroom/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/customer_chatroom_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 CustomerChatroomController.get('42');
if (result.success) {
print(result.data);
}{
"id": 42,
"name": "Beispiel",
"image_url": "https://vynst.de",
"unread_count": 1,
"is_unread": true,
"member_managed": true,
"is_support_room": true,
"notification_token": "string",
"trust_level": "string",
"member_started_type": "string"
}Chatroom verlassen
DELETE/api/cp/chat/chatroom/{identifier}/participant
Nur Event- und Gruppenräume, nicht Support-Räume; Trainer bleiben in ihrem Event-Chat. Die Event-Synchronisation fügt die Person nicht erneut hinzu. Benötigt chatroom_member_leave_enabled.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Links
curl --request DELETE \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/participant \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'DELETE', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/participant', 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/cp/chat/chatroom/42/participant"
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/cp/chat/chatroom/42/participant', [
'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/cp/chat/chatroom/42/participant"),
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/cp/chat/chatroom/42/participant")
.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/cp/chat/chatroom/42/participant"
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/customer_chatroom_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 CustomerChatroomController.leave('42');
if (result.success) {
print(result.data);
}Eigene Benachrichtigungsstufe eines Chatraums
GET/api/cp/chat/chatroom/{identifier}/notifications
Liefert level (all | mentions | none), muted_until und die aktuell wirksame Stufe jetzt. Erfordert chatroom_mute_enabled.
Pfad-Parameter
identifierPflichtstring |
Antworten
200Benachrichtigungsstufe
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications', 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/cp/chat/chatroom/42/notifications"
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/cp/chat/chatroom/42/notifications', [
'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/cp/chat/chatroom/42/notifications"),
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/cp/chat/chatroom/42/notifications")
.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/cp/chat/chatroom/42/notifications"
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/customer_chatroom_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 CustomerChatroomController.getNotificationLevel('42');
if (result.success) {
print(result.data);
}Legt die eigene Benachrichtigungsstufe eines Chatrooms fest
PUT/api/cp/chat/chatroom/{identifier}/notifications
Body: level (all | mentions | none) und optional muted_hours (1-720) oder muted_until (ISO-Datum), um den Raum für eine Weile vollständig stummzuschalten; keines von beiden hebt die Pause auf. Erfordert chatroom_mute_enabled (sonst 8618).
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
levelstringErlaubt:
allmentionsnonemuted_hoursintegermuted_untilstring (date-time)
Antworten
200Benachrichtigungsstufe
curl --request PUT \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"level": "all",
"muted_hours": 1,
"muted_until": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'PUT',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({level: 'all', muted_hours: 1, muted_until: '2026-10-15T09:30:00+02:00'})
};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications', 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/cp/chat/chatroom/42/notifications"
payload = {
"level": "all",
"muted_hours": 1,
"muted_until": "2026-10-15T09:30:00+02:00"
}
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/cp/chat/chatroom/42/notifications', [
'body' => '{"level":"all","muted_hours":1,"muted_until":"2026-10-15T09:30:00+02:00"}',
'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/cp/chat/chatroom/42/notifications"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications")
.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/cp/chat/chatroom/42/notifications"
payload := strings.NewReader("{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}")
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/customer_chatroom_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 CustomerChatroomController.setNotificationLevel('42', '…');
if (result.success) {
print(result.data);
}Legt die eigene Benachrichtigungsstufe eines Chatrooms fest
PATCH/api/cp/chat/chatroom/{identifier}/notifications
Body: level (all | mentions | none) und optional muted_hours (1-720) oder muted_until (ISO-Datum), um den Raum für eine Weile vollständig stummzuschalten; keines von beiden hebt die Pause auf. Erfordert chatroom_mute_enabled (sonst 8618).
Pfad-Parameter
identifierPflichtstring |
Request-Body application/json
levelstringErlaubt:
allmentionsnonemuted_hoursintegermuted_untilstring (date-time)
Antworten
200Benachrichtigungsstufe
curl --request PATCH \
--url https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications \
--header 'content-type: application/json' \
--header 'x-iw-jwt-token: <TOKEN>' \
--data '
{
"level": "all",
"muted_hours": 1,
"muted_until": "2026-10-15T09:30:00+02:00"
}
'const options = {
method: 'PATCH',
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: JSON.stringify({level: 'all', muted_hours: 1, muted_until: '2026-10-15T09:30:00+02:00'})
};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications', 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/cp/chat/chatroom/42/notifications"
payload = {
"level": "all",
"muted_hours": 1,
"muted_until": "2026-10-15T09:30:00+02:00"
}
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/cp/chat/chatroom/42/notifications', [
'body' => '{"level":"all","muted_hours":1,"muted_until":"2026-10-15T09:30:00+02:00"}',
'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/cp/chat/chatroom/42/notifications"),
Headers =
{
{ "x-iw-jwt-token", "<TOKEN>" },
},
Content = new StringContent("{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}")
{
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, "{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}");
Request request = new Request.Builder()
.url("https://eure-instanz.iw-erp.de/api/cp/chat/chatroom/42/notifications")
.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/cp/chat/chatroom/42/notifications"
payload := strings.NewReader("{\"level\":\"all\",\"muted_hours\":1,\"muted_until\":\"2026-10-15T09:30:00+02:00\"}")
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/cp/chat/chatroom/42/notifications'),
headers: {'x-iw-jwt-token': '<TOKEN>', 'content-type': 'application/json'},
body: jsonEncode({
"level": "all",
"muted_hours": 1,
"muted_until": "2026-10-15T09:30:00+02:00"
}),
);
print(response.body);Hinweis für den Support-Chat (chatroom_support_office_hours_enabled): während der Bürozeiten die übliche Antwortzeit, sonst die Abwesenheitsnachricht. enabled = false, wenn ausgeschaltet.
GET/api/cp/chat/support_hours
Antworten
200enabled, open, textobject
Felder anzeigen (3)
enabledbooleanopenbooleantextstring
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/cp/chat/support_hours \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/support_hours', 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/cp/chat/support_hours"
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/cp/chat/support_hours', [
'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/cp/chat/support_hours"),
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/cp/chat/support_hours")
.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/cp/chat/support_hours"
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/customer_chatroom_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 CustomerChatroomController.getSupportHours();
if (result.success) {
print(result.data);
}{
"text": "Text",
"enabled": true,
"open": true
}Alle eigenen Chatnachrichten als CSV-Datei (chatroom_message_export_enabled, sonst 8618): was die Person in irgendeinem Raum geschrieben hat, auch gelöschte, solange sie gespeichert sind.
GET/api/cp/chat/my_messages/export
Antworten
200CSV mit Datum, Chat, Nachricht, Anhaengen, Umfrage, Bearbeitet, Geloescht
curl --request GET \
--url https://eure-instanz.iw-erp.de/api/cp/chat/my_messages/export \
--header 'x-iw-jwt-token: <TOKEN>'const options = {method: 'GET', headers: {'x-iw-jwt-token': '<TOKEN>'}};
fetch('https://eure-instanz.iw-erp.de/api/cp/chat/my_messages/export', 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/cp/chat/my_messages/export"
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/cp/chat/my_messages/export', [
'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/cp/chat/my_messages/export"),
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/cp/chat/my_messages/export")
.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/cp/chat/my_messages/export"
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 package:http (kein Controller im Package iw_erp_api)
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('https://eure-instanz.iw-erp.de/api/cp/chat/my_messages/export'),
headers: {'x-iw-jwt-token': '<TOKEN>'},
);
print(response.body);