Table of Contents
Welcome to Stackify¶
Stackify is an AI-powered data catalog for business teams. It gives you a structured, searchable home for all your datasets — without needing a data engineer or enterprise tooling.
What you can do with Stackify¶
- Create cards — build structured datasets from scratch or import Excel/CSV files in seconds
- Collaborate — share cards with teammates using roles (Viewer, Editor, Owner)
- Discover data — search across all cards in your workspace by name, description, or content
- Integrate — connect to Zapier, n8n, UiPath, or any system via REST API and webhooks
- Automate — trigger workflows when records are created or updated
Key concepts¶
| Term | What it means |
|---|---|
| Card | A single dataset — a named collection of fields and records (like a spreadsheet) |
| Field | A column in a card (e.g. "Project name", "Due date", "Status") |
| Record | A single row of data within a card |
| Catalog | Your full library of owned and shared cards |
| Workspace | An isolated environment for your team — all cards, users, and settings live here |
Quick links¶
- Sign up and create your workspace →
- Create your first card →
- Invite your team →
- Connect to Zapier →
- REST API reference →
Save as PDF
Open the Print / Save as PDF page to get a single-page version of the full docs, then use your browser's Print → Save as PDF to download it.
Getting Started
Sign up¶
Create an account¶
- Go to app.stackify.se and click Sign up.
- Enter your email address and choose a password, then click Create account.
- Check your email for a verification link and click it to confirm your address.
- You are taken to Stackify and prompted to create your first workspace.
Create a workspace¶
A workspace is an isolated environment for your team. All cards, users, and settings are scoped to a single workspace.
- Enter a workspace name (e.g. your company or team name).
- Click Create workspace.
- Your workspace is ready — you land on the catalog home screen.
Multiple workspaces
One account can belong to multiple workspaces. If you are invited to a second workspace later, a workspace switcher appears in the top navigation bar.
Join via invite link¶
If a colleague has invited you to an existing workspace:
- Open the invite email and click Accept invite.
- If you don't have an account yet, you are taken to the sign-up page first.
- After signing in or creating your account, you are automatically added to the workspace.
- You land on the home screen with any pre-shared cards already visible.
Invite expiry
Invite links expire after 7 days. Ask your workspace admin to resend if yours has expired.
Quick start¶
Get from sign-up to a shared, populated card in under five minutes.
Step 1 — Create a card¶
- From the home screen, click the + button.
- Choose Start from scratch (or pick a template — see From a template).
- Give your card a name, e.g. Project tracker.
- Add your first field: enter a field name and pick a type (text, number, date, etc.).
- Add more fields as needed, then click Create card.
Step 2 — Add data¶
- Open your card. The grid view shows your fields as columns.
- Click + Add record (or press
Enterat the bottom of the table). - Click any cell and start typing. Changes save automatically.
- Open your card and click Import in the toolbar.
- Drag-and-drop your file or click to browse.
- Review the detected field mapping — adjust any columns if needed.
- Click Import to load all rows.
See Importing from Excel / CSV for details.
Step 3 — Share with your team¶
- Click Share in the top-right of the card.
- Enter a colleague's email address and choose their role: Viewer, Editor, or Owner.
- Click Send invite. They receive an email with a link to the card.
Tip
You can also generate a shareable link instead of sending individual invites — useful for sharing with a larger group.
Step 4 — Explore and discover¶
- Use the search bar at the top of the catalog to find records or cards by keyword.
- Switch between grid layout and card layout on the home screen.
- Filter the catalog by tag or owner to find relevant datasets quickly.
That's it — your team is now working with shared, structured data in Stackify.
Cards
Creating a card¶
A card is a single dataset — a named collection of fields (columns) and records (rows). Cards are the core building block of Stackify.
Create a card from scratch¶
- From the home screen, click the + button in the top-right corner.
- Select Start from scratch.
- Enter a card name and an optional description.
- Add fields using the field builder:
- Type a field name.
- Choose a field type from the dropdown (see field types below).
- Click Add field to add another.
- Click Create card when you're done.
You land directly in the card's grid view, ready to add records.
Field types¶
| Type | Use for |
|---|---|
| Text | Names, descriptions, free-form notes |
| Number | Quantities, scores, measurements |
| Date | Deadlines, event dates, timestamps |
| Boolean | Yes/No checkboxes |
| Single select | One value from a fixed list |
| Multi-select | Multiple values from a fixed list |
| Email addresses (renders as a mailto link) | |
| URL | Web links (renders as a clickable link) |
| Attachment | File uploads |
| Map point | GPS coordinates, shown on a map |
Not sure which type to use?
Start with Text — you can always change the field type later. Stackify will warn you if the change would lose data.
Rename or delete a card¶
- To rename a card: click the card name at the top of the card view and type a new name.
- To delete a card: open the card's Settings (gear icon) → Delete card. This is permanent and cannot be undone.
Warning
Only the card Owner can delete a card. Deleting removes all records and cannot be recovered.
Importing from Excel / CSV¶
Stackify can create a new card directly from an Excel (.xlsx) or CSV file. The AI automatically maps columns to fields and infers the correct field type for each column.
Import a file¶
- From the home screen, click + → Import file.
- Drag and drop your file onto the upload area, or click Browse to select it.
- Stackify reads your file and displays a field mapping preview:
- Each column from your file appears as a field.
- A detected field type is shown next to each column name.
- Review the mapping:
- Rename any field by clicking its name.
- Change a field type using the dropdown.
- Uncheck any columns you don't want to import.
- Click Import to create the card.
Once the import completes, you land in the new card's grid view with all your data loaded.
AI-generated metadata¶
After import, Stackify's AI automatically generates:
- A suggested card name based on your data
- A card description
- A description for each field
- Suggested tags and categories
- Data quality warnings (e.g. missing values, inconsistent formats)
You can accept, edit, or dismiss each suggestion before saving.
Large files
Files up to 100,000 rows are supported. A progress bar shows the import status for large files.
Import into an existing card¶
You can also add rows to an existing card from a file:
- Open the card and click Import in the toolbar.
- Upload your file and map the columns to the card's existing fields.
- Click Import to append the rows.
Note
Importing into an existing card appends records — it does not overwrite or replace existing data.
Creating a card from a template¶
Templates give you a pre-configured field structure for common use cases. You can use a built-in system template or one created by your workspace admin.
Use a template¶
- From the home screen, click + → From template.
- Browse the available templates. Each shows a name, description, and the fields it includes.
- Click a template to preview its field structure.
- Click Use template.
- Give your card a name (the template name is pre-filled — you can change it).
- Review and adjust any fields before creating.
- Click Create card.
The card opens in grid view, ready to accept data.
Available system templates¶
Stackify includes built-in templates for common public-sector and business datasets:
| Template | Use for |
|---|---|
| Dog parks | Locations, facilities, and amenities of dog parks |
| Playgrounds | Public playground inventory with equipment and condition data |
| Events | Event calendar with dates, venue, and capacity |
| Recycling stations | Locations and accepted waste types for recycling points |
| Procurement | Supplier and contract tracking |
Workspace templates
Your workspace admin can create custom templates tailored to your organisation. These appear alongside the system templates in the template picker.
Save a card as a template¶
Workspace admins can save any existing card's field structure as a reusable template:
- Open the card.
- Go to Settings → Save as template.
- Give the template a name and description.
- Click Save.
The template is now available to everyone in the workspace when creating a new card.
Exporting a card¶
You can export any card you have at least Viewer access to as an Excel (.xlsx) file.
Export to Excel¶
- Open the card.
- Click the Export button in the toolbar (or go to the ⋮ menu → Export to Excel).
- The file downloads automatically.
The exported file contains all visible records and fields. Any active filters or sort order are reflected in the export.
Large datasets
Cards with up to 100,000 records export immediately and download directly to your browser. For larger datasets, the export is processed in the background and a download link is emailed to you when ready.
What's included¶
- All fields as columns (in the order they appear in the grid)
- All records matching the current filter (or all records if no filter is applied)
- Field names as column headers
Note
Attachment fields export as links to the stored files, not the files themselves.
Card View
Grid view¶
The grid view is the default way to work with a card. It displays your data as a spreadsheet-style table with fields as columns and records as rows.
Navigating the grid¶
- Scroll horizontally to see more fields when the card has many columns.
- Resize columns by dragging the border between column headers.
- Reorder columns by dragging a column header to a new position.
- Click a cell to edit it (requires Editor role or higher).
- Press Tab to move to the next cell, Enter to confirm and move down.
Adding records¶
- Click + Add record at the bottom of the table.
- Or press
Enterwhen the last row is selected.
Records save automatically as you type — there is no explicit save button.
Selecting and deleting records¶
- Click the checkbox on the left of a row to select it.
- Select multiple rows to bulk-delete: click Delete selected in the action bar that appears.
Row actions¶
Right-click any row (or click the ⋮ icon on hover) to access:
- Edit record — opens a full record detail panel
- Manage access — set per-row access rules (see Access control)
- Delete record
Keyboard shortcuts¶
| Key | Action |
|---|---|
Enter |
Edit selected cell / confirm edit |
Escape |
Cancel edit |
Tab |
Move to next cell |
↑ ↓ |
Move between rows |
Delete |
Clear selected cell |
Calendar view¶
Calendar view displays your records on a calendar based on a date field. It's useful for tracking events, deadlines, schedules, and any dataset where timing matters.
Enable calendar view¶
Calendar view is available on any card that has at least one Date field.
- Open the card.
- Click Calendar in the view switcher (top-left of the card toolbar).
- Choose which date field to use as the calendar axis.
Navigating the calendar¶
- Use the ← → arrows to move between months.
- Click Today to jump back to the current month.
- Click a record on the calendar to open its detail panel.
Adding records from the calendar¶
- Click any day on the calendar to create a new record with that date pre-filled.
- The record opens in a detail panel where you can fill in the remaining fields.
Editing records¶
- Click a record on the calendar to open it.
- Edit any field in the detail panel.
- Drag a record to a different day to change its date.
Event templates
If you created your card from the Events template, the calendar view is pre-configured with the event date field already selected.
Adding & managing fields¶
Fields are the columns of your card. You can add, edit, reorder, and remove fields at any time.
Add a field¶
- Open the card in grid view.
- Click the + button at the right end of the column header row.
- Enter a field name.
- Choose a field type.
- Optionally add a description (shown as a tooltip on the column header; also used by AI to generate metadata).
- Click Save field.
Field types¶
| Type | Description |
|---|---|
| Text | Free-form text |
| Number | Integer or decimal values |
| Date | Date picker |
| Boolean | True / false checkbox |
| Single select | Pick one option from a list |
| Multi-select | Pick multiple options from a list |
| Email address | |
| URL | Web link |
| Attachment | File upload |
| Map point | GPS coordinates with OpenStreetMap picker |
| Formula | Computed value derived from other fields |
Edit a field¶
- Click the field name in the column header.
- Modify the name, description, or options.
- Click Save.
Changing field type
Changing a field's type may cause data loss. For example, changing a Number field to Text is safe, but changing Text to Number will clear any values that aren't valid numbers. Stackify shows a warning before applying the change.
Reorder fields¶
Drag a column header left or right to change the field order. The new order is saved immediately.
Delete a field¶
- Click the field name in the column header.
- Click Delete field.
- Confirm the deletion.
Warning
Deleting a field permanently removes the field and all its data from every record. This cannot be undone.
Formula fields¶
Formula fields compute a value from other fields in the same record. Click the Formula type when adding a field and enter your expression, e.g.:
Formula fields are read-only — their values update automatically when the referenced fields change.
Map point fields¶
Map point fields store a GPS coordinate (latitude and longitude). When editing a record:
- Click the map point cell.
- A map picker opens — click on the map to set the location.
- The coordinates are saved automatically.
Cards with at least one map point field show a Map view button in the toolbar, which renders all coordinates as pins on a full-screen map.
Sort, filter & hide columns¶
Use sort, filter, and column visibility controls to focus on the data that matters.
Sort¶
- Click Sort in the card toolbar.
- Click + Add sort.
- Choose a field and a direction (A → Z or Z → A for text; oldest first / newest first for dates).
- Add multiple sort rules — they are applied in order (first rule takes priority).
- Click Apply.
To remove a sort rule, click the × next to it.
Tip
Clicking a column header once sorts ascending by that field. Click again to sort descending. Click a third time to remove the sort.
Filter¶
- Click Filter in the card toolbar.
- Click + Add filter.
- Choose a field, a condition, and a value.
Available conditions¶
| Field type | Conditions |
|---|---|
| Text | is, is not, contains, does not contain, is empty, is not empty |
| Number | =, ≠, >, ≥, <, ≤, is empty, is not empty |
| Date | is, is before, is after, is within, is empty |
| Boolean | is true, is false |
| Select | is, is not, is any of, is empty |
- Add multiple filters — all conditions must match (AND logic).
- Filters apply instantly; no confirmation needed.
To remove a filter, click × next to it. To clear all filters, click Clear all.
Hide columns¶
- Click Hide (or the columns icon) in the card toolbar.
- A panel lists all fields with visibility toggles.
- Toggle any field off to hide it from the grid view.
Hidden fields are not deleted — they still store data and appear in exports. Only the current view is affected.
Note
Hidden columns are a personal view setting. Hiding a column for yourself does not hide it for other collaborators.
Editing records¶
Records are the rows of your card. You can add, edit, and delete records directly in the grid view.
Edit a cell inline¶
- Click any cell in the grid.
- Type your value. The appropriate input control appears for the field type (date picker for dates, dropdown for select fields, etc.).
- Press
TaborEnterto confirm, orEscapeto cancel.
Changes save automatically — there is no save button.
Note
You need Editor role or higher to edit records. Viewers can read data but not modify it.
Open a record in detail view¶
For a fuller editing experience:
- Click the expand icon (↗) on the left of any row, or right-click → Edit record.
- The record detail panel opens, showing all fields in a vertical form layout.
- Edit any field and close the panel when done.
Add a record¶
- Click + Add record at the bottom of the grid.
- Or press
Enterwhen the last cell is selected.
Delete a record¶
- Right-click the row → Delete record.
- Or select the row checkbox and click Delete selected in the action bar.
Warning
Deleting a record is permanent. There is no undo for individual record deletions.
Bulk edit¶
Select multiple rows by checking their checkboxes, then use the bulk action bar to:
- Delete selected — removes all selected records
Input controls by field type¶
| Field type | Input control |
|---|---|
| Text | Text input |
| Number | Numeric input |
| Date | Calendar date picker |
| Boolean | Checkbox toggle |
| Single select | Dropdown (single choice) |
| Multi-select | Dropdown (multiple choices) |
| Text input (validated as email) | |
| URL | Text input (rendered as a link) |
| Attachment | File upload dialog |
| Map point | OpenStreetMap picker modal |
Activity feed¶
Every card has an activity feed that records what has changed and when. It's the audit trail for your dataset.
View the activity feed¶
- Open the card.
- Click the Activity tab in the right panel (or the activity icon in the toolbar).
- Events are listed newest first.
What's tracked¶
The feed records structural events — not the raw values of your data:
| Event type | Example |
|---|---|
| Record created | "Henrik added a record" |
| Record updated | "Karin edited 3 fields in a record" |
| Record deleted | "Henrik deleted a record" |
| Field added | "Anna added field 'Status'" |
| Field removed | "Karin removed field 'Notes'" |
| Field updated | "Henrik renamed field 'Name' to 'Project name'" |
| Collaborator added | "Lisa was added as Editor" |
| Collaborator removed | "Erik's access was revoked" |
| Card shared | "A share link was created" |
Privacy by design
Record values are never stored in the activity feed. You can see that a record was edited and which fields changed, but not the before/after values. This protects sensitive data from appearing in logs visible to all collaborators.
Pagination¶
The activity feed loads events in pages. Scroll to the bottom to load older events.
Notification settings¶
You can control when you receive notifications for activity on this card. See Notifications for details.
Form builder¶
The form builder lets you create a public-facing form that writes directly into your card. Share the form link with anyone — they can submit data without needing a Stackify account.
Create a form¶
- Open the card.
- Click Form in the view switcher.
- Click Create form.
A form is automatically generated from your card's fields.
Configure the form¶
Choose which fields to include¶
- Toggle fields on or off in the field list on the left.
- Drag fields to reorder them on the form.
Make fields required¶
- Click a field in the form preview.
- Toggle Required on.
Add a title and description¶
- Click the form header area to edit the form title and an optional description shown above the fields.
Customize the submit button¶
- Click the submit button area to change its label (default: "Submit").
Share the form¶
- Click Share form (or Publish).
- A unique form URL is generated, e.g.
https://app.stackify.se/f/abc123. - Copy the link and share it via email, a web page, or any communication channel.
Note
The form URL is public — anyone with the link can submit responses. You do not need to share the underlying card.
View responses¶
Every form submission creates a new record in the card. Responses appear in the grid view in real time.
Disable a form¶
- Go to the Form view.
- Click Unpublish (or toggle the form off).
Once disabled, the form URL returns a "form closed" message. Existing responses are not affected.
Tip
Disabling and re-enabling a form keeps the same URL, so you don't need to redistribute the link.
Sharing a card¶
Share any card you own with colleagues inside your workspace, or generate a link for broader access.
Invite by email¶
- Open the card.
- Click Share in the top-right.
- Enter one or more email addresses.
- Choose a role: Viewer, Editor, or Owner.
- Click Send invite.
The invitee receives an email with a link to the card. If they don't have a Stackify account yet, they are prompted to create one.
Share via link¶
- Open Share → Link sharing.
- Toggle Enable link sharing on.
- Choose who can access via the link:
- Anyone with the link — no sign-in required
- Workspace members only — must be signed in to your workspace
- Copy the link and distribute it.
Public links
Choosing "Anyone with the link" makes your card readable by anyone on the internet who has the URL. Use this only for data you intend to be public.
View and manage collaborators¶
- Open Share.
- The People with access list shows every collaborator and their role.
- To change a role, click the role dropdown next to a person's name.
- To remove access, click the × next to their name.
Transfer ownership¶
Owners can transfer a card to another collaborator:
- Open Share.
- Click the role dropdown next to the person you want to make the new owner.
- Select Owner.
- Confirm the transfer.
Note
A card can only have one Owner. Transferring ownership demotes the previous owner to Editor.
Access control¶
Stackify has a three-layer access model: workspace roles, card-level roles, and row-level grants.
Card-level roles¶
Every collaborator on a card has one of three roles:
| Role | What they can do |
|---|---|
| Owner | Full control: edit data, manage fields, share, delete the card, transfer ownership |
| Editor | Add, edit, and delete records and fields; cannot change permissions or delete the card |
| Viewer | Read-only access to all records and fields |
See Sharing a card to add collaborators and assign roles.
Row-level access¶
Individual records can have explicit per-user access grants that override the card-level role.
Use cases: - Hide sensitive records from specific Viewers - Grant edit access to a specific record for someone who is otherwise a Viewer
Set row-level access¶
- In the grid view, right-click a row → Manage access.
- Click + Add rule.
- Select a user.
- Choose the access level: Hidden (user cannot see this record) or Editor (user can edit this record regardless of card role).
- Click Save.
Note
Card Owners and Admins always bypass row-level restrictions and see all records.
Field-level permissions¶
Permissions can be set at the field level, restricting specific fields to a subset of card collaborators.
- A Viewer on a card can be given Editor access to specific fields
- A field can be hidden from all but selected collaborators
Field-level permissions are configured from the field settings panel (click the field name → Permissions).
Workspace roles¶
Separate from card permissions, every workspace member has a workspace-level role:
| Role | Access |
|---|---|
| Admin | Full access to all workspace settings, admin panel, and all cards |
| Member | Standard user; access to cards is governed by card-level roles |
Workspace roles are managed by admins in the Admin → Users panel.
Catalog
Grid & card layouts¶
The catalog home screen displays all cards you own or have access to. You can switch between two display layouts.
Grid layout¶
The default layout. Cards are displayed as compact rows in a table, showing:
- Card name
- Owner
- Record count
- Last modified date
- Collaborator count
- Tags
Use this layout when you have many cards and want to scan quickly.
Card layout¶
Cards are displayed as tiles — larger, more visual. Each tile shows:
- Card name and description
- Owner avatar
- Collaborator count
- Tags
Use this layout to get a richer overview of each card.
Switch layouts¶
Click the grid or card icon in the top-right of the home screen to toggle between layouts.
Your layout preference is saved per workspace.
Pin and organise cards¶
- Pin a card to keep it at the top of your catalog: hover over a card and click the pin icon.
- Resize card tiles in card layout by dragging the corner (saves automatically).
Search¶
The search bar lets you find cards and records across your entire workspace catalog.
Search for a card¶
- Click the search bar at the top of any page (or press
/). - Start typing. Results appear as you type.
- Results include card names, descriptions, and field names.
- Click a result to open the card.
Search within a card¶
To search within the records of a specific card:
- Open the card.
- Use the search/filter bar within the grid view.
- Type a value — matching records are highlighted.
Full-text search¶
The global search covers:
- Card names
- Card descriptions
- Field names and field descriptions
- Record content (all text, number, and select fields)
Search tips¶
- Search is case-insensitive.
- Partial matches are supported — searching "proj" finds "Project tracker".
- Use filters to narrow results by owner, tag, or date after searching.
Keyboard shortcut
Press / from anywhere in Stackify to focus the search bar instantly.
Sorting & filtering the catalog¶
Use sorting and filtering to find the right card in a large workspace.
Filter the catalog¶
Click the Filter button on the home screen to open the filter panel:
| Filter | Options |
|---|---|
| Owner | Show only cards owned by a specific person |
| Shared with me | Show only cards others have shared with you |
| My cards | Show only cards you own |
| Tags | Show cards with a specific tag |
| Category | Filter by category |
| Date modified | Cards modified within a date range |
Multiple filters can be active at once (AND logic).
Click Clear filters to reset.
Sort the catalog¶
Click the Sort dropdown on the home screen:
| Sort option | Description |
|---|---|
| Last modified | Most recently edited first (default) |
| Name A → Z | Alphabetical |
| Name Z → A | Reverse alphabetical |
| Oldest first | Least recently edited first |
| Record count | Most records first |
Tags¶
Tags are free-form labels you can add to any card.
- To add a tag: open the card → Settings → Tags → type a tag and press Enter.
- Tags appear on the card tile in the catalog.
- Filter the catalog by tag to find related datasets quickly.
Categories¶
Categories are user-defined groupings that appear as sections on the home screen.
- To assign a category: open the card → Settings → Category.
- To manage categories: go to workspace Settings → Categories.
Team & Workspace
Inviting users¶
Workspace admins and owners can invite new members to the workspace by email.
Send an invite¶
- Go to Settings → Members (or open the Admin panel → Users).
- Click Invite member.
- Enter the invitee's email address.
- Choose their workspace role: Member or Admin.
- Click Send invite.
The invitee receives an email with a unique invite link. The link expires after 7 days.
What happens when they accept¶
- The invitee clicks the link in their email.
- If they don't have a Stackify account, they are prompted to create one.
- After signing in or registering, they are automatically added to the workspace.
- They land on the home screen. Any cards pre-shared with them are already visible.
- They receive a welcome email confirming they've joined.
Manage pending invites¶
- Go to Settings → Members.
- The Pending invites section lists invites that have not yet been accepted.
- To cancel an invite before it is accepted, click × next to it.
Note
Cancelling a pending invite invalidates the link. The invitee will get a "link expired" message if they click it afterwards.
Resend an invite¶
If an invite has expired or was not received:
- Go to Settings → Members → Pending invites.
- Click Resend next to the invite. A new link is sent and the expiry resets to 7 days.
Remove a member¶
To remove a user from the workspace:
- Go to Admin → Users.
- Find the user and click Remove from workspace.
- Confirm the removal.
Removing a user revokes their access to all cards in the workspace. Their data (records they created) is retained.
Roles & permissions¶
Stackify uses two levels of roles: workspace roles and card roles. Together they control what each person can see and do.
Workspace roles¶
Every member of a workspace has one of these roles:
| Role | Description |
|---|---|
| Admin | Full access to workspace settings, admin panel, all cards, user management, and billing |
| Member | Standard user. Card access is governed by card-level roles |
Workspace roles are set when inviting a user and can be changed by an admin in the Admin → Users panel.
Note
Being an Admin in one workspace does not grant any access in another workspace you belong to.
Card roles¶
When you share a card with someone, you assign them a card-level role:
| Role | Create records | Edit records | Delete records | Manage fields | Share / manage permissions | Delete card |
|---|---|---|---|---|---|---|
| Owner | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Editor | ✓ | ✓ | ✓ | ✓ | — | — |
| Viewer | — | — | — | — | — | — |
- Every card has exactly one Owner (the creator, or a user ownership was transferred to).
- A workspace Admin can always see and edit all cards in the workspace, regardless of card role.
Row-level access¶
Individual records can override the card-level role for specific users. See Access control for details.
Field-level permissions¶
Specific fields on a card can be restricted to a subset of collaborators. See Adding & managing fields for details.
Changing a card role¶
- Open the card → Share.
- Find the user in the collaborator list.
- Click their role dropdown and choose a new role.
Data steward¶
A card can have a designated Data Steward — a named person responsible for the quality and accuracy of that card. The steward is visible to all collaborators and appears on the card tile in the catalog. Stewardship is set by the card Owner from Settings → Steward.
Notifications¶
Stackify notifies you when things change on cards you care about, both in-app and by email.
In-app notifications¶
The bell icon in the navigation bar shows your unread notification count.
- Click the bell to open the notification panel.
- Each notification shows what changed, on which card, and when.
- Click a notification to go directly to that card.
- Click Mark all as read to clear the count.
Email notifications¶
When there is activity on a card you are subscribed to, Stackify sends you an email summary.
To prevent inbox overload, email notifications are rate-limited to at most one email per card per hour, regardless of how many changes happen.
Notification subscription¶
You are automatically subscribed to a card when you are added as a collaborator.
Change your notification level for a card¶
- Open the card.
- Click the bell icon in the top-right of the card toolbar.
- Choose your notification level:
- All activity — get notified of every change on this card
- None — stop all notifications for this card
You can change this setting per card independently.
Unsubscribe from all notifications¶
To stop all email notifications from Stackify, click Unsubscribe in the footer of any notification email.
Tip
If you share a card with a large team and activity is high, advise collaborators to set notifications to None or Mentions only to avoid notification fatigue.
Integrations
REST API¶
Stackify provides a versioned REST API for programmatic access to cards, fields, and records.
Base URL¶
Authentication¶
All API requests must include an API key in the Authorization header:
See API keys for how to create and manage keys.
Core resources¶
Cards¶
| Method | Path | Description |
|---|---|---|
GET |
/workspaces/{wid}/cards |
List all cards in the workspace |
GET |
/workspaces/{wid}/cards/{cid} |
Get a single card |
POST |
/workspaces/{wid}/cards |
Create a card |
PATCH |
/workspaces/{wid}/cards/{cid} |
Update card name or description |
DELETE |
/workspaces/{wid}/cards/{cid} |
Delete a card |
Fields¶
| Method | Path | Description |
|---|---|---|
GET |
/workspaces/{wid}/cards/{cid}/fields |
List fields (with types and options) |
POST |
/workspaces/{wid}/cards/{cid}/fields |
Add a field |
PATCH |
/workspaces/{wid}/cards/{cid}/fields/{fid} |
Update a field |
DELETE |
/workspaces/{wid}/cards/{cid}/fields/{fid} |
Delete a field |
Records¶
| Method | Path | Description |
|---|---|---|
GET |
/workspaces/{wid}/cards/{cid}/records |
List records (paginated) |
POST |
/workspaces/{wid}/cards/{cid}/records |
Create a record |
PATCH |
/workspaces/{wid}/cards/{cid}/records/{rid} |
Update a record |
DELETE |
/workspaces/{wid}/cards/{cid}/records/{rid} |
Delete a record |
Pagination¶
Records are returned with cursor-based pagination. Pass the next_cursor value from one response as the cursor query parameter in the next request:
Example: list records¶
curl https://app.stackify.se/api/v1/workspaces/YOUR_WORKSPACE_ID/cards/YOUR_CARD_ID/records \
-H "Authorization: Bearer tvk_live_YOUR_KEY"
Response:
{
"records": [
{
"id": "01HZ...",
"data": {
"FIELD_ID_1": "Project Alpha",
"FIELD_ID_2": 42,
"FIELD_ID_3": "2025-06-01"
},
"created_at": "2025-05-30T10:00:00Z"
}
],
"next_cursor": "01HZ..."
}
Example: create a record¶
curl -X POST https://app.stackify.se/api/v1/workspaces/YOUR_WORKSPACE_ID/cards/YOUR_CARD_ID/records \
-H "Authorization: Bearer tvk_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"data": {
"FIELD_ID_1": "New project",
"FIELD_ID_2": 10
}
}'
Field IDs¶
Record data is keyed by field ID, not field name. Use GET /fields to retrieve the mapping of field names to IDs:
curl https://app.stackify.se/api/v1/workspaces/{wid}/cards/{cid}/fields \
-H "Authorization: Bearer tvk_live_..."
Error format¶
Errors follow RFC 7807 (Problem Details):
{
"type": "https://stackify.se/errors/record-not-found",
"title": "Record not found",
"status": 404,
"detail": "Record 01HZ... does not exist in card 01HY..."
}
OpenAPI specification¶
The full OpenAPI 3.0 specification is available at:
Use the spec to generate client libraries or to connect Stackify to platforms like UiPath Connector Builder.
Rate limits¶
Rate limits apply per API key based on your subscription tier. The response includes standard rate-limit headers:
Webhooks¶
Webhooks let external systems receive real-time notifications when data changes in Stackify. When a subscribed event occurs, Stackify sends an HTTP POST request to your endpoint.
Supported events¶
| Event | Triggered when |
|---|---|
record.created |
A new record is added to a card |
record.updated |
A record's fields are changed |
record.deleted |
A record is deleted |
card.created |
A new card is created in the workspace |
card.updated |
A card's name or description is changed |
collaborator.added |
A new collaborator is added to a card |
Create a webhook subscription¶
curl -X POST https://app.stackify.se/api/v1/workspaces/{wid}/webhooks \
-H "Authorization: Bearer tvk_live_..." \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://your-server.example.com/hook",
"events": ["record.created", "record.updated"],
"card_id": "01HZ..."
}'
Omit card_id to subscribe to events from all cards in the workspace.
- Go to Settings → Integrations → Webhooks.
- Click Add webhook.
- Enter your target URL and select the events you want.
- Click Save.
Webhook payload¶
{
"event": "record.created",
"timestamp": "2025-05-30T10:00:00Z",
"workspace_id": "01HX...",
"card_id": "01HY...",
"record_id": "01HZ...",
"data": {
"FIELD_ID_1": "New value",
"FIELD_ID_2": 42
}
}
Verifying webhook signatures¶
Every request includes an X-Stackify-Signature header containing an HMAC-SHA256 signature of the raw request body, signed with your webhook secret.
Verify the signature in your handler:
Your webhook secret is shown once when you create the subscription. Store it securely.
Retries¶
If your endpoint returns a non-2xx response or times out, Stackify retries delivery with exponential backoff. After 4 failed attempts, the subscription owner is notified by email and the subscription is paused.
Delete a webhook subscription¶
API keys¶
API keys let external systems authenticate with Stackify without a user session. Each key is scoped to a workspace.
Create an API key¶
- Go to Settings → Integrations → API keys.
- Click Create API key.
- Enter a name (e.g. "Zapier integration" or "n8n workflow").
- Choose a permission scope:
- Read — can only read cards, fields, and records
- Read & Write — can read and write records; create and update cards and fields
- Click Create.
The full key is displayed once — copy it now and store it securely. Only a hash of the key is stored in Stackify; the full key cannot be retrieved later.
API keys look like this:
Use an API key¶
Include the key in the Authorization header of every API request:
See the REST API reference for endpoint details.
Manage API keys¶
From Settings → Integrations → API keys you can:
- Rename a key to help identify where it's used.
- Revoke a key immediately. Any requests using a revoked key will receive a
401 Unauthorizedresponse.
Treat keys like passwords
API keys grant access to your workspace data. Do not commit them to source control or share them in chat. Use environment variables or a secrets manager instead.
Key scopes¶
| Scope | Allowed operations |
|---|---|
read |
GET on any resource |
write |
GET, POST, PATCH, DELETE on cards, fields, and records |
Keys with only read scope cannot create, update, or delete anything.
OAuth & service accounts¶
For automated systems that need to act without a human user present — such as UiPath robots, CI pipelines, or microservices — Stackify supports OAuth 2.0 Client Credentials authentication via service accounts.
When to use service accounts vs API keys¶
| API keys | Service accounts | |
|---|---|---|
| Best for | Simple scripts, Zapier, n8n | UiPath, enterprise automation, server-to-server |
| Auth flow | Static bearer token | OAuth 2.0 client credentials grant |
| Token rotation | Manual | Automatic (short-lived tokens) |
| Identity | Workspace-scoped anonymous | Named service account with a workspace role |
Create a service account¶
- Go to Settings → Integrations → Service accounts.
- Click Create service account.
- Enter a name (e.g. "UiPath robot" or "ETL pipeline").
- The service account is assigned a Client ID and Client Secret.
- Copy the Client Secret now — it will not be shown again.
Obtain an access token¶
Exchange your Client ID and Client Secret for a short-lived access token:
curl -X POST https://auth.stackify.se/realms/stackify/protocol/openid-connect/token \
-d "grant_type=client_credentials" \
-d "client_id=YOUR_CLIENT_ID" \
-d "client_secret=YOUR_CLIENT_SECRET"
Response:
Use the token¶
Include the access token in the Authorization header, just like an API key:
Tokens expire after 5 minutes. Your application should request a new token before it expires.
UiPath integration¶
Stackify's OpenAPI specification (GET /api/v1/openapi.json) is built for use with UiPath Connector Builder. See UiPath for a step-by-step integration guide.
Revoke a service account¶
- Go to Settings → Integrations → Service accounts.
- Click Revoke next to the account.
Revoking a service account immediately invalidates all its tokens. Any active automation using it will fail until reconfigured.
Zapier¶
Connect Stackify to 7,000+ apps via Zapier — no code required.
What you can automate¶
Using the Stackify Zapier integration you can:
- Trigger a Zap when a new record is created in a card
- Trigger a Zap when a record is updated
- Create a record in a card from any Zapier trigger
- Update a record in a card from any Zapier action
Connect Stackify to Zapier¶
- In Zapier, create a new Zap and search for Stackify.
- Choose a trigger or action.
- Click Connect a new account.
- Enter your Stackify API key (see API keys to create one).
- Select your workspace.
- Click Continue.
Example: New Typeform response → Stackify record¶
Use case: Collect survey responses and store them in a Stackify card for analysis.
- Trigger: Typeform → New submission
- Action: Stackify → Create record
- Select your workspace and the target card
- Map Typeform fields to Stackify fields using the dynamic field picker
Example: New Stackify record → Send Slack message¶
Use case: Alert your team in Slack whenever a new item is added to a card.
- Trigger: Stackify → New record in card
- Select your workspace and card
- Action: Slack → Send message
- Compose your message using data from the new record
Field mapping¶
When configuring a Stackify action in Zapier, the field mapping dropdown is populated automatically from your card's current field structure. You don't need to hard-code column names — if you rename a field in Stackify, update the mapping in Zapier to match.
Troubleshooting¶
- Authentication fails: Make sure your API key has
read & writescope. - Fields not showing up: Click "Refresh fields" in the Zapier field mapping step to pull the latest schema from your card.
- Trigger not firing: Check that your Zap is turned on and that the card ID is correct.
UiPath¶
Stackify integrates with UiPath Automation Cloud via the UiPath Integration Service. Use Stackify as a data source or destination in your RPA workflows.
Authentication¶
UiPath robots authenticate using OAuth 2.0 Client Credentials — no user session required. Set up a service account first:
- Create a service account in Stackify (see OAuth & service accounts).
- Note your Client ID and Client Secret.
Import the Stackify connector¶
- In UiPath Automation Cloud, go to Integration Service → Connectors.
- Search for Stackify or import the connector manually using the OpenAPI specification:
- Configure the connector with your Client ID and Client Secret.
- Click Test connection to verify.
Available activities¶
Once connected, the following activities are available in UiPath Studio:
Triggers¶
| Activity | Description |
|---|---|
| On record created | Fires when a new record is added to a specified card |
| On record updated | Fires when a record's fields are modified |
Actions¶
| Activity | Description |
|---|---|
| Get records | Retrieve records from a card with optional filters |
| Create record | Add a new record to a card |
| Update record | Modify an existing record |
| Delete record | Remove a record |
| Get fields | List the fields and their types for a card |
Webhook validation¶
When UiPath registers a webhook trigger, it sends a validation challenge to confirm endpoint ownership. Stackify automatically responds to the X-Uipath-Validation-Token challenge — no configuration needed on your end.
Example workflow: Export to Stackify¶
Use case: A RPA robot processes invoices and writes results to a Stackify card for review.
- Add a Stackify: Create record activity to your workflow.
- Select the workspace and target card.
- Map the invoice fields to the card's fields using the field picker (populated dynamically from the card schema).
- Run the workflow — records appear in Stackify in real time.
Compatibility¶
Stackify's UiPath connector is compatible with:
- UiPath Automation Cloud
- UiPath Studio 2023.x and later
- UiPath Robot (attended and unattended)
n8n & Make¶
Both n8n and Make (formerly Integromat) can connect to Stackify via its REST API and webhooks. Use the HTTP Request node/module with your API key.
n8n¶
Connect with an API key¶
- In your n8n workflow, add an HTTP Request node.
- Set the URL to the Stackify API endpoint (see REST API).
- Set Authentication to Header Auth.
- Add a header:
Authorization→Bearer tvk_live_YOUR_KEY.
Trigger on new records (webhook)¶
- Add a Webhook node as the workflow trigger.
- Copy the generated webhook URL from n8n.
- In Stackify, go to Settings → Integrations → Webhooks → Add webhook.
- Paste the n8n URL and select the events to subscribe to (e.g.
record.created). - Save the webhook.
Now every new record in Stackify will trigger your n8n workflow.
Example: Stackify → Google Sheets¶
- Trigger: Webhook node (subscribe to
record.createdin Stackify) - Action: Google Sheets node → Append row
- Map the record fields from the webhook payload to Google Sheets columns
Make (formerly Integromat)¶
Connect with an API key¶
- In your Make scenario, add an HTTP module.
- Set the URL to the Stackify API endpoint.
- Under Headers, add:
Authorization: Bearer tvk_live_YOUR_KEY.
Trigger on new records (webhook)¶
- Add a Webhooks module as the scenario trigger → Custom webhook.
- Copy the generated URL.
- In Stackify, register this URL as a webhook subscription (see Webhooks).
Example: New form submission → Make scenario¶
- Trigger: Stackify form submission creates a record → webhook fires to Make
- Action: Send an email, update a CRM record, or create a Trello card
Tips for both platforms¶
- Use
GET /workspaces/{wid}/cards/{cid}/fieldsto discover field IDs and names dynamically — this avoids hard-coding IDs that could change. - Verify webhook signatures in your handler for security (see Webhooks → Verifying signatures).
- Use cursor-based pagination when pulling large record sets: pass
?limit=100&cursor=...and loop untilnext_cursoris null.
MCP
MCP overview¶
Stackify supports the Model Context Protocol (MCP) — an open standard for connecting AI assistants and LLM-powered tools to data sources and services.
With MCP, you can give AI tools like Claude, Cursor, or custom agents direct, authorised access to your Stackify workspace — so they can read and write cards, fields, and records on your behalf.
How it works¶
Stackify acts as an MCP server. An AI tool (the MCP client) connects to Stackify using your authorisation, and can then:
- List cards in your workspace
- Read records from a card
- Create or update records
- Discover the field schema of any card
All access is gated by your workspace permissions — the AI tool can only do what your account is allowed to do.
Use cases¶
- Ask an AI assistant to query your Stackify data in natural language: "Show me all projects due this week"
- Let an AI agent write processed results back to a Stackify card
- Build custom AI workflows that read from and write to structured datasets without writing API glue code
Authorisation model¶
MCP access uses OAuth 2.1 with PKCE. You explicitly authorise each AI tool that requests access. Authorisation can be revoked at any time from Settings → Connected apps.
See Connecting AI tools for setup instructions.
Connecting AI tools via MCP¶
Prerequisites¶
- An active Stackify workspace
- An MCP-compatible AI tool (Claude Desktop, Cursor, or any client supporting MCP)
Connect an AI tool¶
Step 1 — Find your MCP server URL¶
Your workspace's MCP server URL is:
Find your workspace ID in Settings → General.
Step 2 — Authorise the connection¶
When an AI tool connects to your MCP server for the first time:
- The tool redirects you to Stackify to approve access.
- Review the requested permissions (read, write, or both).
- Click Authorise.
The AI tool receives an access token scoped to your workspace.
Step 3 — Configure the AI tool¶
Add Stackify to your claude_desktop_config.json:
- Go to Cursor Settings → MCP.
- Click Add server.
- Enter your MCP server URL.
- Complete the OAuth flow.
What the AI can do¶
Once connected, the AI tool has access to these MCP tools:
| Tool | Description |
|---|---|
list_cards |
List cards in the workspace |
get_card |
Get a card's details and field schema |
list_records |
Read records from a card (with optional filter) |
create_record |
Add a new record to a card |
update_record |
Modify an existing record |
search |
Full-text search across the workspace |
Revoke access¶
- Go to Settings → Connected apps.
- Find the AI tool in the list.
- Click Revoke access.
The tool's access token is immediately invalidated.
Admin
Users panel¶
The Users panel is available to workspace Admins at Admin → Users.
View workspace members¶
The panel lists all members of the workspace with:
- Name and email address
- Workspace role (Member or Admin)
- Join date
Change a member's workspace role¶
- Find the user in the list.
- Click their current role badge.
- Select Member or Admin from the dropdown.
- The change takes effect immediately.
Warning
Promoting a user to Admin gives them full access to all workspace settings, all cards, and the ability to manage other users. Only promote users you trust with full administrative access.
Remove a member¶
- Find the user in the list.
- Click the ⋮ menu → Remove from workspace.
- Confirm the removal.
Removing a user immediately revokes their access to all cards in the workspace. Records they created are retained.
Pending invites¶
The Pending invites section shows invites that have been sent but not yet accepted. From here you can:
- Resend an invite (resets the 7-day expiry)
- Cancel an invite (invalidates the link)
See Inviting users for the full invite flow.
Cards panel¶
The Cards panel gives workspace Admins a full overview of all cards in the workspace. Access it at Admin → Cards.
Overview¶
The panel lists every card in the workspace, regardless of whether the admin is a collaborator on it. Columns include:
| Column | Description |
|---|---|
| Name | Card name (click to open the card) |
| Owner | The user who owns the card |
| Records | Total record count |
| Last modified | Date of the most recent change |
| Collaborators | Number of collaborators |
Actions¶
- Open card — click the card name to view it (admins always have full access).
- Transfer ownership — reassign a card to a different workspace member, for example when someone leaves the team.
- Delete card — permanently remove the card and all its records.
Warning
Deleting a card as an admin is permanent and cannot be undone. All records, fields, and sharing settings are removed.
Filter and search¶
Use the search box at the top of the panel to find a card by name. Use the Owner filter to see all cards owned by a specific person — useful when offboarding a team member.
Access matrix¶
The Access matrix is an admin tool that shows exactly what each user in the workspace can access. Find it at Admin → Access.
What the access matrix shows¶
Select any workspace member to see:
- Every card they have access to
- Their role on each card (Viewer, Editor, Owner)
- Whether their access comes from a direct invite or a share link
Adjust permissions from the matrix¶
From the access matrix you can:
- Change a user's role on any card — click the role and select a new one.
- Revoke access to a specific card — click the × next to the card.
Changes take effect immediately and are recorded in the audit log.
Use cases¶
- Offboarding: Before removing a team member, review the access matrix to identify cards where they are the only Owner, then transfer ownership before removing them.
- Permission audit: Check that sensitive cards are not over-shared or accessible to users who have moved teams.
- Troubleshooting: If a user reports they cannot see a card, check the matrix to confirm whether they have access at all.
Note
All admin permission changes are recorded in the audit log. Admins cannot grant themselves access to cards they don't own in order to read sensitive data without creating an audit trail.
Settings¶
Workspace settings are accessible to Admins at Settings in the navigation bar.
General¶
- Workspace name — rename the workspace.
- Workspace ID — used in API calls and MCP configuration.
- Delete workspace — permanently remove the workspace and all its data. This requires typing the workspace name to confirm.
Members¶
Manage workspace membership: view all members, change roles, invite new users, and cancel pending invites. See Inviting users.
Integrations¶
The Integrations section is the central hub for connecting Stackify to external tools:
| Section | What you manage |
|---|---|
| API keys | Create and revoke API keys for REST API access |
| Webhooks | Register outbound webhook subscriptions |
| Service accounts | Create OAuth service accounts for automated systems |
| Connected apps | View and revoke MCP / OAuth app authorisations |
Templates¶
Workspace admins can manage custom templates for the workspace:
- Create template — define a field structure for re-use across the workspace.
- Import template — upload a JSON template definition.
- Enable / disable system templates — control which built-in templates are visible to workspace members when creating a card.
See From a template for how templates work.
Categories¶
Define and rename categories used to organise cards in the catalog. Categories appear as sections on the home screen when set on a card.
Billing¶
View your current plan, usage, and billing details. Upgrade or downgrade your subscription.