# Alchemist: Your Project's Agent in Slack
Connect Slack to your Alchemist project. Mention your project's agent in a thread. Propose, approve, and track tickets without leaving the channel.
---
Every Alchemist project has its own agent. The agent is a Chipp chat assistant. It knows your project's tickets, and it can create new ones from a conversation. Connect the agent to Slack, and your team can raise work, approve it, and watch it run, all in a channel they already use.
> **Note:** This guide covers the **Alchemist project agent** in Slack. To deploy one of your own Chipp chatbots (a customer support bot, for example) to Slack, see [Slack Integration](/docs/integrations/slack) instead.
## 1. Connect your project to Slack
1. Open your project at build.chipp.ai. Go to **Connections** in the sidebar.
2. If your project has no agent yet, click **Create project agent**. This step runs once. The agent is a real Chipp app, restricted to your org's members. It lives in your org's **Alchemist Agents** workspace, never public.
3. Find the **Slack** card in the channel grid. Click **Connect Slack**.
**1.**
Create a Slack app from Chipp's manifest
The dialog shows a JSON manifest. It comes pre-configured with your agent's name, bot permissions, and event subscriptions. Copy it. Go to [api.slack.com/apps](https://api.slack.com/apps). Click **Create New App**. Choose **From manifest**. Pick your workspace. Paste the manifest in as **JSON**.
**2.**
Copy your app's credentials
Open **Basic Information** in your new Slack app. Copy the **Client ID**, **Client Secret**, and **Signing Secret**.
**3.**
Enter them in Chipp and install
Paste the three values into the dialog, then save. Click **Install to Slack** and authorize the app. Only a Slack workspace admin can complete this step.
**4.**
Invite the agent to a channel
Run `/invite @YourProjectAgent` in any channel where your team should raise tickets. Invite it to as many channels as you need.
## 2. Mention the agent to start something
@mention the agent with what you want. Write to it the way you would write to a teammate.
```
@storefront-agent the cart total doesn't update after a coupon is removed
```
The agent reads the thread for context and replies there, so the channel stays clean. It may ask a clarifying question first; answer in the same thread. Once it has enough to act, it proposes the work as a ticket instead of acting on its own.
Not every mention has to be a ticket. Ask it to add an environment variable and it hands you back a secure link instead, see [Adding Environment Variables and Secrets](/docs/guides/alchemist-environment-variables).
## 3. Approve or reject the proposal
Before any work starts, the agent posts a card describing the ticket it wants to open, with two buttons: **Approve** and **Reject**. Nothing runs until someone clicks Approve.
```
Agent: [card] Fix: cart total after coupon removal [Approve] [Reject]
```
Click **Approve**. The card updates to show it is processing, then updates again once the ticket is dispatched. Click **Reject**, and nothing is created.
## 4. Watch it work
A ticket from Slack runs the same way as one from the dashboard or an MCP client. It plans a workflow graph, works in an isolated sandbox against your project's repository, and lands through the same pipeline. See [Alchemist Tickets](/docs/guides/alchemist-tickets) for how that graph runs.
In Slack, one message updates in place as the agent works. The channel does not fill up with a message per step.
## 5. Where the result shows up
The finished result posts back to the same thread. The ticket also appears in your project's normal **Tickets** list, and in **Work Review** under its originating thread, next to anything dispatched from the dashboard or over MCP. A ticket from Slack is not a second kind of ticket.
If the agent needs your input mid-run, for example an unclear business rule or a missing credential, it can ask in the same thread. See [Answering Agent Questions](/docs/guides/alchemist-awaiting-input) for what that looks like.
> **Warning:** Slack must hear back from Chipp within a few seconds of a button click. **Approve** and **Reject** acknowledge right away, and the ticket dispatches after. Expect the card to update twice: once to a processing state, then to its final state.
## FAQ
**Do I need a separate Slack app for each project?** Yes. Each project's agent connects through its own Slack app, created from Chipp's manifest, the same way any Chipp app connects to Slack.
**Who can approve a proposed ticket?** Anyone in a channel where the agent is present can mention it and propose work. Approving the card is what creates the ticket.
**Does a ticket from Slack cost anything different?** No. It runs under your project's normal ticket budget, like any other ticket. See [Alchemist Budgets and Costs](/docs/guides/alchemist-budgets-and-costs).
**Can I also get notified by email?** Yes. Approvals and cross-project proposals can notify by email as well as Slack. See [Cross-Project Proposals](/docs/guides/alchemist-cross-project-proposals) for setup.
**Can I dispatch a ticket from Slack without the approval step?** No. The agent always shows the card before it creates a ticket. This stops a stray mention from turning into billed work.
## Next steps
For how the workflow graph runs, see [Alchemist Tickets](/docs/guides/alchemist-tickets). To script ticket creation instead of chatting with the agent, see the [Alchemist Cloud Tickets MCP](/docs/guides/alchemist-mcp-server) guide.