Connect SlackContents

How to connect Slack to Layerdock

Once Slack is connected, every new pin left on your site arrives in a channel your team already watches, with the comment, the element it was left on, the page, and the screenshot. Setup takes about five minutes and needs no API keys, no developer, and nothing installed. Slack is the only Layerdock integration with no approval step, which is why it is usually the first one people turn on.

Before you start

You need a Slack workspace you are allowed to install an app into. On many workspaces this is restricted to admins; if the Add New Webhook to Workspace button in step 5 asks for approval, someone with admin rights has to finish that part. You also need edit access to the Layerdock dock you want to connect, on a plan that includes integrations (Trial, Pro or Agency).

Part 1: create the Slack app

1. Open the app directory

Go to api.slack.com/apps and click Create New App, then From scratch. If Layerdock's Get a webhook from Slack button brought you here, the form is already filled in and you can skip to step 3.

2. Name it and pick a workspace

Layerdock is a fine name. Choose the workspace the feedback channel lives in. Click Create App.

3. Ignore everything on the screen you land on

Slack drops you on Basic Information, which is dominated by a panel called App Credentials: App ID, Client ID, Client Secret, Signing Secret, Verification Token. Layerdock uses none of them.Those exist for apps that call Slack's API as themselves; Layerdock posts to a webhook URL instead. Do not copy any of them anywhere, and never paste them into a support ticket or a chat.

This is the step almost everyone gets wrong. What you actually need is in the left sidebar.

Part 2: create the webhook

4. Turn on Incoming Webhooks

In the left sidebar under Features, click Incoming Webhooks. Toggle Activate Incoming Webhooks to On. The page will expand to show a Webhook URLs table, empty for now.

5. Add the webhook to a channel

Scroll to the bottom and click Add New Webhook to Workspace. Slack asks which channel the app may post to. Pick the one your team watches for feedback, then click Allow.

A webhook is bound to that one channel permanently. There is no way to change it later, so if you pick the wrong one, delete the webhook and add a new one. To post to a second channel, add a second webhook.

6. Copy the URL

You are returned to the Incoming Webhooks page with a row in the table. Click Copy. The URL looks like https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX.

Treat this URL as a password. Anyone holding it can post messages into that channel as your app. Do not commit it, do not put it in a ticket, and do not paste it into a chat thread.

Part 3: paste it into Layerdock

7. Open the Slack page

In Layerdock, go to Integrations in the sidebar and click Slack. You can also do this from inside a dock, under SettingsIntegrationsConnect next to Slack, which skips the dock picker.

8. Pick the dock and paste

Choose which dock this channel is for, paste the webhook URL, and optionally give it a channel name. The channel name is a label for the Layerdock UI only, so you can tell docks apart at a glance; Slack decides where messages actually land, based on the channel you picked in step 5. Click Connect.

Connecting is per dock, not per account. An agency running a dock per client points each one at a different channel by repeating steps 5 to 8 with a new webhook.

9. Send a test

The dock now appears under Connected. Click Test. A message should land in the channel within a few seconds. If it does, you are finished; leave a real pin on your site to see the full format.

What a message looks like

Each message carries an emoji for the issue type, the dock name, the reviewer's comment, the element and page it came from, the viewport, who reported it, a View pin button that opens that exact pin, and the screenshot inline when one was captured.

Issue types map to bug, feature, design, content, performance, accessibility, question, and for anything else.

By default Layerdock sends new pins, status changes, resolutions and replies. Replies are on for Slack but off for issue trackers, where a ticket accumulating every chat message gets muted.

Known behaviour

Replies are separate messages, not threads

Slack's incoming webhooks do not return a message id, so there is nothing to thread onto. A chatty pin produces several messages in the channel. Threading requires the fuller OAuth app install with chat.postMessage, which is on the roadmap; Layerdock already records a link id for every pin, so that upgrade will not require reconnecting.

Slack accepts roughly one message per second per webhook

Layerdock sends them one at a time for that reason. A busy review session arrives over several seconds rather than all at once. Sustained rate-limit responses can get a Slack app disabled permanently, so this pacing is not optional.

Long comments are truncated

Slack caps a message section at 3,000 characters. Layerdock trims the comment to 300 and links to the full pin, so the message stays scannable in a channel.

Screenshots are linked, not uploaded

The image renders from its Layerdock URL. Anyone who can see the channel can see the screenshot, and anyone with the image URL can open it without a Layerdock account.

Troubleshooting

The test says it sent, but nothing arrived

Check the channel you chose in step 5, not the one you expected. A webhook posts only to the channel it was created for, regardless of the channel name you typed into Layerdock.

“Reconnect needed” on the integration

Slack returned a permanent rejection, which means the app was deleted or the webhook was revoked in Slack. Create a new webhook (steps 4 to 6) and paste it in again. Layerdock also notifies the dock owner when this happens.

“That is not a Slack webhook”

The URL must begin https://hooks.slack.com/. If yours does not, you probably copied a Client ID, a Signing Secret, or the address bar rather than the webhook. Go back to Incoming Webhooks and use the Copy button on the row.

Messages stopped arriving with no error shown

Check that the app has not been removed from the workspace, and that the channel still exists and has not been archived. Both look like silence rather than a failure.

Slack asks for admin approval

Your workspace restricts app installation. Send this page to an admin: everything up to step 6 is theirs to do, and they only need to hand you the URL from step 6.

What Layerdock stores

Only the webhook URL and the optional display name. The URL is encrypted at rest with AES-256-GCM and is never shown again after you save it, never logged, and never sent to the browser. Layerdock does not ask for, receive, or store your client secret, signing secret or verification token, and it cannot read anything in your Slack workspace: an incoming webhook is write-only, to one channel.

Turning it off

In Layerdock, click Disconnect next to the dock. That deletes the stored URL immediately. To revoke from the Slack side as well, delete the webhook on the Incoming Webhooks page, or delete the whole app from Basic InformationDelete App. Doing both is the thorough option; either alone stops the messages.

Want feedback in an issue tracker instead of a chat channel? Linear, GitHub, Jira, Trello and ClickUp turn each pin into a ticket, and they connect from the same Integrations panel. See all documentation or connect your coding agent to close pins from your editor.