Table of Contents

Getting Started with SlackNetBlockBuilder

SlackNetBlockBuilder is a fluent builder extension for SlackNet that simplifies creating Slack Block Kit UI elements.

Installation

dotnet add package SlackNetBlockBuilder

Basic Usage

using SlackNet;
using SlackNet.Blocks;

// Create blocks
var blocks = BlockBuilder.Create()
    .AddHeader("Hello World")
    .AddSection("Some text content")
    .AddDivider()
    .AddActions(actions => actions
        .AddButton("approve", "Approve")
        .AddButton("reject", "Reject"))
    .Build();

// Use with SlackNet
await slackApi.Chat.PostMessage(new Message
{
    Channel = channelId,
    Blocks = blocks
});

Forms

var blocks = BlockBuilder.Create()
    .AddHeader("Request Form")
    .AddInput<PlainTextInput>("Title", input => input
        .ActionId("title_input")
        .Placeholder("Enter title")
        .Required())
    .AddInput<PlainTextInput>("Description", input => input
        .ActionId("description_input")
        .Multiline()
        .Optional())
    .AddActions(actions => actions
        .AddButton("submit", "Submit")
        .AddButton("cancel", "Cancel"))
    .Build();

Updating Messages

// Update existing message
var updatedBlocks = BlockBuilder.From(existingMessage.Blocks)
    .AddSection("✅ Updated!")
    .Build();

await slackApi.Chat.Update(new MessageUpdate
{
    Channel = channelId,
    Ts = messageTs,
    Blocks = updatedBlocks
});