Notifications
Nibwright posts to a Slack channel through an incoming webhook you create in your own workspace. It takes about four minutes and needs no access to your Slack account.
One incoming webhook URL for the Slack channel you want notifications in. A webhook URL points at exactly one channel, so if you want job matches in #upwork and nothing anywhere else, create the webhook for that channel.
You need permission to install an app in your workspace. In most workspaces any member can, but some require an admin to approve it. If yours does, the request is sent automatically when you try.
This is your app, not ours
1. Create a Slack app
Go to api.slack.com/apps and press Create New App, then From scratch.
Name it something you will recognise later, for example Nibwright, and pick the workspace it should post into.
2. Turn on Incoming Webhooks
In the app's settings sidebar, open Incoming Webhooks and switch Activate Incoming Webhooks on.
3. Add a webhook to your workspace
Press Add New Webhook to Workspace at the bottom of that page, choose the channel you want notifications in, and press Allow.
Slack returns a URL starting with https://hooks.slack.com/services/. Copy it.
4. Paste it into Nibwright
Go to Dashboard, Integrations, paste the URL into the Slack row, and press Save. Saving also switches the channel on.
5. Send a test
Press Send a test. A test digest should appear in the channel you chose within a few seconds, and the row changes to Delivered with a timestamp.
Treat the webhook URL like a password. Anyone who has it can post into that channel. Nibwright stores it so it can send to it, and the field shows it back to you so you can check what is saved.
Slack messages use Block Kit, so each posting gets a heading that links straight to the draft, a row of fields, and a quote of the drafted opening. Up to 6 postings get a block, the rest become a count, and one button at the bottom opens the full list.
| Block | Carries |
|---|---|
| Header | The digest summary, e.g. 15 proposal drafts ready to review. |
| Posting heading | The job title, linked to the draft or match. |
| Fields | Search name, match score, budget, client country, suggested bid. |
| Quote | The drafted opening line, or the job description if nothing is drafted yet. |
| Button | Review the drafts, opening your dashboard. |
Slack shows the plain-text version in push notifications and on clients that do not render Block Kit, so nothing is lost on a phone lock screen.
| What you see | What it means | Fix |
|---|---|---|
Slack webhook 404: no_service | The webhook no longer exists. It was deleted, or the app was removed from the workspace. | Create a new webhook and paste the new URL in. |
Slack webhook 403: invalid_token | The URL is wrong or was revoked. | Copy it again from the Incoming Webhooks page, taking the whole URL. |
Slack webhook 404: channel_not_found | The channel the webhook pointed at was archived or deleted. | Create a webhook for a channel that still exists. |
Slack webhook 400: invalid_blocks | Slack rejected the message layout. This is a bug on our side, not a setup problem. | Let us know. Your other channels are unaffected. |
| Delivered, but the channel is empty | The webhook points at a different channel than the one you are looking at. | Check the webhook row on api.slack.com/apps, which names the channel each URL posts to. |