---
title: Staffbase API Integration on Truto
slug: staffbase
category: User Directory
canonical: "https://truto.one/integrations/detail/staffbase/"
---

# Staffbase API Integration on Truto



**Category:** User Directory  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 142 tools for Staffbase that AI agents can call directly.

- **list_all_staffbase_users** — List all users in Staffbase with their available data. Returns: activated, avatar, config, created, department, emails, externalID, firstName, groupIDs, id, lastName, location, phoneNumber, position, profile, publicEmailAddress, role, status, updated, contacts. The v1 endpoint returns only activated users by default.
- **create_a_staffbase_user** — Invite a new user to the Staffbase platform. Returns the created user including id, role, status, emails, and created. Requires role.
- **staffbase_users_search** — Search users in Staffbase based on the provided search criteria. Returns: total, nextCursor, prevCursor, entries.
- **get_single_staffbase_user_by_id** — Get a single Staffbase user by id. Returns: activated, avatar, config, created, department, emails, externalID, firstName, groupIDs, id, lastName, location, phoneNumber, position, profile, publicEmailAddress, role, status, updated, AdministrativeToken. Required: id.
- **update_a_staffbase_user_by_id** — Update a Staffbase user by applying an incremental update to the user with the given id. Returns the updated user object including id, email, userName, role, status, and profile. Required: id. This legacy endpoint is deprecated; use the PATCH method instead.
- **delete_a_staffbase_user_by_id** — Delete a Staffbase user by id. Deleted accounts cannot be restored by administrators or Staffbase, and the last remaining administrator cannot be deleted. Returns an empty 204 response on success. Required: id.
- **staffbase_users_partial_update** — Partially update a Staffbase user, providing only the fields to change. Returns the updated user: id, email, role, status, createdAt, profile, userName. Required: user_id. User API v1 is deprecated.
- **list_all_staffbase_user_groups** — List the Staffbase groups a specific user is a member of. Returns: id, externalID, name, type, ownerID, users. Required: user_id. Max 100 per page.
- **staffbase_user_groups_search** — Search the groups of a Staffbase user by group name, sorted by creation date. Returns: id, attributes, AdministrativeToken. Required: user_id.
- **get_single_staffbase_groups_visible_by_id** — List the Staffbase groups visible to a user, filtered by group type with conditional groups omitted. Returns: id, externalID, name, type, ownerID, users. Required: id.
- **create_a_staffbase_user_recovery** — Send an account recovery email to a Staffbase user. Returns an empty 202 response on success — the API only confirms the recovery mail was sent. Required: user_id.
- **staffbase_user_sessions_bulk_delete** — Log a user out of Staffbase by invalidating all their active sessions. Returns a 202 status with no payload on success. Required: user_id.
- **list_all_staffbase_users_syncs** — List Staffbase users ordered by their updated timestamp for incremental synchronization. Returns: activated, avatar, config, created, department, emails, externalID, firstName, groupIDs, id, lastName, location, phoneNumber, position, profile, publicEmailAddress, role, status, updated. Max 1000 per page.
- **list_all_staffbase_groups** — List all groups on the Staffbase platform sorted by name. Returns: id, accessorIds, adminIds, externalId, config, type, creator, updatedAt, inclusions, inclusionUserIds, exclusions, exclusionUserIds. Max 500 per page.
- **create_a_staffbase_group** — Create a new group on the Staffbase platform; the group type is determined by the configuration settings you provide. Returns: id, accessorIds, adminIds, externalId, config, type, creator, updatedAt, inclusions, inclusionUserIds, exclusions, exclusionUserIds. Required: config.
- **staffbase_groups_search** — Search groups on the Staffbase platform by free-text query or filter by name, type, creator, and permission. Returns: data. All filters are optional.
- **get_single_staffbase_group_by_id** — Get the details of a specific Staffbase group by id. Returns: id, accessorIds, adminIds, externalId, config, type, creator, updatedAt, inclusions, inclusionUserIds, exclusions, exclusionUserIds, AdministrativeToken. Required: id.
- **update_a_staffbase_group_by_id** — Update a Staffbase group by id; only fields provided in the body are changed (does not apply to nested fields like localization). Returns: id, accessorIds, adminIds, externalId, config, type, creator, updatedAt, inclusions, inclusionUserIds, exclusions, exclusionUserIds, AdministrativeToken. Required: id.
- **delete_a_staffbase_group_by_id** — Delete a group in Staffbase by its group identifier. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_branch_channels** — List all Staffbase news channels that are manageable by the current accessor (API token or user), including channels that are not published. Returns channel records with id and attributes (the channel fields defined upstream).
- **list_all_staffbase_channels** — List news channels in Staffbase that are accessible to the current API token or user. Returns: id, name. Supports searching by channel name via the query parameter. Max 100 per page.
- **get_single_staffbase_channel_by_id** — Get a single Staffbase news channel by its id. Returns the channel object with its id and name. Required: id.
- **list_all_staffbase_channel_posts** — List the news posts of a Staffbase news channel. Returns each post with id, externalID, planned, published, and contents. Required: channel_id. Max 100 per page.
- **create_a_staffbase_channel_post** — Create a new news post in a Staffbase news channel. Returns the newly created post including id, externalID, planned, published, contents, and campaignId. Required: channel_id, contents.
- **list_all_staffbase_posts** — List all Staffbase news posts that are accessible for the current accessor. Returns post records with id, externalID, planned, published, contents, and campaignId. Supports query, sort, manageable, and contentType filters.
- **staffbase_posts_search** — Search Staffbase news posts for a query matching the content, hashtags, image description, teasers, or titles. Returns matching posts with id, externalID, planned, contents, and campaignId. Endpoint is in Beta and may still undergo changes.
- **get_single_staffbase_post_by_id** — Get a single Staffbase news post by id. Returns the full post object including id, externalID, planned, published, contents, and campaignId. The id can be either the system-assigned post ID or the externalID supplied on creation. Required: id.
- **update_a_staffbase_post_by_id** — Update a Staffbase news post by id with the data provided in the request. Returns the updated post including id, externalID, planned, published, contents, and campaignId. Campaign assignment is managed through the Campaigns API, not this endpoint. Required: id.
- **delete_a_staffbase_post_by_id** — Delete a Staffbase news post by id; the post is removed from the system or moved to trash if trash is active on the platform. Returns an empty 204 response on success. Required: id.
- **create_a_staffbase_post_notification** — Resend notifications for a news post in Staffbase. Returns the created resend configuration including email, push, recipients, and per-locale contents. Required: post_id, email, push, recipients.
- **list_all_staffbase_post_acknowledgements** — List acknowledgements for a Staffbase news post, most recent acknowledgements first. Returns acknowledgement records with id and attributes (the user who acknowledged the post and the point in time they did so); attribute fields are defined upstream and not enumerated in the docs. Required: post_id.
- **list_all_staffbase_newspage_posts** — List Staffbase news page posts for the client view, ordered by publish date; only posts accessible to the current accessor are included. Returns: id, attributes. Required: news_page_id.
- **list_all_staffbase_newspage_channels** — List channels of a Staffbase news page in which the current accessor (API token or user) is a contributor and therefore allowed to create posts. Returns channel records with id. Required: news_page_id. Max 10 per page.
- **list_all_staffbase_newspage_rights** — List the rights the current accessor (API token or user) has on a Staffbase news page, to determine whether it may contribute to news channels assigned to the page. Returns an array of right strings such as "CONTRIBUTE" when contribution is allowed. Required: news_page_id.
- **list_all_staffbase_pages** — List Staffbase pages with their content. Filter by spaceIds, status, and sort with orderBy. Returns: id, spaceId, createdAt, updatedAt, title.
- **create_a_staffbase_page** — Create a page in a Staffbase space. Returns the created page with id, contents, spaceId, createdAt, and publishedAt. Required: contents.
- **get_single_staffbase_page_by_id** — Get a single Staffbase page by id, including its localized content and access settings. Returns: id, createdAt, updatedAt, title. Required: id.
- **update_a_staffbase_page_by_id** — Update the content and details of a Staffbase page by id. Returns: id, createdAt, updatedAt, title. Required: id, contents.
- **delete_a_staffbase_page_by_id** — Delete a Staffbase page by id. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_pages_syncs** — List Staffbase pages updated or deleted within the last 60 days, paged by cursor. Returns each sync entry with state and the page entity including id, branchId, spaceId, contents, timestamps, ownerId, readers, and admins; deleted entries carry only id, branchId, spaceId, and deletedAt.
- **list_all_staffbase_chats_timeseries** — Get Staffbase chat timeseries stats about active chat users, active group conversations and active direct conversations. Returns: activeChatUsers, activeDirectConversations, activeGroupConversations, group. Prefer format=json over csv. Required: groupBy.
- **list_all_staffbase_contents_rankings** — List Staffbase content rankings — content with its branch, space, and publicity context ranked descending by visits. Returns: group, registeredVisitors, registeredVisits, unregisteredVisitors, unregisteredVisits. Supports SCIM filtering, result grouping, and CSV output via format=csv.
- **list_all_staffbase_pages_rankings** — List Staffbase pages ranked by their usage statistics for a reporting interval. Returns: bounceRate, clicks, id, menuId, pageTitle, secondsSpent, sessions, shortSessions, spaceId, spaceName, viewers, views. Required: since, until.
- **list_all_staffbase_pages_timeseries** — Get the Staffbase pages timeseries: page views and unique visitors grouped into day, week, or month buckets. Returns: date, views, visitors. Required: since, until, groupBy.
- **list_all_staffbase_views_streams** — List Staffbase page view counts for all currently published pages over an interval. Returns: pageId, viewCount. Required: since, until. Response is a newline-delimited JSON stream with one object per line.
- **get_single_staffbase_page_click_ranking_by_id** — Get the aggregated click ranking for a specific Staffbase page, ranked by how many times each URL or element was clicked. Returns: clickCount, title, url. Limit must be between 1 and 10000. Required: id, since, until.
- **list_all_staffbase_page_group_rankings** — List the Staffbase groups whose members visited a specific page, ranked by the number of unique visitors per group. Returns: groupId, groupName, visitors. Required: page_id, since, until.
- **get_single_staffbase_page_histogram_by_id** — Get the time-distribution histogram for a specific Staffbase page, grouping visitor sessions into predefined time-spent buckets. Returns: count, seconds. Required: id, since, until.
- **list_all_staffbase_page_timeseries** — Get detailed timeseries analytics for a single Staffbase page, including views, unique visitors, and total clicks grouped into time buckets. Returns: date, totalClicks, views, visitors. Required: page_id, since, until, groupBy.
- **list_all_staffbase_page_views** — Get the total view count for a specific Staffbase page within the provided reporting interval. Returns: count. Required: page_id, since, until.
- **list_all_staffbase_page_traffic_sources** — List Staffbase page traffic sources: visits to a specific page broken down by UTM parameters and platform. Returns: campaign, content, medium, platforms, source, term. Required: page_id, since, until.
- **list_all_staffbase_page_stats** — Get analytics stats for a single Staffbase page, including views, visitors, clicks, and session metrics for the requested interval. Returns: avgTimeSpentSecs, returningVisitors, sessions, shortSessions, totalClicks, totalViews, uniqueClicks, uniqueVisitors. Required: page_id, since, until.
- **list_all_staffbase_posts_rankings** — List Staffbase post analytics rankings with view, visitor, like, comment, and share stats for posts, ranked descending by visits. Returns: comments, group, likes, newPosts, registeredVisitors, registeredVisits, shares, unregisteredVisitors, unregisteredVisits. since and until become required on Oct 1, 2026.
- **list_all_staffbase_posts_timeseries** — List Staffbase post analytics grouped into time buckets, covering views, unique visitors, likes, comments, and shares. Returns per-bucket stats: group, registeredVisitors, registeredVisits, unregisteredVisitors, unregisteredVisits, newPosts, comments, likes, and shares. Required: groupBy.
- **list_all_staffbase_users_timeseries** — List Staffbase user timeseries stats grouped into time buckets. Returns: activeUsers, engagedUsers, group, registeredUsers, totalUsers. Required: groupBy, since, until.
- **staffbase_users_timeseries_search** — Search Staffbase user timeseries with SCIM filtering, grouped into time buckets. Returns: activeUsers, engagedUsers, group. Required: groupBy. Deprecated; use the v2 timeseries endpoint.
- **list_all_staffbase_auditlogs** — List Staffbase audit log entries as a newline-delimited JSON stream. Returns: event, finished, error. Entries are retained for up to six months.
- **list_all_staffbase_campaigns** — List Staffbase campaigns with their analytics data. Returns: id, branchID, branchId, campaignId, sourceId, sourceType, publishedAt, scheduledFor, stats, emailData. Optional filters: sort, range, includeStats, query, withSourceType and withSourceId (must be paired), withinIds.
- **create_a_staffbase_campaign** — Create a Staffbase campaign. Returns: id. Required: title. If provided, startAt and endAt must be set together with startAt earlier than endAt.
- **get_single_staffbase_campaign_by_id** — Get a single Staffbase campaign by id. Returns: id, branchID, branchId, campaignId, sourceId, sourceType, publishedAt, scheduledFor, stats, emailData. Required: id.
- **update_a_staffbase_campaign_by_id** — Update an existing Staffbase campaign by id. Returns the updated campaign with its id, sourceType, scheduledFor, stats, and emailData. Required: id, title. If provided, startAt and endAt must be set together with startAt earlier than endAt.
- **delete_a_staffbase_campaign_by_id** — Delete a Staffbase campaign by id. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_campaign_references** — List the content references attached to a Staffbase campaign. Returns a paginated list of references with id, sourceType, sourceId, campaign_id, publishedAt, scheduledFor, stats, and content-type-specific postData/emailData details. Required: campaign_id.
- **create_a_staffbase_campaign_reference** — Attach a content piece (a POST or EMAIL) to a Staffbase campaign as a new campaign reference. Returns: sourceType, sourceId. Required: campaign_id.
- **delete_a_staffbase_campaign_reference_by_id** — Detach a piece of content from a Staffbase campaign by removing its campaign reference. Returns an empty 204 response on success. Required: id, campaign_id, source_type.
- **create_a_staffbase_installation_conversation** — Create a Direct or Group conversation with one or more partners in a Staffbase chat installation; an existing Direct conversation is updated with the provided message. Returns: id, installationID, type, creatorID, adminIDs, messageCount, meta, status. Required: chat_id, participantIDs.
- **delete_a_staffbase_conversation_by_id** — Delete a Staffbase group conversation by id. Returns an empty 204 response on success. Required: id. Only group conversations can be deleted; one-on-one conversations cannot be deleted, and the API token must be the one that created the conversation.
- **list_all_staffbase_comments** — List branch comments in Staffbase that are accessible for the API token. Returns comments with their id, created and updated timestamps, and comment attributes. Max 100 per page.
- **list_all_staffbase_users_imports** — List all CSV imports performed in the last 30 days in Staffbase. Returns: entries, nextCursor, prevCursor.
- **create_a_staffbase_users_import** — Upload a CSV file to Staffbase to create a new user import. Requires file (the CSV file to upload). Returns an empty 201 response; the created import's id is provided in the Location response header.
- **get_single_staffbase_users_import_by_id** — Get the metadata of a specific CSV import in Staffbase. Returns: id, createdAt, fileName, fileSize, recordCount, state, owner. Required: id.
- **update_a_staffbase_users_import_by_id** — Update the state of a CSV import in Staffbase to preview, import, or cancel it. Returns an empty 204 response on success. Imports cannot move back to an earlier state once they move forward. Required: id.
- **delete_a_staffbase_users_import_by_id** — Delete a CSV import record in Staffbase by id. Returns an empty 204 response on success. Required: id.
- **get_single_staffbase_import_status_by_id** — Get the current status and progress of a CSV user import in Staffbase. Returns: totalLines, completedLines, status, changes. Required: id.
- **get_single_staffbase_import_config_by_id** — Get the CSV import configuration for a Staffbase CSV user import by id. Returns the configuration object including delta, removeAll, separator, encoding, generateRecoveryCodes, mail/report settings, import type, and the CSV-column-to-profile-field mapping. Required: id.
- **staffbase_import_configs_bulk_update** — Update the import options (delta, removeAll, separator, encoding, mail/report settings) and the CSV-column-to-profile-field mapping for a Staffbase CSV import. Returns an empty 204 response on success. Required: import_id.
- **get_single_staffbase_import_changelog_by_id** — Stream all changelog records for a Staffbase CSV user import in CSV format. Returns a raw CSV stream of changelog records (content-type text/csv; columns are not named in the docs). Required: id.
- **list_all_staffbase_medialibrary_collections** — List media library collections in Staffbase that the API token has access to. Returns: id, name, accessorIds, adminIds, mediumCount, createdAt, updatedAt.
- **create_a_staffbase_medialibrary_collection** — Create a media library collection in Staffbase with a unique name and granted manage/view access for users or groups. Returns: id, name, accessorIds, adminIds, mediumCount, createdAt, updatedAt. Requires name. Required: name.
- **get_single_staffbase_medialibrary_collection_by_id** — Get a single media library collection by id in Staffbase. Returns: id, name, accessorIds, adminIds, mediumCount, createdAt, updatedAt. Required: id.
- **update_a_staffbase_medialibrary_collection_by_id** — Update a media library collection's name and manage/view permissions in Staffbase. Returns: id, name, accessorIds, adminIds, mediumCount, createdAt, updatedAt. Required: id, name, accessorIds, adminIds.
- **delete_a_staffbase_medialibrary_collection_by_id** — Delete a media library collection in Staffbase by id. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_collection_entries** — List files in a Staffbase media library collection. Returns: id, created, createdBy, mimeType, type, original, fileName, fileExtension, referenceCount, playbackUrl, duration, thumbnail. Required: collection_id.
- **create_a_staffbase_collection_entry** — Add one or more files to a Staffbase media library collection. Returns: entries. Required: collection_id, entries.
- **create_a_staffbase_entries_delete** — Remove one or more files from a Staffbase media library collection. The files are only removed from the collection, not deleted from the platform. Returns an empty 204 response on success. Required: collection_id, entries.
- **list_all_staffbase_collections_alls** — List all collections created in the Staffbase media library. Returns: id, name, accessorIds, adminIds, mediumCount, createdAt, updatedAt.
- **staffbase_medialibrary_entries_search** — Search files in Staffbase's File Manager by type. Returns matching file entries including id, fileName, mimeType, type, thumbnail, duration, and referenceCount. Requires a JSON request body (filters, sortBy).
- **update_a_staffbase_medialibrary_entry_by_id** — Update a media library entry in Staffbase by attaching an already uploaded file to the File Manager associated with the API token. Returns an empty 204 response on success. Required: id.
- **staffbase_entries_alls_search** — Search all files in the Staffbase File Manager. Returns matching file entries including id, fileName, mimeType, type, playbackUrl, and created.
- **staffbase_installations_search** — Search Staffbase installations (plugins added to your platform) by keywords in title, description, hashtags, or content. Returns: entries, total, nextCursor. Max 100 per page.
- **list_all_staffbase_media** — List media in Staffbase, sorted by ID descending. Returns media records with id, ownerID, publicID, resourceInfo (file url, mimeType, bytes, dimensions), transformations, fileName, and created. Max 100 per page.
- **create_a_staffbase_media** — Upload a file to Staffbase media in a single multipart request. Returns the created medium record with id, ownerID, publicID, resourceInfo, transformations, fileName, and created. Required: file. Optional metadata JSON can hint the file type (image, video, raw, auto) and override the fileName.
- **get_single_staffbase_media_by_id** — Get a single Staffbase medium by id. Returns the full medium record with id, ownerID, publicID, resourceInfo (file url, mimeType, bytes, dimensions), transformations, fileName, and created. Required: id.
- **update_a_staffbase_media_by_id** — Replace a Staffbase medium by uploading a new file; the medium and all its variants are replaced on the Staffbase and CDN servers. Returns an empty 204 response on success. Required: id, file, note.
- **delete_a_staffbase_media_by_id** — Delete a Staffbase medium by id, immediately removing it and all its variants from the Staffbase and CDN servers. Returns an empty 204 response on success. Required: id.
- **staffbase_media_search** — Search media in Staffbase by a search term matching filename, content, or type. Returns matching media records including id, fileName, publicID, resourceInfo (URL, size, mime type), and preview transformations. This endpoint is in Beta.
- **staffbase_media_publishes_bulk_update** — Make Staffbase media URLs publicly accessible by appending a shareable media token so third parties can access them without a session or API token; shared URLs cannot be revoked. Returns: urls. Required: urls.
- **create_a_staffbase_branch_notification** — Create and send a Staffbase branch notification to the specified users, user groups, or all platform users via the defined channels. Returns: notificationId. If channels is omitted, the notification is sent to all available channels. Required: accessorIds, content.
- **create_a_staffbase_installation_notification** — Send a Staffbase plugin notification: create a notification and deliver it to the specified users or user groups who have access to the given plugin instance, using the defined channels. Returns: notificationId. Required: installation_id, accessorIds, content.
- **create_a_staffbase_notification** — Send a notification to alert Staffbase App or Intranet users about available content. Returns: notificationId. Deprecated — this endpoint will be removed by the end of 2025; use the Send a notification or Send a plugin notification endpoints instead.
- **list_all_staffbase_templates** — List page templates in Staffbase, sorted ascending by title. Returns: id, title, content, config. Max 1000 per page.
- **create_a_staffbase_template** — Create a page template in Staffbase. Returns the created template with id, title, content, and config. Required: title.
- **get_single_staffbase_template_by_id** — Get a single page template by id in Staffbase. Returns the page template with its id and title. Required: id.
- **update_a_staffbase_template_by_id** — Update a page template by id in Staffbase. Returns: id, title, content. Required: id, title.
- **delete_a_staffbase_template_by_id** — Delete a page template by id in Staffbase. Returns an empty 204 response on success. Required: id.
- **staffbase_profiles_search** — Search Staffbase user profiles by a query string across searchable profile fields like names, usernames, and email addresses. Returns each matching profile entry with its internalUserId and profile field values such as firstName, lastName, position, department, location, phoneNumber, and publicEmailAddress. Max 500 per page.
- **list_all_staffbase_branch_quicklinks** — List all Staffbase Quick Links for a given platform. Returns Quick Link objects with id, platform, localization, logo, icon, accessorIds, link, and priority. Required: platform.
- **create_a_staffbase_branch_quicklink** — Create a new Quick Link in Staffbase. Returns the created Quick Link with id, platform, localization, logo, icon, accessorIds, link, priority, and menuNodeId. Required: platform.
- **get_single_staffbase_branch_quicklink_by_id** — Get a single Staffbase Quick Link by id. Returns the Quick Link with id, platform, localization, logo, icon, accessorIds, link, priority, and menuNodeId. Required: id.
- **update_a_staffbase_branch_quicklink_by_id** — Update a Staffbase Quick Link by id, providing only the properties to change. Returns the updated Quick Link with id, platform, localization, logo, icon, accessorIds, link, and priority. Required: id.
- **delete_a_staffbase_branch_quicklink_by_id** — Remove a Staffbase Quick Link by id. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_tags** — List Staffbase user tags, optionally filtered by tag value. Returns: id, value. The tag filter must use the profile:tagname:value format (e.g. profile:city:berlin). Default 50 per page.
- **list_all_staffbase_search_settings** — Get the Staffbase search settings for the redesigned search results page. Returns: branchId, general, internalSections, integrationSections.
- **staffbase_search_settings_bulk_delete** — Delete the custom search settings in Staffbase, reverting the search's behavior to the default. Returns an empty 204 response on success.
- **update_a_staffbase_settings_internal_section_by_id** — Update the search settings of a Staffbase internal section by id (one of news, pages, people, forms, events, files, apps). Returns: id, enabled, searchable, title, displayType, filters, pageSize, sortingOptions, and 4 more. Required: id, enabled, title, displayType, pageSize, iconUrl, datePrefix, orderId, sortingOptions. iconUrl cannot be changed.
- **update_a_staffbase_settings_integration_section_by_id** — Update the search settings for a Staffbase integration section by id. Returns the updated section including id, enabled, searchable, title, displayType, pageSize, and integration. Required: id.
- **staffbase_settings_generals_bulk_update** — Update the general search settings in Staffbase, including localization strings, search flyout visibility, and the search redirect URL. Returns: localizations, showFlyout, redirectUrl, redirectUrlMobile.
- **list_all_staffbase_spaces** — List all spaces in the Staffbase platform. Returns each space with its id, name, adminIDs, accessorIDs, sections, and parentId. Max 100 per page.
- **create_a_staffbase_space** — Create a space in Staffbase. Returns the created space object including id, name, branchID, adminIDs, accessorIDs, and sections. Required: name.
- **staffbase_spaces_search** — Search Staffbase spaces by search term with optional sorting and section filters. Returns matching spaces including their id, name, adminIDs, sections, and createdAt. Max 100 results per page; use the list spaces endpoint to retrieve all spaces without a query or filters.
- **get_single_staffbase_space_by_id** — Get a space in Staffbase by id. Returns the space object including id, name, branchID, childIds, adminIDs, accessorIDs, accessors, links, and sections. Required: id.
- **update_a_staffbase_space_by_id** — Update a space in Staffbase by id. Returns the updated space object including id, name, branchID, adminIDs, accessorIDs, and sections. Required: id.
- **delete_a_staffbase_space_by_id** — Delete a Staffbase space by id. The space is permanently removed from the platform. Returns an empty 204 response on success. Required: id.
- **list_all_staffbase_email_performance_emails** — List all sent emails in Staffbase Email for which the Email Performance API has retrieved tracking data. Returns a paginated list of email records, each with an id and metadata attributes whose fields are defined by the Email Performance API's Email schema. Use cursor to paginate when more results are available.
- **get_single_staffbase_email_performance_email_by_id** — Get the metadata for a specific sent email in Staffbase Email by id. The id must be an emailId as returned by ListEmails, and metadata exists only for sent emails whose tracking data has already been retrieved. Returns the email record: id and metadata attributes, whose fields are defined by the Email Performance API's Email schema. Required: id.
- **list_all_staffbase_email_performance_events** — Stream email tracking events (such as sent, open, click, and bounce) for a Staffbase Email Designer email in real time. Returns a raw event stream with id, email_id, eventSubject, eventType, eventTime, and eventGroupIds per event. Required: email_id, since, until. Maximum interval between since and until: 31 days.
- **list_all_staffbase_email_performance_clicks** — Retrieve click rate data for a specific email created in the Staffbase Email Designer, including the percentage of recipients who clicked a link plus total and unique link click counts. Returns: totalClicks, uniqueClicks, percentage, lastClickRecorded. Required: email_id.
- **get_single_staffbase_email_performance_engagement_trend_by_id** — Get the engagement trend (clicks, opens, and total recipients) for a Staffbase Email Designer email by id. Returns: totalRecipients, opens, clicks. Required: id.
- **list_all_staffbase_email_performance_opens** — Retrieve the open rate for a specific email created in the Staffbase Email Designer. Returns: totalOpens, uniqueOpens, percentage. Required: email_id.
- **get_single_staffbase_email_performance_recipient_count_by_id** — Get the recipient count for a specific email created in the Staffbase Email Designer, optionally filtered by a target audience user group. Returns: totalRecipients, targetAudience. Required: id.
- **list_all_staffbase_email_performance_top_clicked_links** — List the top clicked links for a Staffbase Email Designer email, with unique click counts per link. Returns a links map whose entries include name, percentage, target, uniqueClicks, and uniqueOpens. Required: email_id.
- **get_email_performance_total_activity_over_time_by_id** — Get total activity over time (clicks and opens) for a specific Staffbase Email Designer email within a time interval. Returns: opens, clicks, interval. Required: id, groupBy, since, until, timezone.
- **get_email_performance_unique_activity_over_time_by_id** — Retrieve unique activity (unique clicks and opens) over time for a specific Staffbase Email Designer email, grouped into time buckets. Returns: opens, clicks, interval. Required: id, groupBy, since, until, timezone.
- **list_all_staffbase_email_performance_user_groups** — List the user groups (target audience groups) associated with a specific email created in the Staffbase Email Designer. Returns an array of user group IDs. Required: email_id.
- **list_all_staffbase_contacts** — List all contacts of your Employee Email (Classic) Contacts Directory in Staffbase. Returns contact records with firstName, lastName, email, location, department, jobTitle, and customFields.
- **staffbase_contacts_bulk_delete** — Delete contacts from your Employee Email (Classic) Contacts Directory by their email addresses. Returns an empty 204 response on success. Requires an array of contact email addresses as the request body. Required: emails.
- **create_a_staffbase_contacts_upload** — Upload a contacts file to Staffbase Employee Email (Classic) to add contacts to the Contacts Directory. Processing is asynchronous; Returns: importID.
- **get_single_staffbase_contacts_import_by_id** — Get the state of a contacts import in Staffbase Employee Email (Classic) by id. Returns: importID, status, successCount, errorCount. Required: id.
- **list_all_staffbase_search_group_members** — List members of a Staffbase group, sorted by name, with name search and user-status filtering. Returns member entries including id and member attributes. Required: group_id. Max 500 per page.
- **staffbase_search_group_members_bulk_update** — Add members to a Staffbase group. Each member is given as a Staffbase user id or email address in userIds. Returns an empty 204 response on success. Required: group_id.
- **list_all_staffbase_import_errors** — Stream all error records of a Staffbase CSV import. Returns a text/csv stream where each row pairs a record number with its error message, e.g. "2","Emails is already taken: test@example.com. (40007)". Required: import_id.
- **list_all_staffbase_client_channel_posts** — List the news posts of a single Staffbase news channel (client view), ordered by published date descending. Returns: id, externalID, planned, published, contents. Required: channel_id.

## How it works

1. **Link your customer's Staffbase account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Staffbase.** The Proxy API is a 1-to-1 mapping of the Staffbase API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Sync HRIS data into Staffbase for targeted comms** — HR and workforce platforms can keep Staffbase's employee directory and groups automatically up to date, so internal comms teams can target the right employees by location, department, or shift without manual CSV uploads.
- **Syndicate recognition and content into the employee app** — Recognition, LMS, CMS, and policy management platforms can push shoutouts, training content, or SOPs directly into Staffbase channels and pages, reaching deskless workers who never log into your product directly.
- **Trigger high-priority push alerts to frontline workers** — Safety, incident management, and IT service platforms can send instant push notifications through Staffbase's mobile app, bypassing email to reach shift workers during outages, hazards, or facility closures.
- **Pull engagement analytics into BI and people dashboards** — BI, people analytics, and employee experience tools can ingest Staffbase post, page, and email engagement metrics to correlate internal comms with retention, productivity, and campaign ROI.
- **Automate onboarding and offboarding workflows** — Onboarding and identity platforms can provision new hires into Staffbase, assign them to the right groups, and clean up sessions and accounts on termination — all driven by lifecycle events in your product.

## What you can build

- **Two-way employee directory sync** — Keep users in sync between your product and Staffbase using list, create, update, partial update, and delete operations on Staffbase users.
- **Automated group membership management** — Create and update Staffbase groups and bulk-assign members based on location, department, or shift changes coming from your HRIS or scheduling product.
- **Native news and page publishing** — Let customers publish channel posts, news pages, and media (images and video) from your product directly into their Staffbase intranet and mobile app.
- **Push notification broadcasting** — Send branch, installation, or targeted notifications from your platform to Staffbase mobile users for incidents, approvals, or time-sensitive updates.
- **Engagement analytics ingestion** — Pull post timeseries, page stats, page views, rankings, and email performance events into your analytics product to measure comms impact.
- **Campaign and template orchestration** — Create, update, and manage Staffbase campaigns, templates, and campaign references to drive multi-step comms programs from inside your SaaS.

## FAQs

### How does authentication work for Staffbase through Truto?

Truto handles the Staffbase API token exchange and credential storage on behalf of your end users. Your users connect their Staffbase tenant once, and Truto manages the auth headers and token lifecycle for every subsequent API call.

### Can we provision users and assign them to groups automatically?

Yes. You can create and update users via create_a_staffbase_user, update_a_staffbase_user_by_id, and staffbase_users_partial_update, and manage group membership using the Staffbase groups endpoints plus staffbase_search_group_members_bulk_update for bulk assignments.

### Can we send push notifications to specific employee groups?

Yes. Truto exposes create_a_staffbase_notification, create_a_staffbase_branch_notification, and create_a_staffbase_installation_notification, letting you target individual branches, installations, or the entire workforce with push alerts.

### What engagement analytics can we pull out of Staffbase?

You can access post and page timeseries, page views, traffic sources, click rankings, content rankings, user timeseries, and detailed email performance data including opens, clicks, events, and top clicked links.

### Does Truto handle pagination and rate limits for Staffbase?

Yes. Truto normalizes pagination across list endpoints and manages retries and backoff when Staffbase enforces rate limits, so you don't have to build that logic into your integration.

### Can we upload media and attach it to posts or pages?

Yes. Use create_a_staffbase_media to upload images and videos, then reference that media when creating channel posts, pages, or news content through the corresponding create endpoints.

### Is this a prebuilt unified API or a direct Staffbase integration?

This is a direct Staffbase integration exposed through Truto's standardized interface. There is no unified User Directory API grouping yet, so you work with Staffbase-native resources like users, groups, channels, posts, pages, campaigns, and notifications.

## Related reading

- [Connect Staffbase to Claude: Sync Groups, Pages, and News Channels](https://truto.one/blog/connect-staffbase-to-claude-sync-groups-pages-and-news-channels/) — Learn how to build a managed MCP server to connect Staffbase to Claude. Automate user provisioning, broadcast news posts, and pull real-time intranet analytics.
- [Connect Staffbase to ChatGPT: Manage Users, Analytics, and Content](https://truto.one/blog/connect-staffbase-to-chatgpt-manage-users-analytics-and-content/) — Learn how to connect Staffbase to ChatGPT using an MCP server. Automate internal communications, user directories, and analytics workflows via natural language.
- [Connect Staffbase to AI Agents: Automate Comms and Media Workflows](https://truto.one/blog/connect-staffbase-to-ai-agents-automate-comms-and-media-workflows/) — Learn how to connect Staffbase to AI agents using Truto's unified tools endpoint. Automate internal comms, media libraries, and analytics workflows.
