Integrations: GitLab, Slack and Claude Code
Integrations connect KAMI Tasks with your development tools so tickets stay in sync automatically — code activity lands on tickets, ticket activity lands in Slack, and an AI assistant can work your backlog from the terminal.
Where: Settings › Integrations You need: project admin rights, plus admin access in the tool being connected
What each one gives you
| Integration | What it does | Who sets it up |
|---|---|---|
| GitLab | Branches, MRs and pipeline status appear on the ticket | A GitLab project admin |
| Slack | Ticket activity posts into channels | A Slack workspace admin |
| Claude Code | An AI assistant reads and writes tickets from the terminal | Each developer, individually |
GitHub appears on this page marked coming soon.
GitLab — link merge requests to tickets
Connect GitLab and every ticket grows a Merge Requests panel: the branches and MRs for that ticket, with live pipeline status. Reviewers stop asking "where's the code for this?" — it is on the ticket.
Setup: in GitLab, open your project's Settings → Webhooks, add the webhook URL shown on the integrations page, paste the secret token into GitLab's Secret token field, and enable merge request events and pipeline events.
⚠️ The one convention that makes it work: branch names must start with the ticket key —KDV-123-anything-after. That prefix is how an MR finds its ticket. A branch namedfix-emailslinks to nothing, silently — no error, just an empty panel. Make it a team habit, not a suggestion.
Slack — ticket activity where the team talks
Connect a Slack app's Bot User OAuth Token (from the app's OAuth & Permissions page, after installing it to the workspace), set a default channel, and save. Then:
- Project channels — route each project's activity to its own channel; the default catches projects without one
- Triggers — choose what gets posted and when
- Send test message — confirm the wiring before trusting it
Be sparing with triggers. A channel that posts every ticket change is muted within a week, and then it is worse than not having it.
AI assistants — Claude Code
This connects Claude Code, Anthropic's AI coding assistant, to your KAMI Tasks account so it can read and write tickets from the terminal. The setup page walks through it: install Claude Code, run the install command, generate your personal API token, and add the config file to your project.
What you get once connected:
- Create tickets from a brief — describe a feature and it becomes a properly-formed ticket
- Handover specs posted automatically — dev handover docs and HTML designs posted as ticket comments
- MR links posted back — when an MR is opened, the branch and link land on the ticket
The API token is personal. Claude acts as you, and its ticket activity is attributed to you — so treat the token like your password, and do not share one between people.
What Happens Next
- GitLab: MRs and pipelines appear on tickets within moments of the webhook firing. Existing branches are not backfilled — linking starts from setup.
- Slack: posts begin on the next matching event. Nothing historical is posted.
- Claude Code: tickets it creates or comments on appear immediately, under your name.
Tips
- Test the webhook before announcing it. GitLab shows recent deliveries and their responses; a misconfigured secret token fails quietly.
- Agree the branch convention in writing the same day you connect GitLab. Retrofitting it means a period where some tickets link and others do not, and nobody trusts the panel.
- One Slack channel per project, not one for everything. A single firehose channel gets muted; per-project channels stay readable.
- Review who holds Claude Code tokens when someone leaves — the token acts as them.
Troubleshooting / FAQ
Q: No merge requests are appearing on any ticket. Check the webhook in GitLab: is it delivering, and are merge request and pipeline events enabled? Then check the secret token matches.
Q: MRs appear for some tickets but not others. Branch naming. Only branches starting with the ticket key link.
Q: Slack posts stopped. The bot token may have been revoked, or the app removed from the workspace. Use Send test message to confirm.