You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/docs/content/docs/en/knowledgebase/connectors.mdx
+12-8Lines changed: 12 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,23 +14,24 @@ Connectors continuously sync documents from external services into your knowledg
14
14
15
15
<Imagesrc="/static/connectors/connectors-sources.png"alt="Connect Source picker showing a searchable list of available connectors including Airtable, Asana, Confluence, Discord, Dropbox, Evernote, Fireflies, GitHub, and Gmail"width={800}height={500} />
16
16
17
-
Sim ships with 49 built-in connectors:
17
+
Sim ships with 61 built-in connectors:
18
18
19
19
| Category | Connectors |
20
20
|----------|-----------|
21
-
|**Productivity**| Notion, Confluence, Asana, Linear, Jira, Jira Service Management, Monday, Google Calendar, Google Sheets, Google Forms, Typeform |
22
-
|**Cloud Storage**| Google Drive, Dropbox, OneDrive, SharePoint, Amazon S3 |
23
-
|**Documents**| Google Docs, WordPress, Webflow, DocuSign |
21
+
|**Productivity**| Notion, Confluence, Asana, Linear, Jira, Jira Service Management, Monday, Trello, ClickUp, Google Calendar, Google Sheets, Google Forms, Microsoft Excel, Typeform |
Read an [environment variable](/workflows/variables#environment-variables) with `{{KEY}}`:
35
+
36
+
```javascript
37
+
{{MAX_RETRIES}} ===3
38
+
{{FEATURE_ON}} ===true
39
+
{{TIER}} ==='pro'
40
+
```
41
+
42
+
Numbers, booleans, and `null` compare as literals. Every other value is bound as a string, so an apostrophe, quote, or newline inside a secret cannot change what the expression means.
43
+
34
44
<Callouttype="info">
35
45
If an expression throws, for example because it reads a field that is not there, the block errors and the run follows the [error path](/workflows/connections) if one is connected. Guard missing values with optional chaining (`?.`) or a null check.
Copy file name to clipboardExpand all lines: apps/docs/content/docs/en/workflows/blocks/function.mdx
+19Lines changed: 19 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,6 +58,25 @@ const apiKey = {{API_KEY}};
58
58
59
59
Existing quoted and embedded forms are also supported, including `"{{API_KEY}}"`, `"Bearer {{API_KEY}}"`, and placeholders in template literals. Function and Custom Tool code use the same compiler at the execution boundary. It binds the secret separately from the source instead of pasting plaintext into your code, so quotes, backslashes, newlines, and string values such as `"123"` and `"true"` retain their exact contents and do not become JavaScript or Python literals of another type.
60
60
61
+
### Placeholders are always strings
62
+
63
+
A placeholder is bound as a value, never parsed as source. That is what keeps a secret from running as code — but it also means `{{KEY}}` always evaluates to a **string**, whatever the value looks like. Convert it when your code needs another type:
64
+
65
+
```javascript
66
+
constretries=Number({{MAX_RETRIES}});
67
+
constenabled= {{FEATURE_ON}} ==='true';
68
+
constpatterns=JSON.parse({{PATTERN_LIST}});
69
+
```
70
+
71
+
In Python, use `int()`, `== "true"`, and `json.loads()` the same way.
72
+
73
+
Two cases are easy to miss:
74
+
75
+
-**Booleans.** A bare `if ({{FEATURE_ON}})` is always true, because the string `"false"` is truthy. Compare against `'true'` instead.
76
+
-**Lists and objects.** Store the value as JSON so you can parse it back. `["^[A-Z]{2}-\\d{4}$", "^\\d{7,15}$"]` becomes an array; a JavaScript array of regex literals does not. It arrives as one long string, and iterating it walks character by character.
77
+
78
+
[Condition](/workflows/blocks/condition) blocks differ in one way: a number, boolean, or `null` value compares as a literal there, so `{{MAX_RETRIES}} === 3` is true. Every other value is a string, exactly as it is here.
79
+
61
80
JavaScript regex literals can contain a placeholder:
Copy file name to clipboardExpand all lines: apps/docs/content/docs/en/workflows/variables.mdx
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,6 +85,8 @@ Reference them with double curly braces in any block field, including Agent syst
85
85
Environment variable names must start with a letter or underscore and contain only letters, numbers, and underscores, like `MY_API_KEY`.
86
86
</Callout>
87
87
88
+
Inside Function and Custom Tool code, `{{KEY}}` always evaluates to a **string** — the value is bound, never parsed as source. Use `Number()`, a `=== 'true'` comparison, or `JSON.parse()` when you need another type. See [secret placeholders in code](/workflows/blocks/function#placeholders-are-always-strings).
Copy file name to clipboardExpand all lines: apps/docs/openapi-v2-files-audit.json
+34-1Lines changed: 34 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -51,6 +51,7 @@
51
51
"schema": {
52
52
"type": "string",
53
53
"minLength": 1,
54
+
"maxLength": 128,
54
55
"description": "Workspace whose files should be listed."
55
56
}
56
57
},
@@ -343,6 +344,7 @@
343
344
"schema": {
344
345
"type": "string",
345
346
"minLength": 1,
347
+
"maxLength": 128,
346
348
"description": "Workspace that owns the upload session."
347
349
}
348
350
},
@@ -433,6 +435,7 @@
433
435
"schema": {
434
436
"type": "string",
435
437
"minLength": 1,
438
+
"maxLength": 128,
436
439
"description": "Workspace that owns the upload session."
437
440
}
438
441
},
@@ -537,6 +540,7 @@
537
540
"schema": {
538
541
"type": "string",
539
542
"minLength": 1,
543
+
"maxLength": 128,
540
544
"description": "Workspace that owns the upload session."
541
545
}
542
546
},
@@ -629,6 +633,7 @@
629
633
"schema": {
630
634
"type": "string",
631
635
"minLength": 1,
636
+
"maxLength": 128,
632
637
"description": "Workspace that owns the file."
633
638
}
634
639
}
@@ -721,6 +726,7 @@
721
726
"schema": {
722
727
"type": "string",
723
728
"minLength": 1,
729
+
"maxLength": 128,
724
730
"description": "Workspace that owns the file."
725
731
}
726
732
}
@@ -965,8 +971,21 @@
965
971
"schema": {
966
972
"type": "string",
967
973
"minLength": 1,
974
+
"maxLength": 128,
968
975
"description": "Workspace that owns the file."
969
976
}
977
+
},
978
+
{
979
+
"name": "scope",
980
+
"in": "query",
981
+
"required": false,
982
+
"description": "Which lifecycle set to read from: `active` (default) resolves live files only and returns `404` for a file a `DELETE` soft-deleted; `archived` also resolves soft-deleted files, so metadata stays readable before `POST /files/{fileId}/restore`. Authorization is identical for both.",
983
+
"schema": {
984
+
"default": "active",
985
+
"description": "Which lifecycle set to read from: `active` (default) resolves live files only and returns `404` for a file a `DELETE` soft-deleted; `archived` also resolves soft-deleted files, so metadata stays readable before `POST /files/{fileId}/restore`. Authorization is identical for both.",
986
+
"type": "string",
987
+
"enum": ["active", "archived"]
988
+
}
970
989
}
971
990
],
972
991
"responses": {
@@ -1060,7 +1079,8 @@
1060
1079
"schema": {
1061
1080
"description": "Filter to actions in one workspace.",
1062
1081
"type": "string",
1063
-
"minLength": 1
1082
+
"minLength": 1,
1083
+
"maxLength": 128
1064
1084
}
1065
1085
},
1066
1086
{
@@ -1361,6 +1381,7 @@
1361
1381
"schema": {
1362
1382
"type": "string",
1363
1383
"minLength": 1,
1384
+
"maxLength": 128,
1364
1385
"description": "Workspace that owns the file."
1365
1386
}
1366
1387
}
@@ -1655,6 +1676,7 @@
1655
1676
"schema": {
1656
1677
"type": "string",
1657
1678
"minLength": 1,
1679
+
"maxLength": 128,
1658
1680
"description": "Workspace whose folders should be listed."
1659
1681
}
1660
1682
},
@@ -1898,6 +1920,7 @@
1898
1920
"schema": {
1899
1921
"type": "string",
1900
1922
"minLength": 1,
1923
+
"maxLength": 128,
1901
1924
"description": "Workspace containing the folder."
1902
1925
}
1903
1926
},
@@ -2437,6 +2460,7 @@
2437
2460
"workspaceId": {
2438
2461
"type": "string",
2439
2462
"minLength": 1,
2463
+
"maxLength": 128,
2440
2464
"description": "Workspace in which to create the file."
2441
2465
},
2442
2466
"name": {
@@ -2651,6 +2675,7 @@
2651
2675
"workspaceId": {
2652
2676
"type": "string",
2653
2677
"minLength": 1,
2678
+
"maxLength": 128,
2654
2679
"description": "Workspace in which the file will be registered."
2655
2680
},
2656
2681
"name": {
@@ -2822,6 +2847,7 @@
2822
2847
"workspaceId": {
2823
2848
"type": "string",
2824
2849
"minLength": 1,
2850
+
"maxLength": 128,
2825
2851
"description": "Workspace that owns the file."
2826
2852
},
2827
2853
"name": {
@@ -2877,6 +2903,7 @@
2877
2903
"workspaceId": {
2878
2904
"type": "string",
2879
2905
"minLength": 1,
2906
+
"maxLength": 128,
2880
2907
"description": "Workspace that owns the archived file."
2881
2908
}
2882
2909
},
@@ -3352,6 +3379,7 @@
3352
3379
"workspaceId": {
3353
3380
"type": "string",
3354
3381
"minLength": 1,
3382
+
"maxLength": 128,
3355
3383
"description": "Workspace containing the files."
3356
3384
},
3357
3385
"fileIds": {
@@ -3446,6 +3474,7 @@
3446
3474
"workspaceId": {
3447
3475
"type": "string",
3448
3476
"minLength": 1,
3477
+
"maxLength": 128,
3449
3478
"description": "Workspace that owns the file."
3450
3479
},
3451
3480
"isActive": {
@@ -3496,6 +3525,7 @@
3496
3525
"workspaceId": {
3497
3526
"type": "string",
3498
3527
"minLength": 1,
3528
+
"maxLength": 128,
3499
3529
"description": "Workspace that owns the file."
3500
3530
},
3501
3531
"content": {
@@ -3572,6 +3602,7 @@
3572
3602
"workspaceId": {
3573
3603
"type": "string",
3574
3604
"minLength": 1,
3605
+
"maxLength": 128,
3575
3606
"description": "Workspace containing the files."
3576
3607
},
3577
3608
"fileIds": {
@@ -3683,6 +3714,7 @@
3683
3714
"workspaceId": {
3684
3715
"type": "string",
3685
3716
"minLength": 1,
3717
+
"maxLength": 128,
3686
3718
"description": "Workspace in which to create the folder."
0 commit comments