用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/vamseeachanta/workspace-hub --skill activepieces-integration-with-notion-and-slack命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | activepieces-integration-with-notion-and-slack |
| description | Sub-skill of activepieces: Integration with Notion and Slack. |
| version | 1.0.0 |
| category | operations |
| type | reference |
| scripts_exempt | true |
const notionSlackSync = {
"displayName": "Notion to Slack Sync",
"trigger": {
"name": "notion_database_updated",
"type": "PIECE_TRIGGER",
"settings": {
"pieceName": "@activepieces/piece-notion",
"triggerName": "database_item_updated",
"input": {
"database_id": "{{connections.notion.task_database_id}}"
}
},
"displayName": "Task Updated in Notion"
},
"steps": [
{
"name": "check_status_change",
"type": "CODE",
"settings": {
"input": {
"item": "{{trigger}}"
},
"sourceCode": {
"code": `
export const code = async (inputs) => {
const { item } = inputs;
const statusProperty = item.properties?.Status;
const currentStatus = statusProperty?.select?.name;
return {
task_name: item.properties?.Name?.title?.[0]?.plain_text || 'Unnamed Task',
status: currentStatus,
assignee: item.properties?.Assignee?.people?.[0]?.name || 'Unassigned',
due_date: item.properties?.['Due Date']?.date?.start,
url: item.url,
is_completed: currentStatus === 'Done',
is_blocked: currentStatus === 'Blocked'
};
};`
}
},
"displayName": "Extract Task Details"
},
{
"name": "route_notification",
"type": "BRANCH",
"settings": {
"conditions": [
{
"name": "task_completed",
"expression": {
"type": "EXPRESSION",
"value": "{{check_status_change.is_completed}} === true"
},
"steps": [
{
"name": "celebrate_completion",
"type": "PIECE",
"settings": {
"pieceName": "@activepieces/piece-slack",
"actionName": "send_message",
"input": {
"channel": "#team-wins",
"text": "Task completed! {{check_status_change.task_name}} by {{check_status_change.assignee}}"
}
}
}
]
},
{
"name": "task_blocked",
"expression": {
"type": "EXPRESSION",
"value": "{{check_status_change.is_blocked}} === true"
},
"steps": [
{
"name": "alert_blockers",
"type": "PIECE",
"settings": {
"pieceName": "@activepieces/piece-slack",
"actionName": "send_message",
"input": {
"channel": "#blockers",
"text": "Task blocked: {{check_status_change.task_name}} - Assigned to {{check_status_change.assignee}}"
}
}
}
]
}
]
},
"displayName": "Route Notification"
}
]
};