Connect Teamso to the systems you use. Hires, terminations and organization changes go out instantly as webhooks; read and write data with the REST API; with Teamso MCP, AI assistants act within your permissions.
When you create a subscription you choose the events to listen to. Employee events are managed in company settings, time and attendance events in the attendance settings.
Employee and recognition events
Event
When it is sent
EMPLOYEE_HIRED
An employee started (single entry, Excel or digital onboarding)
EMPLOYEE_TERMINATED
An employee's termination was recorded
EMPLOYEE_TERMINATION_CANCELLED
A termination was cancelled or the employee was rehired
EMPLOYEE_ORG_UPDATED
Branch, department, position or manager changed; the current state and old/new values come together
BADGE_AWARDED
A badge was awarded (a private badge carries no message)
Time and attendance events
Event
When it is sent
attendance.created
A clock-in or clock-out record was created
anomaly.detected
An anomaly was detected (e.g. lateness, a long break)
security.violation
A security violation (e.g. a fake location)
excuse.submitted
An employee wrote a reason
excuse.resolved
A reason was decided
qr.locked
The QR code was locked for a late employee
Event names match the product exactly; this table is updated when a new event is added.
Developer note
Verify the signature and do not process the same event twice
Each request carries the HMAC-SHA256 signature (hex) of the raw body, made with the subscription's secret, in the X-Teamso-Signature header. Delivery is at least once: if the same X-Teamso-Delivery-Id arrives again, ignore it.
Preview the request before saving
Custom format: POST, PUT or GET; JSON or form body; templated fields
Failed deliveries appear in the delivery history with the error and can be resent with one click
Redirects (3xx) are not followed and self-signed certificates are not accepted
Verifying the signature in Node.js (with the raw body)
Security
Integration data leaves under control
Target address checks
The webhook URL is resolved when it is saved and again on every delivery; requests cannot reach the server's own network (loopback, link-local addresses, the cloud metadata endpoint). Internal systems remain reachable over VPN on private addresses.
Secrets and masking
Each subscription has its own secret; values such as passwords and tokens in a custom request are stored encrypted and shown masked on screen and in the delivery history.
Permissions and records
Only authorized users see and manage subscriptions. Token-based API requests are limited to the owner's permissions; once a token is revoked, the next request is rejected.
Use cases
What integrations automate
Account provisioning
When an employee starts, their account is opened in email, Active Directory or the access control system; on termination the account is closed. Organization changes update the department and manager.
Accounting and ERP
New hire and termination data flows to the accounting or ERP system; payroll results are read with the REST API.
Turnstiles and shifts
Clock-in and clock-out events flow to the turnstile or shift planning system; anomaly and security events reach the right team as notifications.
AI assistants with Teamso MCP
Leave approvals, reports and guide search from Claude or Cursor. Details on the AI page.
You create a personal access token on the MCP access page in Teamso. The token works with its owner's permissions and can have an expiry; a user can have at most 10 active tokens. Endpoints for passwords, sessions and security settings are closed to tokens.
Who can set up a webhook?
Users with the permission to view and manage webhook subscriptions in company settings. A subscription sets the URL, the events and the secret; a test request can be sent before saving.
Is data lost if my system does not receive the request?
No. Teamso retries after 1 minute, 5 minutes, 30 minutes, 2 hours and 6 hours; after the last attempt the delivery is marked failed and can be resent from the delivery history with one click.
What if my system needs its own format?
In custom request mode you set the HTTP method (POST, PUT, GET), the body format (JSON or form) and the fields with a template; variables such as first name, last name, email and branch can be transformed with filters. Secret values are stored encrypted and shown masked.
How is the signature verified?
Compute the HMAC-SHA256 of the request's raw body in hex with the subscription's secret and compare it with the X-Teamso-Signature header in constant time. Do not parse and re-serialize the body; the signature covers the raw body.
Let's plan your integration together
Tell us which systems you want to connect; we map the events and fields together during setup.