Team · trial
12 people
Product referral
Alex Rivera
Customers and revenue / BLOCK KIT JSON
Welcome a new account with plan, acquisition source, and the right customer owner.
Blank optional fields are omitted. Fallback text updates with your fields.
Approximate Slack rendering. Buttons are visual previews; no actions are sent.
Local validation checks the supported schema. It does not guarantee Slack API acceptance.
Manual editing and validation run in your browser. Opening Slack’s Builder shares the message with Slack.
New customer · Fieldwork Studio Fieldwork Studio created a workspace and invited their first teammates. Ready for a personal welcome. Plan: Team · trial Team size: 12 people Source: Product referral Customer owner: Alex Rivera Account AC-1084 · Created 20 Oct 2026 Open customer: https://example.com/customers/AC-1084
Download the payload or use this command in your own terminal. Replace the placeholder URL with your Slack incoming webhook. Keep the real URL secret. This tool never sends a Slack message.
curl --request POST \
--header 'Content-Type: application/json' \
--data-binary @- \
'https://hooks.slack.com/services/YOUR/WEBHOOK/URL' <<'SLACK_MESSAGE_JSON'
{
"text": "New customer · Fieldwork Studio\nFieldwork Studio created a workspace and invited their first teammates. Ready for a personal welcome.\nPlan: Team · trial\nTeam size: 12 people\nSource: Product referral\nCustomer owner: Alex Rivera\nAccount AC-1084 · Created 20 Oct 2026\nOpen customer: https://example.com/customers/AC-1084",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "New customer · Fieldwork Studio"
}
},
{
"type": "section",
"fields": [
{
"type": "mrkdwn",
"text": "*Plan*\nTeam · trial"
},
{
"type": "mrkdwn",
"text": "*Team size*\n12 people"
},
{
"type": "mrkdwn",
"text": "*Source*\nProduct referral"
},
{
"type": "mrkdwn",
"text": "*Customer owner*\nAlex Rivera"
}
]
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Fieldwork Studio created a workspace and invited their first teammates. Ready for a personal welcome."
}
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "Account AC-1084 · Created 20 Oct 2026"
}
]
},
{
"type": "divider"
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": {
"type": "plain_text",
"text": "Open customer"
},
"action_id": "customer",
"url": "https://example.com/customers/AC-1084",
"style": "primary"
}
]
}
]
}
SLACK_MESSAGE_JSONLet your customer team know when an account qualifies for a human welcome. A compact set of account attributes makes the notification useful for routing, without turning a shared Slack channel into a customer database.
Choose business attributes that affect the next action, such as plan, team size, and source. Remove optional values when unavailable. Link to the CRM record instead of copying personal contact information.
Send after signup is confirmed and deduplicate using your account ID. The CRM link opens the account; onboarding emails and owner assignment are separate workflows.
To post this JSON, create a Slack app with an incoming webhook for your channel, or use chat.postMessage with the appropriate bot token and permissions. Keep credentials on your server.
For buttons, enable Interactivity and handle Slack’s interaction requests, including URL buttons. Acknowledge requests promptly. This preview does not execute actions, authorize users, or save decisions.
Use the top-level fallback text for notifications and accessibility. Test your final payload in Slack; local validation covers the declared subset, and visual details vary by client.
Slack interaction setup ↗