# Developer Self Service via Slackbot

This walkthrough shows how developers can provision cloud infrastructure entirely from Slack — using the Duplo Slackbot to kick off a task, track progress, and close out a Jira ticket without switching tools.

***

## The Scenario

A developer needs to create a new S3 bucket for their order service analytics feature. Instead of filing a ticket and waiting, they handle it directly from Slack.

***

## Step 1 — Mention the Slackbot

The developer mentions the Duplo Slackbot in their Slack channel and refers it to the relevant Jira ticket.

![Mention bot and reference Jira ticket](/files/B5Q0sf4k0TAXV0bqN7I9)

***

## Step 2 — Set Workspace and Scopes

The developer enters a few details — workspace and scopes — directly in Slack to give DuploCloud the access it needs and set the task in motion.

![Enter workspace and scopes in Slack](/files/rfyEvtZAFQjT574cpCTG)

***

## Step 3 — DuploCloud Creates a Ticket and Gets to Work

DuploCloud automatically creates a ticket and begins working on the task autonomously.

![DuploCloud ticket created](/files/C262JZhCPw302p6E4fUb)

Progress is streamed back to Slack in real time. You can also click **Open in AI DevOps** from the Slack message to jump directly into DuploCloud and see every action the agent is taking.

![Agent working, updates in Slack](/files/D9BvTaJowOeBrGQn5Lqo)

![Agent actions visible in DuploCloud in real time](/files/PxS2slfwjPSGX6nAOZBa)

***

## Step 4 — Agent Reads the Jira Ticket

The agent reads the Jira ticket for context — the S3 bucket requirements, size, environment, and retention policy are all specified there. When permissions are needed, it asks before proceeding.

![Jira ticket with S3 specifications](/files/Q0UoyjVSaqQIm6wgAtmf)

***

## Step 5 — Terraform Files Generated

Once the agent has everything it needs, it proceeds to execution — generating all the Terraform files for the S3 bucket.

![Terraform files created](/files/Va2c2L6LLQSufID6FpTD)

***

## Step 6 — Pull Request Opened on GitHub

The agent opens a pull request on GitHub with the generated Terraform. The Slackbot notifies the developer and waits for the PR to be approved.

![GitHub PR created](/files/3aH75ztoGXztUWBFuUS7)

![Slackbot waiting for PR approval](/files/LHMo32kosgfgPi3uHXKv)

***

## Step 7 — Merge the PR

The developer reviews and merges the pull request directly in GitHub.

![Merging the pull request](/files/bRxN3HuxkMm8NkC0Bqll)

Back in Slack, the bot confirms the PR has been merged and proceeds to apply the Terraform.

![PR merged — applying Terraform](/files/N7JtMm9tDgSQRc14llhG)

***

## Step 8 — Task Complete, Visible in HelpDesk

The entire task is completed autonomously. The same work is also visible in DuploCloud's HelpDesk, giving the team full audit trail and visibility.

![Task completed and visible in HelpDesk](/files/mx808lGmwU59rPBeiZ4Q)

***

## Step 9 — Jira Ticket Closed Automatically

The developer asks the bot to update Jira. The ticket is marked as done with a comment that includes a full summary of everything the bot did — including the GitHub PR link.

![Jira ticket marked done with PR comment](/files/GrImSh1DYiJ3jHFjYs6v)

***

## Back to Writing Code

With the infrastructure provisioned, the PR merged, and Jira updated — all from Slack — the developer can go straight back to writing code.

![Developer back to writing code](/files/1HJizAouhoDgYYlRryMP)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duplocloud.com/docs/common-use-cases/developer-self-service-via-slackbot.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
