Skip to content

Commit d4e6fe4

Browse files
authored
Merge branch 'staging' into codex-ops-integrations
2 parents 172dce2 + 6414b93 commit d4e6fe4

128 files changed

Lines changed: 8091 additions & 1175 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/docs/components/icons.tsx

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6973,3 +6973,15 @@ export function NewRelicIcon(props: SVGProps<SVGSVGElement>) {
69736973
</svg>
69746974
)
69756975
}
6976+
6977+
6978+
export function WizaIcon(props: SVGProps<SVGSVGElement>) {
6979+
return (
6980+
<svg {...props} viewBox='0 0 51 49' fill='none' xmlns='http://www.w3.org/2000/svg'>
6981+
<path
6982+
fill='#FFFFFF'
6983+
d='m50.3 33.6-9.3-3.5c-2.9-10.4-9.6-20.8-17.1-29.4-1.4-1.5-4.4-0.7-4.2 1.9 0.4 6-0.4 13.3-4.4 20.5-0.9 1.6 1.4 3.3 2.9 1.6 3.2-3.3 5.3-9.1 6.3-15.2 3.9 5.4 9.2 13.8 11.2 22.9 0.2 0.9 0.8 1.6 1.6 1.9l6.2 2.3c-4.1 3.3-9.6 6-17.7 6-7.1 0-13.2-2.3-18.5-6l3.6-2.5c3.5 2 7.5 3.5 12.5 3.6 2.5 0 5-0.2 7.3-0.9 2-0.5 1.6-3.2-0.3-3-4 0.5-10.3 0.3-17.1-4.3-0.8-0.5-1.9-0.6-2.7-0.2l-9.2 4.3c-1.4 0.6-2.1 3.1-0.5 4.3 4.7 3.8 12.4 10.1 24.2 10.1 11.9 0 20.4-4.3 25.8-10.1 1.2-1.2 1.2-3.5-0.6-4.3z'
6984+
/>
6985+
</svg>
6986+
)
6987+
}

apps/docs/components/ui/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ import {
199199
WebflowIcon,
200200
WhatsAppIcon,
201201
WikipediaIcon,
202+
WizaIcon,
202203
WordpressIcon,
203204
WorkdayIcon,
204205
xIcon,
@@ -430,6 +431,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
430431
webflow: WebflowIcon,
431432
whatsapp: WhatsAppIcon,
432433
wikipedia: WikipediaIcon,
434+
wiza: WizaIcon,
433435
wordpress: WordpressIcon,
434436
workday: WorkdayIcon,
435437
x: xIcon,

apps/docs/content/docs/en/blocks/function.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ const file = <readfile.file>;
198198
const base64 = await sim.files.readBase64(file);
199199
```
200200

201-
`sim.files.readBase64(file)`, `sim.files.readText(file)`, `sim.files.readBase64Chunk(file, { offset, length })`, and `sim.files.readTextChunk(file, { offset, length })` read from server-side execution storage under memory caps. `sim.values.read(ref)` can explicitly read a large execution value reference. These helpers are available only in JavaScript functions without imports. JavaScript with imports, Python, and shell do not support these lazy helpers yet.
201+
`sim.files.readBase64(file)`, `sim.files.readText(file)`, `sim.files.readBase64Chunk(file, { offset, length })`, and `sim.files.readTextChunk(file, { offset, length })` read from server-side execution storage under memory caps. `sim.values.read(ref)` explicitly reads a large execution value reference, and `sim.values.readArray(ref)` reads a manifest-backed large array. These helpers are available only in JavaScript functions without imports. JavaScript with imports, Python, and shell do not support these lazy helpers yet.
202202

203203
Very large full reads can still fail by design; use chunk helpers or return a file when you need to handle more data.
204204

@@ -228,7 +228,7 @@ return { name: file.name, chunk: firstMegabyteBase64 };
228228

229229
Chunk `offset` and `length` are byte-based. For Unicode text, a chunk can split a multi-byte character at the boundary; use text chunks for approximate text processing and prefer smaller structured references when exact parsing matters.
230230

231-
Avoid passing a full large object into a Function block when you only need one field. For example, prefer `<api.data.customerId>` over `<api.data>` when the API response is large. If a JavaScript Function without imports references a large execution value, Sim automatically reads it through `sim.values.read(...)` at runtime under memory caps.
231+
Avoid passing a full large object into a Function block when you only need one field. For example, prefer `<api.data.customerId>` over `<api.data>` when the API response is large. If a JavaScript Function without imports references a whole large execution value, Sim automatically rewrites it to `sim.values.read(...)` at runtime under memory caps. If the value is a manifest-backed array, Sim rewrites it to `sim.values.readArray(...)` so array variables can stay compact between blocks.
232232

233233
For large generated data, write the result to a file or table with `outputPath`, `outputSandboxPath`, or `outputTable` instead of returning the entire payload inline.
234234

apps/docs/content/docs/en/execution/api-deployment.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ Workflow execution responses are capped by platform request and response limits.
232232
}
233233
```
234234

235-
The `version` field is part of the external API contract. Treat the reference as an opaque placeholder for a value that could not be safely embedded in the response. `id`, `key`, and `executionId` are not fetch URLs; `key` points to execution-scoped server storage. Use `selectedOutputs` to request a smaller nested field, reduce the data passed between blocks, or return the data from a Response block when your workflow intentionally owns the HTTP response body. File outputs are metadata-first; request `.base64` only when you need inline file content. JavaScript Function blocks can explicitly read large files or value refs with the `sim.files` and `sim.values` helpers under memory caps.
235+
The `version` field is part of the external API contract. Treat the reference as an opaque placeholder for a value that could not be safely embedded in the response. `id`, `key`, and `executionId` are not fetch URLs; `key` points to execution-scoped server storage. Use `selectedOutputs` to request a smaller nested field, reduce the data passed between blocks, or return the data from a Response block when your workflow intentionally owns the HTTP response body. File outputs are metadata-first; request `.base64` only when you need inline file content. JavaScript Function blocks can explicitly read large files, value refs, and manifest-backed arrays with the `sim.files` and `sim.values` helpers under memory caps.
236236

237237
### Asynchronous
238238

apps/docs/content/docs/en/tools/google_docs.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ Read content from a Google Docs document
5656

5757
### `google_docs_write`
5858

59-
Write or update content in a Google Docs document
59+
Append content to a Google Docs document. Content is inserted literally; Markdown is not interpreted. For formatted output from Markdown, use the Create operation with the markdown toggle enabled.
6060

6161
#### Input
6262

@@ -88,6 +88,7 @@ Create a new Google Docs document
8888
| `content` | string | No | The content of the document to create |
8989
| `folderSelector` | string | No | Google Drive folder ID to create the document in \(e.g., 1ABCxyz...\) |
9090
| `folderId` | string | No | The ID of the folder to create the document in \(internal use\) |
91+
| `markdown` | boolean | No | When true, content is interpreted as Markdown and converted to formatted Google Docs content \(headings, bold/italic, lists, tables, links, code blocks, blockquotes\). Default: false \(content inserted as plain text\). |
9192

9293
#### Output
9394

apps/docs/content/docs/en/tools/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@
199199
"webflow",
200200
"whatsapp",
201201
"wikipedia",
202+
"wiza",
202203
"wordpress",
203204
"workday",
204205
"x",
Lines changed: 251 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,251 @@
1+
---
2+
title: Wiza
3+
description: Find, enrich, and verify B2B contact data with Wiza
4+
---
5+
6+
import { BlockInfoCard } from "@/components/ui/block-info-card"
7+
8+
<BlockInfoCard
9+
type="wiza"
10+
color="#9284BC"
11+
/>
12+
13+
{/* MANUAL-CONTENT-START:intro */}
14+
[Wiza](https://wiza.co/) is a B2B contact data platform that finds and verifies emails and phone numbers for sales, recruiting, and marketing teams. Wiza pairs a global prospect database with real-time enrichment, so the data you act on stays accurate and deliverable.
15+
16+
With Wiza, you can:
17+
18+
- **Search a global prospect database**: Find people using person, company, and financial filters
19+
- **Enrich companies**: Resolve firmographic data from a name, domain, or LinkedIn URL
20+
- **Reveal individual contacts**: Get verified work emails, personal emails, and mobile phone numbers
21+
- **Track credit usage**: Check remaining email, phone, export, and API credits at any time
22+
23+
In Sim, the Wiza integration lets your agents drive prospecting and enrichment workflows end-to-end:
24+
25+
- **Prospect Search**: Use `wiza_prospect_search` to discover prospects matching detailed filters.
26+
- **Company Enrichment**: Use `wiza_company_enrichment` to enrich a company from name, domain, LinkedIn ID, or LinkedIn slug.
27+
- **Start Individual Reveal**: Use `wiza_start_individual_reveal` to begin enrichment for a contact via LinkedIn URL, name + company, or email — with configurable enrichment depth (`none`, `partial`, `phone`, `full`).
28+
- **Get Individual Reveal**: Use `wiza_get_individual_reveal` to poll a reveal and retrieve verified emails, phones, and full company context.
29+
- **Get Credits**: Use `wiza_get_credits` to monitor remaining credit balances before scaling up runs.
30+
31+
Individual reveals are asynchronous: start a reveal, then poll `wiza_get_individual_reveal` until `is_complete` is `true`. Combine these tools to build agents that source, enrich, and qualify leads on demand — without leaving your workflow.
32+
{/* MANUAL-CONTENT-END */}
33+
34+
35+
## Usage Instructions
36+
37+
{/* MANUAL-CONTENT-START:usage */}
38+
### Wiza API Key Setup
39+
40+
Wiza authenticates via API key. To get yours:
41+
42+
1. Log in to your [Wiza account](https://app.wiza.co/).
43+
2. Open **Settings → API** and generate a new API key (or copy an existing one).
44+
3. In Sim, open the Wiza block and paste the key into the **Wiza API Key** field.
45+
46+
The same key is used for every Wiza operation. Wiza enforces a rate limit of 30 requests per minute (43,200 per day) per key.
47+
48+
### Individual Reveals Are Asynchronous
49+
50+
`wiza_start_individual_reveal` returns immediately with a reveal `id` and a `status` of `queued` or `resolving`. To retrieve the enriched contact data, call `wiza_get_individual_reveal` with that `id` and check `is_complete`. Possible statuses are `queued`, `resolving`, `finished`, and `failed`.
51+
52+
For real-time delivery without polling, pass a `callback_url` when starting the reveal — Wiza will POST the completed payload to that URL.
53+
54+
### Enrichment Levels and Credits
55+
56+
When starting an individual reveal, choose the enrichment level that matches the data you need:
57+
58+
- **`none`** — Identity only, no contact info (no credit spend)
59+
- **`partial`** — Verified work email (email credits)
60+
- **`phone`** — Mobile phone (phone credits)
61+
- **`full`** — Email + phone (email + phone credits)
62+
63+
Use `wiza_get_credits` to monitor remaining email, phone, export, and API credits before running large batches.
64+
{/* MANUAL-CONTENT-END */}
65+
66+
67+
Integrates Wiza into the workflow. Search prospects, enrich companies, reveal verified emails and phone numbers for individuals, and check your account credit balance.
68+
69+
70+
71+
## Tools
72+
73+
### `wiza_prospect_search`
74+
75+
Search Wiza
76+
77+
#### Input
78+
79+
| Parameter | Type | Required | Description |
80+
| --------- | ---- | -------- | ----------- |
81+
| `apiKey` | string | Yes | Wiza API key |
82+
| `size` | number | No | Number of sample profiles to return \(0-30, default 0\) |
83+
| `filters` | object | No | Full filters object \(overrides individual filter params if provided\) |
84+
| `first_name` | array | No | Exact first names to match \(e.g., \["John", "Jane"\]\) |
85+
| `last_name` | array | No | Exact last names to match |
86+
| `job_title` | array | No | Job titles to include/exclude \(e.g., \[\{"v":"CEO","s":"i"\},\{"v":"CTO","s":"e"\}\]\) |
87+
| `job_title_level` | array | No | Seniority levels \(e.g., \["cxo", "director", "manager"\]\) |
88+
| `job_role` | array | No | Job role categories \(e.g., \["sales", "engineering", "marketing"\]\) |
89+
| `job_sub_role` | array | No | Detailed role categories \(e.g., \["software", "product"\]\) |
90+
| `location` | array | No | Person's location filters \(city/state/country with include/exclude\) |
91+
| `skill` | array | No | Professional skills \(e.g., \["python", "marketing"\]\) |
92+
| `school` | array | No | Educational institutions |
93+
| `major` | array | No | Field of study |
94+
| `linkedin_slug` | array | No | LinkedIn profile slugs |
95+
| `job_company` | array | No | Current company filters \(include/exclude\) |
96+
| `past_company` | array | No | Past company filters |
97+
| `company_location` | array | No | Company HQ location filters |
98+
| `company_industry` | array | No | Company industry filters \(include/exclude\) |
99+
| `company_size` | array | No | Company headcount brackets \(e.g., \["1-10", "11-50", "51-200"\]\) |
100+
| `company_type` | array | No | Company type \(e.g., \["private", "public", "educational"\]\) |
101+
102+
#### Output
103+
104+
| Parameter | Type | Description |
105+
| --------- | ---- | ----------- |
106+
| `total` | number | Total number of matching prospects |
107+
| `profiles` | array | Sample profiles matching the filter criteria |
108+
109+
### `wiza_company_enrichment`
110+
111+
Enrich a company by name, domain, LinkedIn ID, or LinkedIn slug with detailed firmographic data
112+
113+
#### Input
114+
115+
| Parameter | Type | Required | Description |
116+
| --------- | ---- | -------- | ----------- |
117+
| `apiKey` | string | Yes | Wiza API key |
118+
| `company_name` | string | No | Company name \(e.g., "Wiza"\) |
119+
| `company_domain` | string | No | Company domain \(e.g., "wiza.co"\) |
120+
| `company_linkedin_id` | string | No | Company LinkedIn ID |
121+
| `company_linkedin_slug` | string | No | Company LinkedIn slug from the URL |
122+
123+
#### Output
124+
125+
| Parameter | Type | Description |
126+
| --------- | ---- | ----------- |
127+
| `company_name` | string | Company name |
128+
| `company_domain` | string | Company domain |
129+
| `domain` | string | Domain |
130+
| `company_industry` | string | Industry |
131+
| `company_size` | number | Employee count |
132+
| `company_size_range` | string | Headcount range |
133+
| `company_founded` | number | Year founded |
134+
| `company_revenue_range` | string | Revenue range |
135+
| `company_funding` | string | Total funding |
136+
| `company_type` | string | Company type |
137+
| `company_description` | string | Description |
138+
| `company_ticker` | string | Stock ticker |
139+
| `company_last_funding_round` | string | Last funding round |
140+
| `company_last_funding_amount` | string | Last funding amount |
141+
| `company_last_funding_at` | string | Last funding date |
142+
| `company_location` | string | Full location string |
143+
| `company_twitter` | string | Twitter URL |
144+
| `company_facebook` | string | Facebook URL |
145+
| `company_linkedin` | string | LinkedIn URL |
146+
| `company_linkedin_id` | string | LinkedIn ID |
147+
| `company_street` | string | Street address |
148+
| `company_locality` | string | City |
149+
| `company_region` | string | State/region |
150+
| `company_postal_code` | string | Postal code |
151+
| `company_country` | string | Country |
152+
| `credits` | json | Remaining API credits |
153+
154+
### `wiza_start_individual_reveal`
155+
156+
Start an individual reveal to enrich a contact via LinkedIn URL, name+company, or email
157+
158+
#### Input
159+
160+
| Parameter | Type | Required | Description |
161+
| --------- | ---- | -------- | ----------- |
162+
| `apiKey` | string | Yes | Wiza API key |
163+
| `enrichment_level` | string | Yes | Enrichment depth: none, partial, phone, or full |
164+
| `profile_url` | string | No | LinkedIn profile URL \(e.g., https://linkedin.com/in/johndoe\) |
165+
| `full_name` | string | No | Full name \(used with company or domain\) |
166+
| `company` | string | No | Company name \(used with full_name\) |
167+
| `domain` | string | No | Company domain \(used with full_name\) |
168+
| `email` | string | No | Email address \(use alone or with other identifiers\) |
169+
| `accept_work` | boolean | No | Whether to accept work emails \(email_options\) |
170+
| `accept_personal` | boolean | No | Whether to accept personal emails \(email_options\) |
171+
| `callback_url` | string | No | Optional URL to receive a callback with the reveal update |
172+
173+
#### Output
174+
175+
| Parameter | Type | Description |
176+
| --------- | ---- | ----------- |
177+
| `id` | number | Individual reveal ID \(use with Get Individual Reveal\) |
178+
| `status` | string | Reveal status: queued, resolving, finished, or failed |
179+
| `is_complete` | boolean | Whether the reveal has completed |
180+
181+
### `wiza_get_individual_reveal`
182+
183+
Retrieve the status and enriched data for an individual reveal by ID
184+
185+
#### Input
186+
187+
| Parameter | Type | Required | Description |
188+
| --------- | ---- | -------- | ----------- |
189+
| `apiKey` | string | Yes | Wiza API key |
190+
| `id` | string | Yes | Individual reveal ID returned from Start Individual Reveal |
191+
192+
#### Output
193+
194+
| Parameter | Type | Description |
195+
| --------- | ---- | ----------- |
196+
| `id` | number | Reveal ID |
197+
| `status` | string | queued \| resolving \| finished \| failed |
198+
| `is_complete` | boolean | Whether the reveal has completed |
199+
| `name` | string | Full name |
200+
| `company` | string | Company name |
201+
| `enrichment_level` | string | Enrichment level used |
202+
| `linkedin_profile_url` | string | LinkedIn URL |
203+
| `title` | string | Job title |
204+
| `location` | string | Location |
205+
| `email` | string | Primary email |
206+
| `email_type` | string | Email type |
207+
| `email_status` | string | valid \| risky \| unfound |
208+
| `emails` | array | All emails found |
209+
| `mobile_phone` | string | Mobile phone |
210+
| `phone_number` | string | Direct/office phone |
211+
| `phone_status` | string | found \| unfound |
212+
| `phones` | array | All phones found |
213+
| `company_size` | number | Employee count |
214+
| `company_size_range` | string | Headcount range |
215+
| `company_type` | string | Company type |
216+
| `company_domain` | string | Company domain |
217+
| `company_locality` | string | City |
218+
| `company_region` | string | State/region |
219+
| `company_country` | string | Country |
220+
| `company_street` | string | Street |
221+
| `company_postal_code` | string | Postal code |
222+
| `company_founded` | number | Year founded |
223+
| `company_funding` | string | Funding total |
224+
| `company_revenue` | string | Revenue |
225+
| `company_industry` | string | Industry |
226+
| `company_subindustry` | string | Subindustry |
227+
| `company_linkedin` | string | Company LinkedIn URL |
228+
| `company_location` | string | Full company location |
229+
| `company_description` | string | Company description |
230+
| `credits` | json | Remaining credits balance |
231+
232+
### `wiza_get_credits`
233+
234+
Retrieve the remaining credits on your Wiza account
235+
236+
#### Input
237+
238+
| Parameter | Type | Required | Description |
239+
| --------- | ---- | -------- | ----------- |
240+
| `apiKey` | string | Yes | Wiza API key |
241+
242+
#### Output
243+
244+
| Parameter | Type | Description |
245+
| --------- | ---- | ----------- |
246+
| `email_credits` | json | Remaining email credits \(number or "unlimited"\) |
247+
| `phone_credits` | json | Remaining phone credits \(number or "unlimited"\) |
248+
| `export_credits` | number | Remaining export credits |
249+
| `api_credits` | number | Remaining API credits |
250+
251+

apps/sim/app/(landing)/integrations/data/icon-mapping.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ import {
199199
WebflowIcon,
200200
WhatsAppIcon,
201201
WikipediaIcon,
202+
WizaIcon,
202203
WordpressIcon,
203204
WorkdayIcon,
204205
xIcon,
@@ -407,6 +408,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
407408
webflow: WebflowIcon,
408409
whatsapp: WhatsAppIcon,
409410
wikipedia: WikipediaIcon,
411+
wiza: WizaIcon,
410412
wordpress: WordpressIcon,
411413
workday: WorkdayIcon,
412414
x: xIcon,

apps/sim/app/(landing)/integrations/data/integrations.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14330,6 +14330,45 @@
1433014330
"integrationTypes": ["search", "documents"],
1433114331
"tags": ["knowledge-base", "web-scraping"]
1433214332
},
14333+
{
14334+
"type": "wiza",
14335+
"slug": "wiza",
14336+
"name": "Wiza",
14337+
"description": "Find, enrich, and verify B2B contact data with Wiza",
14338+
"longDescription": "Integrates Wiza into the workflow. Search prospects, enrich companies, reveal verified emails and phone numbers for individuals, and check your account credit balance.",
14339+
"bgColor": "#9284BC",
14340+
"iconName": "WizaIcon",
14341+
"docsUrl": "https://docs.sim.ai/tools/wiza",
14342+
"operations": [
14343+
{
14344+
"name": "Prospect Search",
14345+
"description": "Search Wiza"
14346+
},
14347+
{
14348+
"name": "Company Enrichment",
14349+
"description": "Enrich a company by name, domain, LinkedIn ID, or LinkedIn slug with detailed firmographic data"
14350+
},
14351+
{
14352+
"name": "Start Individual Reveal",
14353+
"description": "Start an individual reveal to enrich a contact via LinkedIn URL, name+company, or email"
14354+
},
14355+
{
14356+
"name": "Get Individual Reveal",
14357+
"description": "Retrieve the status and enriched data for an individual reveal by ID"
14358+
},
14359+
{
14360+
"name": "Get Credits",
14361+
"description": "Retrieve the remaining credits on your Wiza account"
14362+
}
14363+
],
14364+
"operationCount": 5,
14365+
"triggers": [],
14366+
"triggerCount": 0,
14367+
"authType": "api-key",
14368+
"category": "tools",
14369+
"integrationTypes": ["sales"],
14370+
"tags": ["enrichment", "sales-engagement"]
14371+
},
1433314372
{
1433414373
"type": "wordpress",
1433514374
"slug": "wordpress",

0 commit comments

Comments
 (0)