Documentation
Everything you need to know about ProjectPulse — from quick setup to advanced AI features.
Quick Start
Get ProjectPulse running in your workspace in three steps.
Install
Click Add to Slack on the landing page. Approve the permissions and ProjectPulse joins your workspace instantly.
Connect
Open the App Home tab in Slack. Choose API Key for a quick start or OAuth for per-user attribution.
Create
Type /create-ticket in any channel or use /summarize-ticket to let AI draft a ticket from your conversation.
Setup & Configuration
API Key Setup Quick
Best for small teams who want to get started fast. All tickets are created under a shared service account.
OAuth Setup Recommended
Per-user attribution — each team member creates tickets under their own OpenProject account.
Admin Setup
Each Team Member
Channel-Project Linking
Link a Slack channel to an OpenProject project. After linking, commands in that channel automatically use the linked project as the default.
@ProjectPulse link project BackendSlash Commands
ProjectPulse provides six slash commands. Use them in any channel where the bot is present.
/create-ticket
Opens an interactive modal to create a work package in OpenProject.
You can also create a new project directly from the modal.
/summarize-ticket
AI reads your conversation and drafts a structured ticket with subject, description, and suggested assignee.
Arguments
| Usage | What it does |
|---|---|
| /summarize-ticket | Reads the last 30 messages in the channel |
| /summarize-ticket 50 | Reads the last 50 messages (max 200) |
| /summarize-ticket 2h | Reads messages from the last 2 hours |
| /summarize-ticket <thread-link> | Reads a specific thread |
/my-tasks
Shows your assigned open work packages from OpenProject. Each task displays status, type, project, and due date.
Every task has an overflow menu with quick actions: Open in OpenProject, Log Time, and Update Status.
/log-time
Log time spent on a work package. Opens a modal with your assigned tasks, hours, date, and comment fields.
Examples
/log-time #123 2h Bug investigation
/log-time #456 1h30m Code review
/log-time #789 45mSupported time formats: 2h, 1h30m, 45m, 1.5h
/update-status
Change the status of a work package. Shows only valid status transitions based on your OpenProject workflows.
/update-status #123/comment-ticket
Add a comment directly to a work package without opening a modal.
/comment-ticket #456 Bug is fixed, ready for testingMessage Shortcut
Right-click (or long-press on mobile) any message in Slack, then select Summarize to Ticket from the shortcuts menu.
@Mention System
Mention @ProjectPulse in any channel and write what you want in natural language. The bot understands both German and English.
Create a Ticket
@ProjectPulse create a ticket from this discussion
@ProjectPulse erstelle ein Ticket "Fix login bug"
@ProjectPulse fasse zusammenMy Tasks
@ProjectPulse my tasks
@ProjectPulse meine AufgabenUpdate Status
@ProjectPulse update #123 to done
@ProjectPulse setze #123 auf in BearbeitungLog Time
@ProjectPulse log 2h on #123
@ProjectPulse buche 1h30m auf #456 Code ReviewAdd Comment
@ProjectPulse comment #123 Looks good, ready for review
@ProjectPulse kommentiere #456 Bug gefixtQuery Work Packages
@ProjectPulse open bugs
@ProjectPulse offene Features im Projekt Backend
@ProjectPulse erledigte TasksFilter by type (Bug, Feature, Task, User Story, Epic, Milestone) and status.
Sprint Tickets
@ProjectPulse sprint tickets
@ProjectPulse was ist im Sprint noch offen?Link Channel to Project
@ProjectPulse link project Backend
@ProjectPulse verbinde mit Projekt FrontendAfter linking, commands in this channel default to the linked project.
Help
@ProjectPulse help
@ProjectPulse was kannst du?Link Unfurling
When someone posts an OpenProject work package URL in Slack, ProjectPulse automatically shows a rich preview card.
The preview includes interactive buttons — update the status, add a comment, or log time directly from the card.
App Home
Open the ProjectPulse App Home tab in Slack for a personal dashboard.
Connection Status
See your OpenProject connection at a glance and manage your account.
Quick Actions
One-click buttons for Create Ticket, Log Time, and My Tasks.
Your Tasks
Your 5 most recent assigned work packages with status and due dates.
Account
Connect or disconnect your personal OpenProject account (OAuth).
AI & Summarization
ProjectPulse uses AI to transform messy Slack discussions into structured work packages.
Structured Output
The AI generates a subject, detailed description with key decisions and action items, and a suggested assignee.
Language Detection
The ticket is written in the same language as the discussion. German conversation = German ticket.
Mention Resolution
Slack @mentions are automatically resolved to real OpenProject usernames in the ticket.
Intent Detection
The @mention system uses AI to understand what you want — no rigid command syntax needed.
Before & After
A messy Slack discussion turns into a structured, actionable work package — automatically.
Summary: Safari 17.2 users see a white screen after clicking "Sign in". The OAuth redirect fails silently due to a SecurityError on localStorage.setItem — Safari blocks localStorage in cross-origin iframes.
Key Decisions:
- Switch from localStorage to cookie-based session fallback
- Priority: High — blocks the current release
Action Items:
- Implement cookie-based fallback for Safari
- Test on Safari 17.2, 16.x, and iOS Safari
How it works
When you use /summarize-ticket or the message shortcut, ProjectPulse fetches the conversation, resolves all @mentions to real names, and sends the messages to an AI model. The AI returns a structured output with a subject (max 100 characters), a description including a summary, key decisions, and action items, and an optional assignee extracted from the discussion context.
For @mentions, the AI uses a three-layer routing system: first checking for structural patterns (like #123 2h for time logging), then using LLM-powered intent detection for natural language, and finally falling back to keyword matching if the LLM is unavailable.
Security
ProjectPulse takes security seriously. All sensitive data is encrypted and the bot follows the principle of least privilege.
All API keys, OAuth tokens, and secrets are encrypted at rest with authenticated encryption.
Authorization Code flow with Proof Key for Code Exchange for maximum security.
Every request from Slack is verified using signing secrets to prevent tampering.
Each Slack workspace is fully isolated — no cross-workspace data access.
Message content is only accessed during explicit summarization. No background reading or logging of conversations.
FAQ & Troubleshooting
The bot can't read messages in a channel
Make sure ProjectPulse is added to the channel. You can invite it by typing /invite @ProjectPulse in the channel.
Slash commands don't work in DMs
This is a Slack limitation — slash commands are only available in channels and group DMs where the bot is present. Use @mentions in channels instead.
Can't assign a user to a ticket
The user might not be a member of the target project in OpenProject. ProjectPulse tries to add them automatically, but if it lacks permissions (403), you'll see a message suggesting to ask an admin.
My OAuth token expired
Tokens refresh automatically in the background. If auto-refresh fails, go to the App Home tab and click Connect with OpenProject to re-authorize.
Can I connect multiple OpenProject instances?
Each Slack workspace connects to one OpenProject instance. If you need multiple instances, use separate Slack workspaces.
How does channel-project linking work?
Use @ProjectPulse link project <name> to link a channel to a project. After linking, commands in that channel automatically default to the linked project — no need to select it each time.