Skip to content

Commit f40a9b9

Browse files
ouiliameclaude
andcommitted
chore(blocks): one-time shift of all docsLinks to the new docs URLs
Block definitions are the patterns coding agents copy from, so redirects alone leave new blocks minting dead conventions. Every docs.sim.ai link in apps/sim now points at the final URL scheme: /tools/<slug> -> /integrations/<slug> (433 links), /blocks/<core> -> /workflows/blocks/<core> (knowledge/enrichment/ logs -> /integrations/*), native /triggers/* -> /workflows/triggers/*, /mcp -> /agents/mcp, /self-hosting + /enterprise -> /platform/*, plus the llms.txt listings and the blocks.test.ts assertions. Verified every rewritten target against the docs tree: all resolve except ten hidden blocks (vision, spotify, thinking, tts...) and a2a whose links were already dead pre-reorg — no regressions introduced. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 79b6cbf commit f40a9b9

242 files changed

Lines changed: 492 additions & 484 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

apps/sim/app/(landing)/components/footer/footer.tsx

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ const PRODUCT_LINKS: FooterItem[] = [
1818
{ label: 'Workflows', href: 'https://docs.sim.ai', external: true },
1919
{ label: 'Knowledge Base', href: 'https://docs.sim.ai/knowledgebase', external: true },
2020
{ label: 'Tables', href: 'https://docs.sim.ai/tables', external: true },
21-
{ label: 'MCP', href: 'https://docs.sim.ai/mcp', external: true },
21+
{ label: 'MCP', href: 'https://docs.sim.ai/agents/mcp', external: true },
2222
{ label: 'API', href: 'https://docs.sim.ai/api-reference/getting-started', external: true },
23-
{ label: 'Self Hosting', href: 'https://docs.sim.ai/self-hosting', external: true },
23+
{ label: 'Self Hosting', href: 'https://docs.sim.ai/platform/self-hosting', external: true },
2424
{ label: 'Status', href: 'https://status.sim.ai', external: true, externalArrow: true },
2525
]
2626

@@ -35,38 +35,46 @@ const RESOURCES_LINKS: FooterItem[] = [
3535
]
3636

3737
const BLOCK_LINKS: FooterItem[] = [
38-
{ label: 'Agent', href: 'https://docs.sim.ai/blocks/agent', external: true },
39-
{ label: 'Router', href: 'https://docs.sim.ai/blocks/router', external: true },
40-
{ label: 'Function', href: 'https://docs.sim.ai/blocks/function', external: true },
41-
{ label: 'Condition', href: 'https://docs.sim.ai/blocks/condition', external: true },
42-
{ label: 'API Block', href: 'https://docs.sim.ai/blocks/api', external: true },
43-
{ label: 'Workflow', href: 'https://docs.sim.ai/blocks/workflow', external: true },
44-
{ label: 'Parallel', href: 'https://docs.sim.ai/blocks/parallel', external: true },
45-
{ label: 'Guardrails', href: 'https://docs.sim.ai/blocks/guardrails', external: true },
46-
{ label: 'Evaluator', href: 'https://docs.sim.ai/blocks/evaluator', external: true },
47-
{ label: 'Loop', href: 'https://docs.sim.ai/blocks/loop', external: true },
38+
{ label: 'Agent', href: 'https://docs.sim.ai/workflows/blocks/agent', external: true },
39+
{ label: 'Router', href: 'https://docs.sim.ai/workflows/blocks/router', external: true },
40+
{ label: 'Function', href: 'https://docs.sim.ai/workflows/blocks/function', external: true },
41+
{ label: 'Condition', href: 'https://docs.sim.ai/workflows/blocks/condition', external: true },
42+
{ label: 'API Block', href: 'https://docs.sim.ai/workflows/blocks/api', external: true },
43+
{ label: 'Workflow', href: 'https://docs.sim.ai/workflows/blocks/workflow', external: true },
44+
{ label: 'Parallel', href: 'https://docs.sim.ai/workflows/blocks/parallel', external: true },
45+
{ label: 'Guardrails', href: 'https://docs.sim.ai/workflows/blocks/guardrails', external: true },
46+
{ label: 'Evaluator', href: 'https://docs.sim.ai/workflows/blocks/evaluator', external: true },
47+
{ label: 'Loop', href: 'https://docs.sim.ai/workflows/blocks/loop', external: true },
4848
]
4949

5050
const INTEGRATION_LINKS: FooterItem[] = [
5151
{ label: 'All Integrations', href: '/integrations' },
52-
{ label: 'Confluence', href: 'https://docs.sim.ai/tools/confluence', external: true },
53-
{ label: 'Slack', href: 'https://docs.sim.ai/tools/slack', external: true },
54-
{ label: 'GitHub', href: 'https://docs.sim.ai/tools/github', external: true },
55-
{ label: 'Gmail', href: 'https://docs.sim.ai/tools/gmail', external: true },
56-
{ label: 'HubSpot', href: 'https://docs.sim.ai/tools/hubspot', external: true },
57-
{ label: 'Salesforce', href: 'https://docs.sim.ai/tools/salesforce', external: true },
58-
{ label: 'Notion', href: 'https://docs.sim.ai/tools/notion', external: true },
59-
{ label: 'Google Drive', href: 'https://docs.sim.ai/tools/google_drive', external: true },
60-
{ label: 'Google Sheets', href: 'https://docs.sim.ai/tools/google_sheets', external: true },
61-
{ label: 'Supabase', href: 'https://docs.sim.ai/tools/supabase', external: true },
62-
{ label: 'Stripe', href: 'https://docs.sim.ai/tools/stripe', external: true },
63-
{ label: 'Jira', href: 'https://docs.sim.ai/tools/jira', external: true },
64-
{ label: 'Linear', href: 'https://docs.sim.ai/tools/linear', external: true },
65-
{ label: 'Airtable', href: 'https://docs.sim.ai/tools/airtable', external: true },
66-
{ label: 'Firecrawl', href: 'https://docs.sim.ai/tools/firecrawl', external: true },
67-
{ label: 'Discord', href: 'https://docs.sim.ai/tools/discord', external: true },
68-
{ label: 'Microsoft Teams', href: 'https://docs.sim.ai/tools/microsoft_teams', external: true },
69-
{ label: 'Telegram', href: 'https://docs.sim.ai/tools/telegram', external: true },
52+
{ label: 'Confluence', href: 'https://docs.sim.ai/integrations/confluence', external: true },
53+
{ label: 'Slack', href: 'https://docs.sim.ai/integrations/slack', external: true },
54+
{ label: 'GitHub', href: 'https://docs.sim.ai/integrations/github', external: true },
55+
{ label: 'Gmail', href: 'https://docs.sim.ai/integrations/gmail', external: true },
56+
{ label: 'HubSpot', href: 'https://docs.sim.ai/integrations/hubspot', external: true },
57+
{ label: 'Salesforce', href: 'https://docs.sim.ai/integrations/salesforce', external: true },
58+
{ label: 'Notion', href: 'https://docs.sim.ai/integrations/notion', external: true },
59+
{ label: 'Google Drive', href: 'https://docs.sim.ai/integrations/google_drive', external: true },
60+
{
61+
label: 'Google Sheets',
62+
href: 'https://docs.sim.ai/integrations/google_sheets',
63+
external: true,
64+
},
65+
{ label: 'Supabase', href: 'https://docs.sim.ai/integrations/supabase', external: true },
66+
{ label: 'Stripe', href: 'https://docs.sim.ai/integrations/stripe', external: true },
67+
{ label: 'Jira', href: 'https://docs.sim.ai/integrations/jira', external: true },
68+
{ label: 'Linear', href: 'https://docs.sim.ai/integrations/linear', external: true },
69+
{ label: 'Airtable', href: 'https://docs.sim.ai/integrations/airtable', external: true },
70+
{ label: 'Firecrawl', href: 'https://docs.sim.ai/integrations/firecrawl', external: true },
71+
{ label: 'Discord', href: 'https://docs.sim.ai/integrations/discord', external: true },
72+
{
73+
label: 'Microsoft Teams',
74+
href: 'https://docs.sim.ai/integrations/microsoft_teams',
75+
external: true,
76+
},
77+
{ label: 'Telegram', href: 'https://docs.sim.ai/integrations/telegram', external: true },
7078
]
7179

7280
const SOCIAL_LINKS: FooterItem[] = [

apps/sim/app/(landing)/components/navbar/components/docs-dropdown.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@ const RESOURCE_CARDS = [
1818
{
1919
title: 'Agent',
2020
description: 'Build AI agents',
21-
href: 'https://docs.sim.ai/blocks/agent',
21+
href: 'https://docs.sim.ai/workflows/blocks/agent',
2222
icon: AgentIcon,
2323
},
2424
{
2525
title: 'MCP',
2626
description: 'Connect tools',
27-
href: 'https://docs.sim.ai/mcp',
27+
href: 'https://docs.sim.ai/agents/mcp',
2828
icon: McpIcon,
2929
},
3030
{
3131
title: 'Self-hosting',
3232
description: 'Host on your infra',
33-
href: 'https://docs.sim.ai/self-hosting',
33+
href: 'https://docs.sim.ai/platform/self-hosting',
3434
icon: GithubOutlineIcon,
3535
},
3636
] as const

apps/sim/app/(landing)/components/structured-data.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ export default function StructuredData() {
255255
name: 'Can I self-host Sim?',
256256
acceptedAnswer: {
257257
'@type': 'Answer',
258-
text: 'Yes. Sim can be self-hosted using Docker. Documentation is available at docs.sim.ai/self-hosting. Enterprise customers can also get dedicated infrastructure and on-premise deployment.',
258+
text: 'Yes. Sim can be self-hosted using Docker. Documentation is available at docs.sim.ai/platform/self-hosting. Enterprise customers can also get dedicated infrastructure and on-premise deployment.',
259259
},
260260
},
261261
],

apps/sim/app/llms.txt/route.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ Sim lets teams create agents visually with the workflow builder, conversationall
2020
## Documentation
2121
2222
- [Documentation](https://docs.sim.ai): Product guides and technical reference
23-
- [Quickstart](https://docs.sim.ai/quickstart): Fastest path to getting started
24-
- [API Reference](https://docs.sim.ai/api): API documentation
23+
- [Quickstart](https://docs.sim.ai/getting-started): Fastest path to getting started
24+
- [API Reference](https://docs.sim.ai/api-reference): API documentation
2525
2626
## Key Concepts
2727

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/subflows/loop/loop-config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ export const LoopTool = {
99
name: 'Loop',
1010
icon: RepeatIcon,
1111
bgColor: '#2FB3FF',
12-
docsLink: 'https://docs.sim.ai/blocks/loop',
12+
docsLink: 'https://docs.sim.ai/workflows/blocks/loop',
1313
} as const

apps/sim/app/workspace/[workspaceId]/w/[workflowId]/components/subflows/parallel/parallel-config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,5 @@ export const ParallelTool = {
99
name: 'Parallel',
1010
icon: SplitIcon,
1111
bgColor: '#FEE12B',
12-
docsLink: 'https://docs.sim.ai/blocks/parallel',
12+
docsLink: 'https://docs.sim.ai/workflows/blocks/parallel',
1313
} as const

apps/sim/blocks/blocks.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -696,10 +696,10 @@ describe.concurrent('Blocks Module', () => {
696696

697697
it('should handle blocks with docsLink', () => {
698698
const functionBlock = getBlock('function')
699-
expect(functionBlock?.docsLink).toBe('https://docs.sim.ai/blocks/function')
699+
expect(functionBlock?.docsLink).toBe('https://docs.sim.ai/workflows/blocks/function')
700700

701701
const apiBlock = getBlock('api')
702-
expect(apiBlock?.docsLink).toBe('https://docs.sim.ai/blocks/api')
702+
expect(apiBlock?.docsLink).toBe('https://docs.sim.ai/workflows/blocks/api')
703703
})
704704
})
705705

apps/sim/blocks/blocks/a2a.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export const A2ABlock: BlockConfig<A2AResponse> = {
6262
'Use the A2A (Agent-to-Agent) protocol to interact with external AI agents. ' +
6363
'Send messages, query task status, cancel tasks, or discover agent capabilities. ' +
6464
'Compatible with any A2A-compliant agent including LangGraph, Google ADK, and other Sim workflows.',
65-
docsLink: 'https://docs.sim.ai/blocks/a2a',
65+
docsLink: 'https://docs.sim.ai/workflows/blocks/a2a',
6666
category: 'blocks',
6767
integrationType: IntegrationType.DevOps,
6868
bgColor: '#4151B5',

apps/sim/blocks/blocks/agent.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ export const AgentBlock: BlockConfig<AgentResponse> = {
7777
- Prefer using integrations as tools within the agent block over separate integration blocks unless complete determinism needed.
7878
- Response Format should be a valid JSON Schema. This determines the output of the agent only if present. Fields can be accessed at root level by the following blocks: e.g. <agent1.field>. If response format is not present, the agent will return the standard outputs: content, model, tokens, toolCalls.
7979
`,
80-
docsLink: 'https://docs.sim.ai/blocks/agent',
80+
docsLink: 'https://docs.sim.ai/workflows/blocks/agent',
8181
category: 'blocks',
8282
integrationType: IntegrationType.AI,
8383
bgColor: 'var(--brand)',

apps/sim/blocks/blocks/agentmail.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export const AgentMailBlock: BlockConfig = {
88
description: 'Manage email inboxes, threads, and messages with AgentMail',
99
longDescription:
1010
'Integrate AgentMail into your workflow. Create and manage email inboxes, send and receive messages, reply to threads, manage drafts, and organize threads with labels. Requires API Key.',
11-
docsLink: 'https://docs.sim.ai/tools/agentmail',
11+
docsLink: 'https://docs.sim.ai/integrations/agentmail',
1212
category: 'tools',
1313
integrationType: IntegrationType.Email,
1414
bgColor: '#000000',

0 commit comments

Comments
 (0)