Description
Incoming Webhooks let you transmit information directly to Stackfield without detours. The interface uses HTTP requests with JSON payloads, allowing you to create messages, tasks, or similar content in Stackfield. Tasks can also be read, updated, and filtered in a targeted way; individual Webhooks can optionally be secured with JWT. To send data to Stackfield, you first need to generate POST URLs.
Where do I find the POST URL?
POST URL for sending data
The POST URL for sending data to a room can be retrieved via the room settings. To do this, open the settings of the desired room and switch to the "Integrations" tab.
Using the "Add a new Webhook" button, you can select which type of content you want to send to Stackfield. The corresponding POST URL is then generated, which you can store in your external system.
The POST URL is used for sending or creating content via incoming Webhooks. For reading, updating, and filtering existing tasks, dedicated endpoints are available (see the sections "Read task", "Update task", and "Filter tasks").
POST URL for changing room settings
You can also find the room API ID in the room settings under the "Integrations" tab. It allows room-specific settings to be read and edited via the API.
Note: This function is only available in the Enterprise version.
POST URL for changing organization settings
Within the organization settings, there is an "Integrations" tab that lets you manage all interfaces to the organization. The "Webhook" option is listed there; after clicking "More", the necessary options for adding new Webhooks to control the organization settings are displayed.
Note: This function is only available in the Enterprise version.
Limitations
A maximum of one request per second can be processed.
Availability
In addition to forwarding information to Stackfield, it is also possible to make changes to the settings of rooms and the organization. Editing settings via the API is only available in the Enterprise package.
Authentication (JWT)
In addition to the unique Webhook URL, a Webhook can optionally be secured with JWT (JSON Web Token). If this option is enabled, a token is generated for the Webhook that must be sent in the Authorization header with every request. Requests without a valid token are rejected.
The token is permanently bound to the respective Webhook URL and cannot be used for another Webhook. To revoke a token, remove it from the Webhook in the room settings. A newly generated token replaces the previous one, thereby invalidating it.
Token source
Room settings > Integrations > Webhook > JWT authentication
Header
Authorization: "Bearer <TOKEN>"
Example
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <TOKEN>' -d '{"Title":"Hello World!"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Error codes
For failed API requests, Stackfield returns a corresponding error code together with a description of the cause. The following overview lists the possible error codes and their respective meanings.
Note: API error messages are always returned in English, regardless of the language selected in Stackfield.
|
Error code
|
Description
|
| 200 | Successful request and response. |
| 4030 | Request could not be completed. |
| 4031 | Invalid request. |
| 4032 | Encrypted rooms are not supported. |
| 4033 | Room type is not supported. |
| 4034 | Invalid request. |
| 4035 | List level: Module, Room or Organisation not active. |
| 4035 | Invalid request. ObjectId is invalid. |
| 4036 | Room level: Module, Room or Organisation not active. |
| 4037 | Organisation level: Module, Room or Organisation not active. |
| 4038 | Integration disabled. |
| 4038 | Module disabled. |
| 4039 | This organization is not a paid organization. |
| 4040 | API call limit exceeded. |
| 4041 | No files found. |
| 4042 | File is too big. Max 1GB. |
| 4042 | There is not enough free storage space in this organization to perform the upload. |
| 4043 | Cannot read file. |
| 4044 | Attachment could not be added. |
| 4045 | Invalid file type. |
| 4050 | Invalid request. Title is null or empty. |
| 4051 | Invalid request. Users is null or empty. |
| 4052 | Invalid request. Command is unknown. |
| 4055 | Invalid request. DateEnd is before DateStart. |
| 4056 | Invalid request. User contains invalid email. |
| 4056 | Invalid request. Property could not be parsed. |
| 4057 | Double request. |
| 4060 | Invalid email. |
| 4061 | Invalid email. Item not found |
| 4070 | Invalid request. Command is null or empty. |
| 4071 | Invalid request. RoomId is null or empty. |
| 4072 | Not enough free slots. |
| 4073 | Too many invitations |
| 4074 | Users are managed by your domain. |
| 4075 | Invalid request. User with email not member of this organization. |
| 4076 | Invalid request. User with email is already deactivated. |
| 4077 | Invalid request. You can not remove all admins. |
| 4078 | Invalid email and group combination. |
| 4079 | Room is already archived. |
| 4080 | User is already member of this organization. |
| 4081 | Setting: Rooms must be encrypted. |
| 4082 | You can not use encrypted templates. |
| 4083 | Invalid request. {Name} not found. |
| 4084 | Invalid or missing authentication token. |
Chat Message
POST URL source
Room settings > Integrations > Add a new Webhook > Chat Message
Parameters
|
Parameter
|
Required
|
Description
|
|
Title
|
Yes
|
Content of the chat message
|
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"Hello World!"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Discussion
POST URL source
Room settings > Integrations > Add a new Webhook > Discussion
Parameters
|
Parameter
|
Required
|
Description
|
| Title | Yes | Title of the discussion |
| Content | No | Description of the discussion |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"I am the title", "Content":"I am a description"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Task
POST URL source
Room settings > Integrations > Add a new Webhook > Task
Parameters
|
Parameter
|
Required
|
Description
|
| Title | Yes | Title of the task |
| Content | No | Description of the task |
| DateStart | No | Start date (ISO 8601 format) |
| DateEnd | No | End date (ISO 8601 format) |
| Users | No | List of email addresses of the assigned persons |
| Labels | No | Name of the label |
| Status | No | Name of the status |
| Name of the custom field | No | Content of the custom field, e.g. an option of a dropdown list or true / false for a checkbox |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"I am the title", "Content":"I am a description", "DateStart":"2026-07-09T00:00+02:00", "Users":["user1@demo.de","user2@demo.de"], "Labels": ["Prio"], "Prozentsatz": "10", "Checkbox": true, "ColorSelection": "Green"}' https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
This screenshot shows the task created from the example above
Read task
Note: This function is available with the Premium version and above.
Reads an existing task. The task is addressed via its defValueId in the URL. This function is only available in unencrypted rooms.
POST URL source
Room settings > Integrations > Add a new Webhook > Task
Parameters
|
Parameter
|
Required
|
Description
|
| defValueId | Yes | Identifier of the task. Passed as part of the URL (not in the body). You obtain the defValueId as a return value when creating a task via the API, when reading via the "Filter tasks" endpoint (/list), or directly in the app at the top of the task dialog ("Task ID", provided it is enabled in the settings of the task module). |
Type
GET
Example
curl -X GET
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5/{defValueId}
Response
{
"Result": {
"ValueId": 116785,
"DefValueId": "T0021-315",
"Status": "Todo",
"Users": [
"user1@demo.de",
"user2@demo.de"
],
"Title": "task 2",
"Content": "Description of the task",
"customTextfield": "task2 text",
"customCheckBox": false,
"customDropdown": "op1",
"Subtasks": []
},
"ErrorText": ""
}
Update task
Note: This function is available with the Premium version and above.
Updates an existing task. The task is addressed via its defValueId in the URL; the fields to be changed are passed in the body. Standard fields as well as custom fields can be filled and updated. This function is only available in unencrypted rooms.
POST URL source
Room settings > Integrations > Add a new Webhook > Task
Parameters
|
Parameter
|
Required
|
Description
|
| defValueId | Yes | Identifier of the task to be updated (part of the URL, not the body) |
| Title | No | Title of the task |
| Content | No | Description of the task |
| Status | No | Name of the status (including custom statuses) |
| Users | No | List of email addresses of the assigned persons |
| DateStart | No | Start date (ISO 8601 format) |
| DateEnd | No | End date (ISO 8601 format) |
| Name of the custom field | No | Content of the custom field. The key corresponds to the name of the field; the value depends on the field type (see table below). |
Custom field types (examples)
|
Field type
|
Example value
|
Description
|
| Text field | "text test" | Free text (single-line) |
| Text box | "text box test" | Free text (multi-line) |
| Checkbox | false | Boolean value (true / false) |
| Date | "2026-05-05" | Date (ISO 8601) |
| Dropdown list | "op1" | Name of the selected option |
| Decimal number | 3.14 | Number with decimal places |
| Number | 1337 | Integer |
| User | "user@demo.de" | Email address of the user |
| Email | "user@demo.de" | Email address |
| Hyperlink | "https://www.example.com/" | URL |
| Phone | "089-123456" | Phone number |
| Currency | "42 EUR" | Amount incl. currency |
| Percentage | 50 | Percentage value as a number, optionally with or without "%" |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"webhook 3", "Content":"descr", "Status":"Doing", "Users":["user1@demo.de","user2@demo.de"], "DateStart":"2026-05-20", "DateEnd":"2026-05-25", "customTextfield":"text test", "customCheckBox":false, "customDate":"2026-05-05", "customDropdown":"op1", "customDecimal":3.14, "customNumber":1337, "customTextbox":"text box test", "customUser":"user@demo.de", "customMail":"user@demo.de", "customHyperlink":"https://www.example.com/", "customPhone":"089-123456", "customCurrency":"42 EUR", "customPercentage":50}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5/{defValueId}
Filter tasks
Note: This function is available with the Premium version and above.
Returns a list of tasks that match the given rules. Multiple rules are always combined with AND (an OR combination is not supported). This function is only available in unencrypted rooms.
POST URL source
Room settings > Integrations > Add a new Webhook > Task
Structure of a rule
|
Parameter
|
Required
|
Description
|
| Rules | Yes | List of rules. All rules are combined with AND. |
| field | Yes | Name of the field to filter by (standard field or custom field) |
| op | Yes | Operator (see table below) |
| data | Yes | Comparison value |
Operators
|
Operator
|
Meaning
|
Description
|
| eq | equal | equal to |
| ne | not equal | not equal to |
| lt | less than | less than |
| le | less or equal | less than or equal to |
| gt | greater than | greater than |
| ge | greater or equal | greater than or equal to |
Filterable fields
|
Field
|
Operators
|
Notes
|
| Date fields (e.g. DateStart, DateEnd) | eq, ne, gt, ge, lt, le | Only tasks for which the date is set are returned. |
| Text fields | eq, ne | ne with "" filters for non-empty fields; eq filters for specific content. |
| Status | eq, ne | Filters for a status (including custom statuses). |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Rules":[{"field":"DateStart","op":"ge","data":"2026-06-16"},{"field":"DateEnd","op":"le","data":"2026-06-10"},{"field":"customTextfield","op":"ne","data":""},{"field":"customTextfield","op":"eq","data":"test content"},{"field":"Status","op":"eq","data":"Doing"}]}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5/list
Page
POST URL source
Room settings > Integrations > Add a new Webhook > Page
Parameters
|
Parameter
|
Required
|
Description
|
| Title | Yes | Title of the page |
| Content | No | Description of the page |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"I am the title", "Content":"I am a description"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
File
POST URL source
Room settings > Integrations > Add a new Webhook > File
Parameters
|
Parameter
|
Required
|
Description
|
| File | Yes | File path |
Type
POST
Content-Type: "multipart/form-data"
Example
curl -F 'File=@C:\Pictures\MyImage.jpg'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Appointment
POST URL source
Room settings > Integrations > Add a new Webhook > Appointment
Parameters
|
Parameter
|
Required
|
Description
|
| Title | Yes | Title of the appointment |
| Content | No | Description of the appointment |
| DateStart | Yes | Start date (ISO 8601 format) |
| DateEnd | Yes | End date (ISO 8601 format) |
| Users | No | List of email addresses of the invited persons |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Title":"I am the title", "Content":"I am a description", "DateStart":"2026-07-08T22:00:00+02:00","DateEnd":"2026-07-08T23:00:00+02:00", "Users":["user1@demo.de","user2@demo.de"]}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Add user to organization
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: CreateUser |
| Email | Yes | Email address of the user |
| DisplayName | Yes | Display name of the user |
| UserName | Only with Windows authentication (on OnPremise) | User ID |
| OrgRoleId | Yes | Role in organization: 1 - Admin 2 - Member 3 - Guest 4 - External |
| AuthProvider | No (only used with SSO) | ID of the identity provider |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"CreateUser","Email":"apiTester01@webhook.de","DisplayName":"Api Tester01","OrgRoleId":2}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Remove user from organization
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: RemoveUser |
| Email | Yes | Email address of the user |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"RemoveUser","Email":"apiTester01@webhook.de"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Deactivate user in organization
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: DeactivateUser |
| Email | Yes | Email address of the user |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"DeactivateUser","Email":"apiTester01@webhook.de"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Create room
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: CreateRoom |
| RoomId | (Return) | ID of the room |
| Name | Yes | Name of the room |
| Description | No | Description of the room |
| TemplateId | No | ID of the room template |
| Users | Yes | List of room members as objects with Email and optionally GroupId and IsAdmin |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"CreateRoom","Name":"webhook room from template6","Description":"new webhook room desc","TemplateId":"03852566-669e-4991-9491-12ab34cd56ef","Users":[{"Email":"remtester@mail.de","GroupId":2,"IsAdmin":"true"}]}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Archive room
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook > Room settings
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: ArchiveRoom |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"ArchiveRoom"}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Add user to room
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook > Room settings
Room settings > Integrations > Webhook > Add a new Webhook > Room settings
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: GrantRoomAccess |
| Users | Yes | List of room members as objects with Email and optionally GroupId and IsAdmin |
| RoomId | No | Room API ID |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"GrantRoomAccess", "Users":[{"Email":"remtester@mail.de","GroupId":2,"IsAdmin":"true"}]}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5
Remove user from room
Note: This function is only available in the Enterprise version.
POST-URL
Organization settings > Integrations > Webhook > Add a new Webhook > Room settings
Room settings > Integrations > Webhook > Add a new Webhook > Room settings
Parameters
|
Parameter
|
Required
|
Description
|
| Command | Yes | Command name: RevokeRoomAccess |
| Users | Yes | List of email addresses of the members to be removed |
| RoomId | No | Room API ID |
Type
POST
Content-Type: "application/json"
Example
curl -X POST -H 'Content-Type: application/json' -d '{"Command":"RevokeRoomAccess","Users":["remtester@mail.de"]}'
https://www.stackfield.com/apiwh/e5a1cfbd-970e-45a1-b81c-3e004f9bdab5