Connect Slack to Fondoo

Live5 min readUpdated

Connecting Slack lets Fondoo post text updates into one Slack channel you choose. Use it for announcements, release notes or a community channel. Your AI agent drafts the messages, and nothing is posted until it is approved and scheduled.

What Fondoo can do with it

Fondoo treats Slack as a social channel. Posts go out through Upload-Post, the posting partner Fondoo uses for social networks. With Slack connected, your agent can:

  • Draft messages for the channel, either written for you (draft_social_posts) or from text you supply (save_social_draft).
  • Schedule approved messages within your posting rules (schedule_social_posts), and show them on your social calendar (get_social_calendar).
  • Cancel a scheduled message before it goes out (cancel_post).

What Slack messages can contain:

  • Text only, up to 40,000 characters. No images or video. Slack itself suggests staying under 4,000 characters for readability (Slack docs).
  • Links are allowed.
  • Fondoo cannot delete a message after it is posted, and it does not collect stats for Slack.

Needs your approval: by default, every Slack message waits in your approval queue before it is scheduled. Saving credentials (configure_upload_post_platform) and changing posting rules (update_distribution_rules) are owner-only steps. Your agent cannot do them for you.

Fondoo only posts into Slack. It does not read your channels or receive messages from Slack.

Before you start

  • A Slack workspace where you are allowed to create and install apps. If your workspace only allows pre-approved apps, ask a workspace owner first (Slack help).
  • The channel you want Fondoo to post in. For a private channel, you must be a member of it.
  • Slack's webhook guide lists no paid-plan requirement for incoming webhooks. This may differ for your account.
  • You are the owner of your Fondoo workspace, with an owner API key for one REST call (see below).

Dashboard note: the Available list on Fondoo's Connections page does not show Slack today. Set it up through your agent and one REST call, as described below. Once connected, Slack appears in the Connected card.

Step by step: get your credentials

Fondoo needs one value: a Slack Incoming Webhook URL. It looks like https://hooks.slack.com/services/T000.../B000.../XXXX.... Each URL posts to exactly one channel.

This webhook is a credential that lets Fondoo send messages into Slack. It is not a webhook that sends events from Slack to Fondoo.

  1. Go to api.slack.com/apps and sign in.
  2. Click Create New App, then choose From scratch. Slack's newer docs call this option Blank app.
  3. Enter an app name such as "Fondoo updates". Pick your workspace and click Create.
  4. In the app settings menu, open Incoming Webhooks. Switch Activate Incoming Webhooks on.
  5. Click Add New Webhook to Workspace.
  6. Choose the channel Fondoo should post to and click Authorize.
  7. Back on the Incoming Webhooks page, find the new URL under Webhook URLs for Your Workspace and copy it.

Keep this URL private. Anyone who has it can post into your channel. Slack scans for leaked webhook URLs and turns them off (Slack docs).

The URL goes into Fondoo's webhook_url field.

Connect it in Fondoo

To get the setup steps as a link, your agent can call connect_service({provider:"slack", siteId}) (REST: POST /v1/ops/connect_service). It returns a signed link, valid for 15 minutes, plus a QR code and these setup steps. That link only shows instructions. The webhook URL is saved with configure_upload_post_platform, below.

(a) Ask your agent, then save the URL yourself

Example prompt:

Set up Slack posting for my site. Create the Upload-Post connection for Slack and give me the connectionId. I'll add the webhook URL myself.

  1. The agent calls connect_social with { "siteId": "<site>", "provider": "upload_post", "network": "slack", "redirectUrl": "https://..." }. It returns a connectionId and a link. If you already linked other networks through Upload-Post for this site, you can reuse that connectionId.
  2. You save the webhook URL with configure_upload_post_platform. This is an owner-only call and there is no secure paste form for it. Run it yourself with REST, so the URL never appears in agent chat:
curl -X POST https://api.getfondoo.com/v1/ops/configure_upload_post_platform \
  -H "Authorization: Bearer $FONDOO_OWNER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"siteId":"YOUR_SITE_ID","connectionId":"YOUR_CONNECTION_ID","network":"slack","credential":{"webhook_url":"https://hooks.slack.com/services/..."}}'

A successful reply includes "connected": true and "nextOperation": "refresh_social_accounts". Fondoo rejects owner API keys if your workspace requires owner two-factor authentication. In that case, an agent signed in as you (the owner) through OAuth can make the call, but the URL then stays in that chat's history. Treat that chat as private.

  1. The agent calls refresh_social_accounts with { "siteId": "<site>", "connectionId": "<id>" }. Slack should now appear in the list.
  2. Add Slack to your posting rules with update_distribution_rules, for example { "network": "slack", "formats": ["text"] }. Only a signed-in human owner can do this. The call replaces all your rules, so run get_distribution_rules first and keep your other networks. If you leave out the other settings, Fondoo allows one post per day between 09:00 and 17:00 UTC, and each post needs approval.

(b) In the dashboard

After setup, open Connections. Slack shows in the Connected card with the account name Upload-Post reports. Its Reconnect button only gives you a fresh setup link and these steps. It does not replace the webhook URL.

Test that it works

  1. Ask your agent to run list_social_accounts for your site. You should see an account with network slack.
  2. Ask the agent to save a short test message with save_social_draft. Then schedule it with schedule_social_posts.
  3. Approve it in your approval queue. At the scheduled time, the message should appear in your channel.

Troubleshooting

  • "Invalid platform credentials." The credential object must contain only webhook_url (and optionally name), as a non-empty string. Check that you did not paste extra fields or spaces.
  • "Use an Upload-Post connection." The connectionId belongs to another provider. Create one with connect_social and "provider": "upload_post".
  • "Owner scope required" or "Human owner must grant automatic publishing authority." Saving credentials and changing posting rules are owner-only. Run them yourself, not through the agent.
  • "Enabled network not found" when scheduling. Slack is not in your posting rules yet. Add it with update_distribution_rules.
  • Nothing arrives in Slack, or the post shows as failed. The webhook may have been removed, the app uninstalled, or the channel archived. A workspace admin may also have restricted posting, which Slack reports as action_prohibited. Create a new webhook and save it again with configure_upload_post_platform.
  • "slack character limit (40000) exceeded after link tracking." Shorten the message. Fondoo adds tracking tags to links, and they count toward the length.

Limits, data and security

  • Slack's rate limit: about one message per second per channel, with short bursts allowed. Slack replies with HTTP 429 when you go over (Slack rate limits). With the default posting rules (one post a day), you will not get near this.
  • Fondoo's limits: your posting rules set the daily number of posts and the time windows. Upload-Post does not publish a daily cap for Slack, and Fondoo does not promise one.
  • What Fondoo stores: Fondoo passes the webhook URL to Upload-Post and never returns it to you or your agent. Fondoo keeps the account name, network and your posts.
  • Rotate: in your Slack app, open Incoming Webhooks, add a new webhook for the same channel and save it with configure_upload_post_platform. Then remove the old webhook in Slack.
  • Disconnect: remove the webhook in your Slack app's Incoming Webhooks page, or uninstall the app from your workspace. Then take Slack out of your posting rules with update_distribution_rules. Removing the webhook in Slack is what actually stops posting.