@graph8/sdk 0.308.1 → 0.358.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -0
- package/blocks/README.md +32 -0
- package/blocks/_foundation/README.md +78 -0
- package/blocks/_foundation/block.json +79 -0
- package/blocks/_foundation/components/api-error.tsx +62 -0
- package/blocks/_foundation/components/confirm-spend-dialog.tsx +142 -0
- package/blocks/_foundation/components/empty-state.tsx +24 -0
- package/blocks/_foundation/hooks/use-g8-mutation.ts +88 -0
- package/blocks/_foundation/hooks/use-g8-query.ts +87 -0
- package/blocks/_foundation/hooks/use-job-poll.ts +130 -0
- package/blocks/_foundation/hooks/use-paginated.ts +105 -0
- package/blocks/_foundation/lib/g8-client.ts +128 -0
- package/blocks/_foundation/recipes/verify-proxy-key.ts +18 -0
- package/blocks/_foundation/server/proxy.ts +233 -0
- package/blocks/_foundation/server/route.ts +30 -0
- package/blocks/agents/README.md +133 -0
- package/blocks/agents/block.json +223 -0
- package/blocks/agents/components/agent-builder.tsx +199 -0
- package/blocks/agents/components/agent-knowledge-panel.tsx +144 -0
- package/blocks/agents/components/agent-runs.tsx +175 -0
- package/blocks/agents/components/agent-skills-panel.tsx +126 -0
- package/blocks/agents/components/agent-test-console.tsx +175 -0
- package/blocks/agents/lib/agent-types.ts +114 -0
- package/blocks/agents/recipes/create-agent-and-attach-skill.ts +50 -0
- package/blocks/agents/recipes/run-and-follow-agent-run.ts +46 -0
- package/blocks/agents/recipes/test-agent-before-activating.ts +36 -0
- package/blocks/analytics/README.md +73 -0
- package/blocks/analytics/block.json +178 -0
- package/blocks/analytics/components/funnel-chart.tsx +79 -0
- package/blocks/analytics/components/kpi-tiles.tsx +74 -0
- package/blocks/analytics/components/leaderboard.tsx +86 -0
- package/blocks/analytics/components/report-builder.tsx +200 -0
- package/blocks/analytics/hooks/use-report.ts +26 -0
- package/blocks/analytics/lib/analytics-types.ts +108 -0
- package/blocks/analytics/lib/use-debounced.ts +16 -0
- package/blocks/analytics/recipes/01-weekly-outbound-report.ts +32 -0
- package/blocks/analytics/recipes/02-revenue-snapshot.ts +22 -0
- package/blocks/analytics/recipes/03-saved-report.ts +30 -0
- package/blocks/appointments/README.md +80 -0
- package/blocks/appointments/block.json +218 -0
- package/blocks/appointments/components/availability-editor.tsx +192 -0
- package/blocks/appointments/components/booking-page.tsx +154 -0
- package/blocks/appointments/components/event-type-editor.tsx +214 -0
- package/blocks/appointments/components/meeting-detail.tsx +147 -0
- package/blocks/appointments/components/meeting-list.tsx +148 -0
- package/blocks/appointments/hooks/use-available-slots.ts +29 -0
- package/blocks/appointments/hooks/use-schedules.ts +18 -0
- package/blocks/appointments/lib/appointments-types.ts +159 -0
- package/blocks/appointments/lib/idempotency.ts +30 -0
- package/blocks/appointments/recipes/01-create-event-type-and-hours.ts +27 -0
- package/blocks/appointments/recipes/02-find-slots-and-book.ts +34 -0
- package/blocks/appointments/recipes/03-bookings-digest.ts +22 -0
- package/blocks/appointments/recipes/04-calendar-invite.ts +21 -0
- package/blocks/block.schema.json +130 -0
- package/blocks/block.types.ts +109 -0
- package/blocks/campaigns/README.md +118 -0
- package/blocks/campaigns/block.json +361 -0
- package/blocks/campaigns/components/campaign-assets.tsx +180 -0
- package/blocks/campaigns/components/campaign-audience-step.tsx +91 -0
- package/blocks/campaigns/components/campaign-launch-step.tsx +147 -0
- package/blocks/campaigns/components/campaign-list.tsx +120 -0
- package/blocks/campaigns/components/campaign-metrics.tsx +93 -0
- package/blocks/campaigns/components/campaign-select.tsx +52 -0
- package/blocks/campaigns/components/campaign-sequence-step.tsx +158 -0
- package/blocks/campaigns/components/campaign-wizard.tsx +238 -0
- package/blocks/campaigns/components/form-field.tsx +29 -0
- package/blocks/campaigns/components/icp-editor.tsx +230 -0
- package/blocks/campaigns/components/persona-editor.tsx +210 -0
- package/blocks/campaigns/hooks/use-company-profile.ts +34 -0
- package/blocks/campaigns/lib/campaigns-utils.ts +155 -0
- package/blocks/campaigns/recipes/attach-audience-and-launch.ts +33 -0
- package/blocks/campaigns/recipes/campaign-report.ts +22 -0
- package/blocks/campaigns/recipes/generate-ideas-and-create-campaign.ts +51 -0
- package/blocks/campaigns/recipes/set-up-icp-and-personas.ts +37 -0
- package/blocks/coach/README.md +93 -0
- package/blocks/coach/block.json +125 -0
- package/blocks/coach/components/call-scorecard.tsx +126 -0
- package/blocks/coach/components/coaching-feed.tsx +140 -0
- package/blocks/coach/lib/coach-types.ts +116 -0
- package/blocks/coach/recipes/read-a-scorecard.ts +27 -0
- package/blocks/coach/recipes/weekly-coaching-digest.ts +53 -0
- package/blocks/copilot/README.md +99 -0
- package/blocks/copilot/block.json +151 -0
- package/blocks/copilot/components/copilot-memory.tsx +87 -0
- package/blocks/copilot/components/copilot-panel.tsx +189 -0
- package/blocks/copilot/components/copilot-team-chat.tsx +111 -0
- package/blocks/copilot/lib/copilot-types.ts +111 -0
- package/blocks/copilot/recipes/ask-the-copilot.ts +35 -0
- package/blocks/copilot/recipes/post-in-a-work-channel.ts +33 -0
- package/blocks/copilot/recipes/remember-and-recall.ts +19 -0
- package/blocks/crm/README.md +122 -0
- package/blocks/crm/block.json +378 -0
- package/blocks/crm/components/activity-timeline.tsx +99 -0
- package/blocks/crm/components/company-detail.tsx +118 -0
- package/blocks/crm/components/company-table.tsx +173 -0
- package/blocks/crm/components/contact-detail.tsx +135 -0
- package/blocks/crm/components/contact-table.tsx +217 -0
- package/blocks/crm/components/dedupe-review.tsx +164 -0
- package/blocks/crm/components/import-wizard.tsx +193 -0
- package/blocks/crm/components/notes-panel.tsx +112 -0
- package/blocks/crm/components/record-form.tsx +191 -0
- package/blocks/crm/components/task-list.tsx +107 -0
- package/blocks/crm/hooks/use-custom-fields.ts +18 -0
- package/blocks/crm/hooks/use-debounced.ts +13 -0
- package/blocks/crm/hooks/use-page-query.ts +52 -0
- package/blocks/crm/lib/crm-types.ts +136 -0
- package/blocks/crm/recipes/custom-fields-and-values.ts +28 -0
- package/blocks/crm/recipes/dedupe-and-merge.ts +30 -0
- package/blocks/crm/recipes/notes-tasks-and-activity.ts +23 -0
- package/blocks/crm/recipes/upsert-contact-with-company.ts +33 -0
- package/blocks/deals/README.md +78 -0
- package/blocks/deals/block.json +198 -0
- package/blocks/deals/components/deal-detail.tsx +134 -0
- package/blocks/deals/components/forecast-view.tsx +112 -0
- package/blocks/deals/components/pipeline-board.tsx +142 -0
- package/blocks/deals/components/stage-editor.tsx +96 -0
- package/blocks/deals/hooks/use-pipeline-deals.ts +67 -0
- package/blocks/deals/hooks/use-pipelines.ts +19 -0
- package/blocks/deals/lib/deals-types.ts +128 -0
- package/blocks/deals/recipes/01-create-deal-and-advance.ts +32 -0
- package/blocks/deals/recipes/02-pipeline-report.ts +35 -0
- package/blocks/deals/recipes/03-stale-deals-sweep.ts +20 -0
- package/blocks/dialer/README.md +114 -0
- package/blocks/dialer/block.json +260 -0
- package/blocks/dialer/components/call-log.tsx +78 -0
- package/blocks/dialer/components/call-queue.tsx +188 -0
- package/blocks/dialer/components/dialer-workspace.tsx +47 -0
- package/blocks/dialer/components/disposition-panel.tsx +75 -0
- package/blocks/dialer/components/live-calls-table.tsx +107 -0
- package/blocks/dialer/components/session-start-form.tsx +111 -0
- package/blocks/dialer/components/softphone.tsx +122 -0
- package/blocks/dialer/components/transcript-viewer.tsx +82 -0
- package/blocks/dialer/hooks/use-dialer-numbers.ts +19 -0
- package/blocks/dialer/hooks/use-dialer-session.ts +68 -0
- package/blocks/dialer/hooks/use-dispositions.ts +29 -0
- package/blocks/dialer/lib/dialer-types.ts +158 -0
- package/blocks/dialer/lib/softphone-transport.ts +67 -0
- package/blocks/dialer/lib/twilio-transport.ts +74 -0
- package/blocks/dialer/recipes/01-create-session-and-dial.ts +39 -0
- package/blocks/dialer/recipes/02-disposition-calls.ts +26 -0
- package/blocks/dialer/recipes/03-review-a-call.ts +23 -0
- package/blocks/enrichment/README.md +105 -0
- package/blocks/enrichment/block.json +204 -0
- package/blocks/enrichment/components/bulk-enrich-panel.tsx +205 -0
- package/blocks/enrichment/components/email-verify-badge.tsx +82 -0
- package/blocks/enrichment/components/enrich-button.tsx +136 -0
- package/blocks/enrichment/components/waterfall-config.tsx +127 -0
- package/blocks/enrichment/hooks/use-providers.ts +18 -0
- package/blocks/enrichment/lib/enrichment-types.ts +104 -0
- package/blocks/enrichment/recipes/bulk-enrich-and-poll.ts +41 -0
- package/blocks/enrichment/recipes/lookup-and-verify.ts +25 -0
- package/blocks/enrichment/recipes/waterfall-pipeline.ts +26 -0
- package/blocks/forms/README.md +112 -0
- package/blocks/forms/block.json +200 -0
- package/blocks/forms/components/form-builder.tsx +150 -0
- package/blocks/forms/components/form-embed.tsx +103 -0
- package/blocks/forms/components/form-mapping-editor.tsx +125 -0
- package/blocks/forms/components/site-audit-panel.tsx +73 -0
- package/blocks/forms/components/submissions-table.tsx +158 -0
- package/blocks/forms/lib/form-types.ts +127 -0
- package/blocks/forms/recipes/install-snippet-and-form.ts +21 -0
- package/blocks/forms/recipes/retry-failed-deliveries.ts +26 -0
- package/blocks/forms/recipes/route-form-to-list.ts +44 -0
- package/blocks/inbox/README.md +72 -0
- package/blocks/inbox/block.json +194 -0
- package/blocks/inbox/components/inbox-list.tsx +156 -0
- package/blocks/inbox/components/inbox-screen.tsx +49 -0
- package/blocks/inbox/components/reply-composer.tsx +183 -0
- package/blocks/inbox/components/tag-and-assign.tsx +189 -0
- package/blocks/inbox/components/thread-badge.tsx +17 -0
- package/blocks/inbox/components/thread-view.tsx +108 -0
- package/blocks/inbox/hooks/use-inbox-thread.ts +24 -0
- package/blocks/inbox/hooks/use-inbox-threads.ts +40 -0
- package/blocks/inbox/lib/idempotency.ts +30 -0
- package/blocks/inbox/lib/inbox-types.ts +100 -0
- package/blocks/inbox/recipes/01-triage-and-reply.ts +43 -0
- package/blocks/inbox/recipes/02-tag-and-assign.ts +31 -0
- package/blocks/inbox/recipes/03-hot-contacts-digest.ts +16 -0
- package/blocks/integrations/README.md +75 -0
- package/blocks/integrations/block.json +172 -0
- package/blocks/integrations/components/integration-list.tsx +165 -0
- package/blocks/integrations/components/sync-status.tsx +223 -0
- package/blocks/integrations/components/webhook-manager.tsx +300 -0
- package/blocks/integrations/lib/integrations-utils.ts +62 -0
- package/blocks/integrations/recipes/crm-sync-health.ts +19 -0
- package/blocks/integrations/recipes/push-contacts-to-crm.ts +20 -0
- package/blocks/integrations/recipes/register-webhook.ts +18 -0
- package/blocks/integrations/recipes/verify-webhook-route.ts +33 -0
- package/blocks/intent/README.md +57 -0
- package/blocks/intent/block.json +138 -0
- package/blocks/intent/components/account-intent-score.tsx +91 -0
- package/blocks/intent/components/intent-feed.tsx +215 -0
- package/blocks/intent/components/intent-keyword-manager.tsx +331 -0
- package/blocks/intent/hooks/use-account-intent.ts +46 -0
- package/blocks/intent/lib/intent-utils.ts +95 -0
- package/blocks/intent/recipes/rank-intent-accounts.ts +36 -0
- package/blocks/intent/recipes/track-competitor-domain.ts +23 -0
- package/blocks/intent/recipes/who-visited-url.ts +18 -0
- package/blocks/lifecycle/README.md +79 -0
- package/blocks/lifecycle/block.json +198 -0
- package/blocks/lifecycle/components/churn-list.tsx +92 -0
- package/blocks/lifecycle/components/customer-table.tsx +119 -0
- package/blocks/lifecycle/components/lead-queue.tsx +127 -0
- package/blocks/lifecycle/components/lifecycle-board.tsx +102 -0
- package/blocks/lifecycle/components/stage-move-dialog.tsx +75 -0
- package/blocks/lifecycle/hooks/use-debounced.ts +13 -0
- package/blocks/lifecycle/hooks/use-lifecycle-stages.ts +27 -0
- package/blocks/lifecycle/lib/lifecycle.ts +99 -0
- package/blocks/lifecycle/recipes/customer-brief.ts +23 -0
- package/blocks/lifecycle/recipes/move-company-stage.ts +17 -0
- package/blocks/lifecycle/recipes/read-lifecycle-board.ts +21 -0
- package/blocks/lifecycle/recipes/unlock-stage-contacts.ts +25 -0
- package/blocks/lists/README.md +96 -0
- package/blocks/lists/block.json +166 -0
- package/blocks/lists/components/add-to-list-button.tsx +111 -0
- package/blocks/lists/components/list-picker.tsx +94 -0
- package/blocks/lists/components/list-table.tsx +160 -0
- package/blocks/lists/components/suppression-manager.tsx +153 -0
- package/blocks/lists/recipes/create-list-and-add-contacts.ts +35 -0
- package/blocks/lists/recipes/refresh-and-check-lists.ts +21 -0
- package/blocks/lists/recipes/suppress-and-reinstate.ts +30 -0
- package/blocks/mailboxes/README.md +71 -0
- package/blocks/mailboxes/block.json +187 -0
- package/blocks/mailboxes/components/connect-mailbox.tsx +284 -0
- package/blocks/mailboxes/components/domain-purchase.tsx +271 -0
- package/blocks/mailboxes/components/mailbox-list.tsx +185 -0
- package/blocks/mailboxes/components/warmup-health.tsx +232 -0
- package/blocks/mailboxes/lib/mailboxes-utils.ts +69 -0
- package/blocks/mailboxes/recipes/buy-domain-and-mailboxes.ts +64 -0
- package/blocks/mailboxes/recipes/connect-imap-mailbox.ts +38 -0
- package/blocks/mailboxes/recipes/is-it-safe-to-send.ts +17 -0
- package/blocks/mailboxes/recipes/warmup-report.ts +31 -0
- package/blocks/newsletter/README.md +122 -0
- package/blocks/newsletter/block.json +224 -0
- package/blocks/newsletter/components/issue-form.tsx +124 -0
- package/blocks/newsletter/components/issue-scheduler.tsx +152 -0
- package/blocks/newsletter/components/newsletter-editor.tsx +131 -0
- package/blocks/newsletter/components/newsletter-stats.tsx +93 -0
- package/blocks/newsletter/components/subscriber-table.tsx +173 -0
- package/blocks/newsletter/lib/newsletter-types.ts +97 -0
- package/blocks/newsletter/recipes/create-newsletter-and-draft-issue.ts +27 -0
- package/blocks/newsletter/recipes/import-audience-and-send.ts +43 -0
- package/blocks/newsletter/recipes/issue-performance-report.ts +26 -0
- package/blocks/nurture/README.md +110 -0
- package/blocks/nurture/block.json +191 -0
- package/blocks/nurture/components/nurture-builder.tsx +114 -0
- package/blocks/nurture/components/nurture-enroll.tsx +107 -0
- package/blocks/nurture/components/nurture-form.tsx +120 -0
- package/blocks/nurture/components/nurture-stats.tsx +81 -0
- package/blocks/nurture/lib/nurture-types.ts +109 -0
- package/blocks/nurture/recipes/create-a-nurture.ts +34 -0
- package/blocks/nurture/recipes/enroll-contacts-and-launch.ts +24 -0
- package/blocks/nurture/recipes/nurture-health-check.ts +28 -0
- package/blocks/objects/README.md +120 -0
- package/blocks/objects/block.json +243 -0
- package/blocks/objects/components/attribute-field-input.tsx +82 -0
- package/blocks/objects/components/attribute-form-dialog.tsx +159 -0
- package/blocks/objects/components/object-not-found.tsx +34 -0
- package/blocks/objects/components/object-record-detail.tsx +143 -0
- package/blocks/objects/components/object-schema-editor.tsx +197 -0
- package/blocks/objects/components/object-table.tsx +130 -0
- package/blocks/objects/components/record-form-dialog.tsx +112 -0
- package/blocks/objects/components/record-roles-panel.tsx +106 -0
- package/blocks/objects/hooks/use-object-schema.ts +36 -0
- package/blocks/objects/lib/object-types.ts +214 -0
- package/blocks/objects/recipes/define-object-and-add-records.ts +24 -0
- package/blocks/objects/recipes/update-audit-and-archive-records.ts +39 -0
- package/blocks/objects/recipes/upsert-records-from-your-system.ts +30 -0
- package/blocks/pages/README.md +104 -0
- package/blocks/pages/block.json +223 -0
- package/blocks/pages/components/brand-kit-editor.tsx +152 -0
- package/blocks/pages/components/content-library.tsx +163 -0
- package/blocks/pages/components/page-editor.tsx +253 -0
- package/blocks/pages/components/page-list.tsx +159 -0
- package/blocks/pages/components/seo-report.tsx +159 -0
- package/blocks/pages/lib/studio.ts +77 -0
- package/blocks/pages/recipes/audit-site-seo.ts +28 -0
- package/blocks/pages/recipes/create-and-publish-page.ts +26 -0
- package/blocks/pages/recipes/edit-page-section.ts +25 -0
- package/blocks/pages/recipes/refresh-brand-kit.ts +22 -0
- package/blocks/quotes/README.md +79 -0
- package/blocks/quotes/block.json +183 -0
- package/blocks/quotes/components/product-picker.tsx +80 -0
- package/blocks/quotes/components/quote-builder.tsx +195 -0
- package/blocks/quotes/components/quote-list.tsx +79 -0
- package/blocks/quotes/components/quote-viewer.tsx +135 -0
- package/blocks/quotes/components/signature-status.tsx +77 -0
- package/blocks/quotes/hooks/use-debounced.ts +13 -0
- package/blocks/quotes/lib/quotes.ts +142 -0
- package/blocks/quotes/recipes/create-and-send-quote.ts +44 -0
- package/blocks/quotes/recipes/revise-sent-quote.ts +18 -0
- package/blocks/quotes/recipes/track-quote-signature.ts +22 -0
- package/blocks/radar/README.md +106 -0
- package/blocks/radar/block.json +189 -0
- package/blocks/radar/components/competitor-battle-card.tsx +53 -0
- package/blocks/radar/components/competitor-tracker.tsx +158 -0
- package/blocks/radar/components/radar-overview.tsx +67 -0
- package/blocks/radar/components/radar-report.tsx +86 -0
- package/blocks/radar/hooks/use-competitors.ts +23 -0
- package/blocks/radar/lib/radar-types.ts +124 -0
- package/blocks/radar/recipes/battle-card.ts +28 -0
- package/blocks/radar/recipes/deep-dive-report.ts +32 -0
- package/blocks/radar/recipes/marketing-snapshot.ts +18 -0
- package/blocks/radar/recipes/track-and-scan.ts +39 -0
- package/blocks/search/README.md +129 -0
- package/blocks/search/block.json +185 -0
- package/blocks/search/components/filter-builder.tsx +149 -0
- package/blocks/search/components/prospect-results.tsx +175 -0
- package/blocks/search/components/save-to-list-dialog.tsx +135 -0
- package/blocks/search/components/saved-searches.tsx +95 -0
- package/blocks/search/hooks/use-filter-options.ts +41 -0
- package/blocks/search/lib/search-types.ts +149 -0
- package/blocks/search/recipes/explore-filter-values.ts +27 -0
- package/blocks/search/recipes/saved-searches.ts +34 -0
- package/blocks/search/recipes/search-and-save-to-list.ts +37 -0
- package/blocks/sequencer/README.md +87 -0
- package/blocks/sequencer/block.json +214 -0
- package/blocks/sequencer/components/enroll-dialog.tsx +93 -0
- package/blocks/sequencer/components/sequence-builder.tsx +306 -0
- package/blocks/sequencer/components/sequence-list.tsx +200 -0
- package/blocks/sequencer/components/sequence-stats.tsx +256 -0
- package/blocks/sequencer/components/step-editor.tsx +213 -0
- package/blocks/sequencer/lib/sequencer-utils.ts +168 -0
- package/blocks/sequencer/recipes/create-multichannel-sequence.ts +51 -0
- package/blocks/sequencer/recipes/launch-and-enroll.ts +44 -0
- package/blocks/sequencer/recipes/pause-when-unsafe.ts +30 -0
- package/blocks/sequencer/recipes/sequence-report.ts +22 -0
- package/blocks/social-ads/README.md +128 -0
- package/blocks/social-ads/block.json +256 -0
- package/blocks/social-ads/components/ad-campaign-list.tsx +136 -0
- package/blocks/social-ads/components/audience-sync.tsx +150 -0
- package/blocks/social-ads/components/creative-gallery.tsx +121 -0
- package/blocks/social-ads/components/post-composer.tsx +122 -0
- package/blocks/social-ads/components/social-post-list.tsx +116 -0
- package/blocks/social-ads/hooks/use-social-accounts.ts +16 -0
- package/blocks/social-ads/lib/social-ads-types.ts +167 -0
- package/blocks/social-ads/recipes/creative-to-gallery.ts +41 -0
- package/blocks/social-ads/recipes/schedule-post.ts +51 -0
- package/blocks/social-ads/recipes/sync-audience-and-launch.ts +41 -0
- package/blocks/visitors/README.md +56 -0
- package/blocks/visitors/block.json +139 -0
- package/blocks/visitors/components/snippet-install.tsx +169 -0
- package/blocks/visitors/components/traffic-chart.tsx +156 -0
- package/blocks/visitors/components/visitor-company-card.tsx +92 -0
- package/blocks/visitors/components/visitor-feed.tsx +157 -0
- package/blocks/visitors/lib/visitors-utils.ts +78 -0
- package/blocks/visitors/recipes/check-snippet-installed.ts +24 -0
- package/blocks/visitors/recipes/recent-company-visits.ts +27 -0
- package/blocks/visitors/recipes/traffic-summary.ts +24 -0
- package/blocks/webchat/README.md +87 -0
- package/blocks/webchat/block.json +134 -0
- package/blocks/webchat/components/chat-widget-config.tsx +160 -0
- package/blocks/webchat/components/conversation-list.tsx +74 -0
- package/blocks/webchat/lib/webchat-types.ts +83 -0
- package/blocks/webchat/recipes/create-bot-and-style-widget.ts +24 -0
- package/blocks/webchat/recipes/list-chat-visitors.ts +24 -0
- package/blocks/workbench/README.md +135 -0
- package/blocks/workbench/block.json +259 -0
- package/blocks/workbench/components/column-recipe-editor.tsx +183 -0
- package/blocks/workbench/components/run-progress.tsx +132 -0
- package/blocks/workbench/components/workbench-add-rows.tsx +100 -0
- package/blocks/workbench/components/workbench-grid.tsx +159 -0
- package/blocks/workbench/components/workbench-row-actions.tsx +102 -0
- package/blocks/workbench/components/workbench-table-list.tsx +105 -0
- package/blocks/workbench/hooks/use-workbench-table.ts +30 -0
- package/blocks/workbench/lib/waterfall-presets.ts +119 -0
- package/blocks/workbench/lib/workbench-types.ts +191 -0
- package/blocks/workbench/recipes/build-enriched-table.ts +65 -0
- package/blocks/workbench/recipes/import-from-search.ts +42 -0
- package/blocks/workbench/recipes/scrape-into-table.ts +36 -0
- package/blocks/workbench/recipes/waterfall-column.ts +55 -0
- package/blocks/workflows/README.md +100 -0
- package/blocks/workflows/block.json +188 -0
- package/blocks/workflows/components/run-history.tsx +136 -0
- package/blocks/workflows/components/trigger-config.tsx +134 -0
- package/blocks/workflows/components/workflow-editor.tsx +142 -0
- package/blocks/workflows/components/workflow-list.tsx +153 -0
- package/blocks/workflows/hooks/use-workflow.ts +51 -0
- package/blocks/workflows/lib/graph.ts +187 -0
- package/blocks/workflows/recipes/create-workflow.ts +35 -0
- package/blocks/workflows/recipes/find-failed-runs.ts +15 -0
- package/blocks/workflows/recipes/run-workflow-and-wait.ts +32 -0
- package/blocks/workflows/recipes/set-trigger.ts +22 -0
- package/dist/cli.js +5330 -29
- package/dist/index.browser.js +7740 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.browser.mjs +7717 -0
- package/dist/index.browser.mjs.map +1 -0
- package/dist/index.d.mts +1462 -23
- package/dist/index.d.ts +1462 -23
- package/dist/index.js +42 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +42 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.browser.js +7598 -0
- package/dist/react.browser.js.map +1 -0
- package/dist/react.browser.mjs +7568 -0
- package/dist/react.browser.mjs.map +1 -0
- package/dist/react.d.mts +1362 -20
- package/dist/react.d.ts +1362 -20
- package/dist/react.js +41 -2
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +41 -2
- package/dist/react.mjs.map +1 -1
- package/dist/types/agentSetup.d.ts +6 -6
- package/dist/types/blocks/add.d.ts +53 -0
- package/dist/types/blocks/create.d.ts +46 -0
- package/dist/types/blocks/doctor.d.ts +26 -0
- package/dist/types/blocks/registry.d.ts +134 -0
- package/dist/types/cli.d.ts +16 -0
- package/dist/types/core.d.ts +1 -1
- package/dist/types/crypto-browser.d.ts +2 -0
- package/dist/types/crypto-node.d.ts +6 -0
- package/dist/types/react.d.ts +1 -1
- package/dist/types/version.d.ts +2 -2
- package/dist/types/webhooks.d.ts +2 -2
- package/dist/ui/index.d.mts +54 -0
- package/dist/ui/index.d.ts +54 -0
- package/dist/ui/index.js +105 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/index.mjs +44 -0
- package/dist/ui/index.mjs.map +1 -0
- package/dist/ui/lib/compose-refs.d.mts +19 -0
- package/dist/ui/lib/compose-refs.d.ts +19 -0
- package/dist/ui/lib/compose-refs.js +76 -0
- package/dist/ui/lib/compose-refs.js.map +1 -0
- package/dist/ui/lib/compose-refs.mjs +41 -0
- package/dist/ui/lib/compose-refs.mjs.map +1 -0
- package/dist/ui/lib/use-mobile.d.mts +4 -0
- package/dist/ui/lib/use-mobile.d.ts +4 -0
- package/dist/ui/lib/use-mobile.js +57 -0
- package/dist/ui/lib/use-mobile.js.map +1 -0
- package/dist/ui/lib/use-mobile.mjs +22 -0
- package/dist/ui/lib/use-mobile.mjs.map +1 -0
- package/dist/ui/lib/utils.d.mts +10 -0
- package/dist/ui/lib/utils.d.ts +10 -0
- package/dist/ui/lib/utils.js +33 -0
- package/dist/ui/lib/utils.js.map +1 -0
- package/dist/ui/lib/utils.mjs +9 -0
- package/dist/ui/lib/utils.mjs.map +1 -0
- package/dist/ui/primitives/alert-dialog.d.mts +22 -0
- package/dist/ui/primitives/alert-dialog.d.ts +22 -0
- package/dist/ui/primitives/alert-dialog.js +163 -0
- package/dist/ui/primitives/alert-dialog.js.map +1 -0
- package/dist/ui/primitives/alert-dialog.mjs +119 -0
- package/dist/ui/primitives/alert-dialog.mjs.map +1 -0
- package/dist/ui/primitives/avatar.d.mts +8 -0
- package/dist/ui/primitives/avatar.d.ts +8 -0
- package/dist/ui/primitives/avatar.js +91 -0
- package/dist/ui/primitives/avatar.js.map +1 -0
- package/dist/ui/primitives/avatar.mjs +55 -0
- package/dist/ui/primitives/avatar.mjs.map +1 -0
- package/dist/ui/primitives/breadcrumb.d.mts +13 -0
- package/dist/ui/primitives/breadcrumb.d.ts +13 -0
- package/dist/ui/primitives/breadcrumb.js +127 -0
- package/dist/ui/primitives/breadcrumb.js.map +1 -0
- package/dist/ui/primitives/breadcrumb.mjs +97 -0
- package/dist/ui/primitives/breadcrumb.mjs.map +1 -0
- package/dist/ui/primitives/button.d.mts +15 -0
- package/dist/ui/primitives/button.d.ts +15 -0
- package/dist/ui/primitives/button.js +91 -0
- package/dist/ui/primitives/button.js.map +1 -0
- package/dist/ui/primitives/button.mjs +56 -0
- package/dist/ui/primitives/button.mjs.map +1 -0
- package/dist/ui/primitives/card.d.mts +10 -0
- package/dist/ui/primitives/card.d.ts +10 -0
- package/dist/ui/primitives/card.js +101 -0
- package/dist/ui/primitives/card.js.map +1 -0
- package/dist/ui/primitives/card.mjs +62 -0
- package/dist/ui/primitives/card.mjs.map +1 -0
- package/dist/ui/primitives/carousel.d.mts +45 -0
- package/dist/ui/primitives/carousel.d.ts +45 -0
- package/dist/ui/primitives/carousel.js +300 -0
- package/dist/ui/primitives/carousel.js.map +1 -0
- package/dist/ui/primitives/carousel.mjs +261 -0
- package/dist/ui/primitives/carousel.mjs.map +1 -0
- package/dist/ui/primitives/chart.d.mts +68 -0
- package/dist/ui/primitives/chart.d.ts +68 -0
- package/dist/ui/primitives/chart.js +280 -0
- package/dist/ui/primitives/chart.js.map +1 -0
- package/dist/ui/primitives/chart.mjs +241 -0
- package/dist/ui/primitives/chart.mjs.map +1 -0
- package/dist/ui/primitives/collapsible.d.mts +8 -0
- package/dist/ui/primitives/collapsible.d.ts +8 -0
- package/dist/ui/primitives/collapsible.js +72 -0
- package/dist/ui/primitives/collapsible.js.map +1 -0
- package/dist/ui/primitives/collapsible.mjs +36 -0
- package/dist/ui/primitives/collapsible.mjs.map +1 -0
- package/dist/ui/primitives/context-menu.d.mts +29 -0
- package/dist/ui/primitives/context-menu.d.ts +29 -0
- package/dist/ui/primitives/context-menu.js +203 -0
- package/dist/ui/primitives/context-menu.js.map +1 -0
- package/dist/ui/primitives/context-menu.mjs +155 -0
- package/dist/ui/primitives/context-menu.mjs.map +1 -0
- package/dist/ui/primitives/dialog.d.mts +26 -0
- package/dist/ui/primitives/dialog.d.ts +26 -0
- package/dist/ui/primitives/dialog.js +192 -0
- package/dist/ui/primitives/dialog.js.map +1 -0
- package/dist/ui/primitives/dialog.mjs +148 -0
- package/dist/ui/primitives/dialog.mjs.map +1 -0
- package/dist/ui/primitives/drawer.d.mts +26 -0
- package/dist/ui/primitives/drawer.d.ts +26 -0
- package/dist/ui/primitives/drawer.js +146 -0
- package/dist/ui/primitives/drawer.js.map +1 -0
- package/dist/ui/primitives/drawer.mjs +103 -0
- package/dist/ui/primitives/drawer.mjs.map +1 -0
- package/dist/ui/primitives/input.d.mts +5 -0
- package/dist/ui/primitives/input.d.ts +5 -0
- package/dist/ui/primitives/input.js +46 -0
- package/dist/ui/primitives/input.js.map +1 -0
- package/dist/ui/primitives/input.mjs +22 -0
- package/dist/ui/primitives/input.mjs.map +1 -0
- package/dist/ui/primitives/item.d.mts +27 -0
- package/dist/ui/primitives/item.d.ts +27 -0
- package/dist/ui/primitives/item.js +221 -0
- package/dist/ui/primitives/item.js.map +1 -0
- package/dist/ui/primitives/item.mjs +188 -0
- package/dist/ui/primitives/item.mjs.map +1 -0
- package/dist/ui/primitives/kbd.d.mts +15 -0
- package/dist/ui/primitives/kbd.d.ts +15 -0
- package/dist/ui/primitives/kbd.js +45 -0
- package/dist/ui/primitives/kbd.js.map +1 -0
- package/dist/ui/primitives/kbd.mjs +21 -0
- package/dist/ui/primitives/kbd.mjs.map +1 -0
- package/dist/ui/primitives/label.d.mts +6 -0
- package/dist/ui/primitives/label.d.ts +6 -0
- package/dist/ui/primitives/label.js +55 -0
- package/dist/ui/primitives/label.js.map +1 -0
- package/dist/ui/primitives/label.mjs +21 -0
- package/dist/ui/primitives/label.mjs.map +1 -0
- package/dist/ui/primitives/resizable.d.mts +10 -0
- package/dist/ui/primitives/resizable.d.ts +10 -0
- package/dist/ui/primitives/resizable.js +68 -0
- package/dist/ui/primitives/resizable.js.map +1 -0
- package/dist/ui/primitives/resizable.mjs +42 -0
- package/dist/ui/primitives/resizable.mjs.map +1 -0
- package/dist/ui/primitives/save-status.d.mts +31 -0
- package/dist/ui/primitives/save-status.d.ts +31 -0
- package/dist/ui/primitives/save-status.js +150 -0
- package/dist/ui/primitives/save-status.js.map +1 -0
- package/dist/ui/primitives/save-status.mjs +126 -0
- package/dist/ui/primitives/save-status.mjs.map +1 -0
- package/dist/ui/primitives/separator.d.mts +6 -0
- package/dist/ui/primitives/separator.d.ts +6 -0
- package/dist/ui/primitives/separator.js +62 -0
- package/dist/ui/primitives/separator.js.map +1 -0
- package/dist/ui/primitives/separator.mjs +28 -0
- package/dist/ui/primitives/separator.mjs.map +1 -0
- package/dist/ui/primitives/sheet.d.mts +16 -0
- package/dist/ui/primitives/sheet.d.ts +16 -0
- package/dist/ui/primitives/sheet.js +170 -0
- package/dist/ui/primitives/sheet.js.map +1 -0
- package/dist/ui/primitives/sheet.mjs +129 -0
- package/dist/ui/primitives/sheet.mjs.map +1 -0
- package/dist/ui/primitives/sidebar.d.mts +74 -0
- package/dist/ui/primitives/sidebar.d.ts +74 -0
- package/dist/ui/primitives/sidebar.js +697 -0
- package/dist/ui/primitives/sidebar.js.map +1 -0
- package/dist/ui/primitives/sidebar.mjs +651 -0
- package/dist/ui/primitives/sidebar.mjs.map +1 -0
- package/dist/ui/primitives/skeleton.d.mts +5 -0
- package/dist/ui/primitives/skeleton.d.ts +5 -0
- package/dist/ui/primitives/skeleton.js +40 -0
- package/dist/ui/primitives/skeleton.js.map +1 -0
- package/dist/ui/primitives/skeleton.mjs +16 -0
- package/dist/ui/primitives/skeleton.mjs.map +1 -0
- package/dist/ui/primitives/slider.d.mts +20 -0
- package/dist/ui/primitives/slider.d.ts +20 -0
- package/dist/ui/primitives/slider.js +112 -0
- package/dist/ui/primitives/slider.js.map +1 -0
- package/dist/ui/primitives/slider.mjs +78 -0
- package/dist/ui/primitives/slider.mjs.map +1 -0
- package/dist/ui/primitives/sortable.d.mts +50 -0
- package/dist/ui/primitives/sortable.d.ts +50 -0
- package/dist/ui/primitives/sortable.js +456 -0
- package/dist/ui/primitives/sortable.js.map +1 -0
- package/dist/ui/primitives/sortable.mjs +435 -0
- package/dist/ui/primitives/sortable.mjs.map +1 -0
- package/dist/ui/primitives/switch.d.mts +6 -0
- package/dist/ui/primitives/switch.d.ts +6 -0
- package/dist/ui/primitives/switch.js +67 -0
- package/dist/ui/primitives/switch.js.map +1 -0
- package/dist/ui/primitives/switch.mjs +33 -0
- package/dist/ui/primitives/switch.mjs.map +1 -0
- package/dist/ui/primitives/table.d.mts +12 -0
- package/dist/ui/primitives/table.d.ts +12 -0
- package/dist/ui/primitives/table.js +130 -0
- package/dist/ui/primitives/table.js.map +1 -0
- package/dist/ui/primitives/table.mjs +89 -0
- package/dist/ui/primitives/table.mjs.map +1 -0
- package/dist/ui/primitives/tabs.d.mts +9 -0
- package/dist/ui/primitives/tabs.d.ts +9 -0
- package/dist/ui/primitives/tabs.js +86 -0
- package/dist/ui/primitives/tabs.js.map +1 -0
- package/dist/ui/primitives/tabs.mjs +49 -0
- package/dist/ui/primitives/tabs.mjs.map +1 -0
- package/dist/ui/primitives/textarea.d.mts +5 -0
- package/dist/ui/primitives/textarea.d.ts +5 -0
- package/dist/ui/primitives/textarea.js +43 -0
- package/dist/ui/primitives/textarea.js.map +1 -0
- package/dist/ui/primitives/textarea.mjs +19 -0
- package/dist/ui/primitives/textarea.mjs.map +1 -0
- package/dist/ui/primitives/tooltip.d.mts +9 -0
- package/dist/ui/primitives/tooltip.d.ts +9 -0
- package/dist/ui/primitives/tooltip.js +94 -0
- package/dist/ui/primitives/tooltip.js.map +1 -0
- package/dist/ui/primitives/tooltip.mjs +57 -0
- package/dist/ui/primitives/tooltip.mjs.map +1 -0
- package/docs/agents.md +72 -29
- package/docs/api/README.md +6 -3
- package/docs/api/appObjects.d.ts +1 -1
- package/docs/api/appObjects.md +1 -1
- package/docs/api/by-path.md +29 -0
- package/docs/api/enrichment.d.ts +18 -0
- package/docs/api/enrichment.md +25 -4
- package/docs/api/objects.d.ts +72 -5
- package/docs/api/objects.md +84 -7
- package/docs/api/processLists.d.ts +247 -0
- package/docs/api/processLists.md +409 -0
- package/docs/api/reports.d.ts +476 -0
- package/docs/api/reports.md +539 -0
- package/docs/api/revenueLifecycle.d.ts +3 -1
- package/docs/api/revenueLifecycle.md +12 -2
- package/docs/api/scheduleBuy.d.ts +12 -8
- package/docs/api/scheduleBuy.md +13 -10
- package/docs/api/seo.d.ts +407 -4
- package/docs/api/seo.md +506 -2
- package/docs/api/workflows.md +46 -2
- package/docs/api/workspaceBackup.d.ts +324 -0
- package/docs/api/workspaceBackup.md +427 -0
- package/package.json +174 -5
- package/stacks/6sense.json +46 -0
- package/stacks/README.md +20 -0
- package/stacks/apollo.json +128 -0
- package/stacks/clay.json +59 -0
- package/stacks/gong.json +72 -0
- package/stacks/hubspot.json +162 -0
- package/stacks/intercom.json +53 -0
- package/stacks/mailchimp.json +71 -0
- package/stacks/outreach.json +86 -0
- package/stacks/salesforce.json +94 -0
- package/stacks/stack.schema.json +32 -0
- package/stacks/starter.json +22 -0
- package/styles/styles.css +2 -0
- package/styles/theme.css +181 -0
- package/styles/tokens.css +284 -0
- package/templates/next-app/README.md.tmpl +35 -0
- package/templates/next-app/_pages/redirect-page.tsx.tmpl +5 -0
- package/templates/next-app/_pages/route-page.tsx.tmpl +9 -0
- package/templates/next-app/app/globals.css.tmpl +8 -0
- package/templates/next-app/app/layout.tsx.tmpl +19 -0
- package/templates/next-app/components/app-shell.tsx.tmpl +34 -0
- package/templates/next-app/dot-env.local.example.tmpl +6 -0
- package/templates/next-app/dot-gitignore.tmpl +7 -0
- package/templates/next-app/lib/nav.ts.tmpl +2 -0
- package/templates/next-app/next.config.mjs.tmpl +4 -0
- package/templates/next-app/package.json.tmpl +25 -0
- package/templates/next-app/postcss.config.mjs.tmpl +4 -0
- package/templates/next-app/tsconfig.json.tmpl +21 -0
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
4
|
+
import { cn } from "../lib/utils.mjs";
|
|
5
|
+
function TooltipProvider({
|
|
6
|
+
delayDuration = 0,
|
|
7
|
+
...props
|
|
8
|
+
}) {
|
|
9
|
+
return /* @__PURE__ */ jsx(
|
|
10
|
+
TooltipPrimitive.Provider,
|
|
11
|
+
{
|
|
12
|
+
"data-slot": "tooltip-provider",
|
|
13
|
+
delayDuration,
|
|
14
|
+
...props
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
function Tooltip({
|
|
19
|
+
...props
|
|
20
|
+
}) {
|
|
21
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
22
|
+
}
|
|
23
|
+
function TooltipTrigger({
|
|
24
|
+
...props
|
|
25
|
+
}) {
|
|
26
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
27
|
+
}
|
|
28
|
+
function TooltipContent({
|
|
29
|
+
className,
|
|
30
|
+
sideOffset = 0,
|
|
31
|
+
children,
|
|
32
|
+
...props
|
|
33
|
+
}) {
|
|
34
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
35
|
+
TooltipPrimitive.Content,
|
|
36
|
+
{
|
|
37
|
+
"data-slot": "tooltip-content",
|
|
38
|
+
sideOffset,
|
|
39
|
+
className: cn(
|
|
40
|
+
"bg-primary text-primary-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
...props,
|
|
44
|
+
children: [
|
|
45
|
+
children,
|
|
46
|
+
/* @__PURE__ */ jsx(TooltipPrimitive.Arrow, { className: "bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]" })
|
|
47
|
+
]
|
|
48
|
+
}
|
|
49
|
+
) });
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
Tooltip,
|
|
53
|
+
TooltipContent,
|
|
54
|
+
TooltipProvider,
|
|
55
|
+
TooltipTrigger
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=tooltip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/ui/primitives/tooltip.tsx"],"sourcesContent":["/*\n * @graph8/sdk/ui — GENERATED FROM frontend/components/ui/tooltip.tsx. DO NOT EDIT.\n *\n * Edit the app source, then run: npm run generate:ui --prefix sdk/js\n * Hand edits are overwritten and will fail sdk/js/tests/ui/drift.test.ts.\n */\n\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"../lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-primary text-primary-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";AAkBI,cAgCE,YAhCF;AATJ,YAAY,sBAAsB;AAElC,SAAS,UAAU;AAEnB,SAAS,gBAAgB;AAAA,EACvB,gBAAgB;AAAA,EAChB,GAAG;AACL,GAA2D;AACzD,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SACE,oBAAC,mBACC,8BAAC,iBAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO,GACxD;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,oBAAC,iBAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE,oBAAC,iBAAiB,QAAjB,EACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
package/docs/agents.md
CHANGED
|
@@ -9,8 +9,8 @@ grows every week and your training data is older than this file.
|
|
|
9
9
|
|
|
10
10
|
graph8 is a B2B go-to-market platform: CRM (contacts, companies, deals, custom objects), a 700M-person
|
|
11
11
|
data index with enrichment, intent signals, sequences and campaigns across email/SMS/LinkedIn/voice, a unified
|
|
12
|
-
inbox, meetings, workflows and more. This SDK reaches all of it: **
|
|
13
|
-
operations** in
|
|
12
|
+
inbox, meetings, workflows and more. This SDK reaches all of it: **3315 Developer API
|
|
13
|
+
operations** in 145 areas.
|
|
14
14
|
|
|
15
15
|
## 1. The short version
|
|
16
16
|
|
|
@@ -47,6 +47,7 @@ node_modules/@graph8/sdk/
|
|
|
47
47
|
docs/api/<ns>.d.ts that area's exact TypeScript types, self-contained (small: read it)
|
|
48
48
|
dist/types/<module>.d.ts one hand-written client's types, e.g. dist/types/contacts.d.ts
|
|
49
49
|
dist/index.d.ts the bundled types the compiler uses (large: search it, do not read it whole)
|
|
50
|
+
blocks/ stacks/ editable UI blocks to copy into an app (section 13)
|
|
50
51
|
```
|
|
51
52
|
|
|
52
53
|
Search the docs directly. Some good searches:
|
|
@@ -92,7 +93,7 @@ g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
|
92
93
|
| | Hand-written clients | `g8.api` (generated) |
|
|
93
94
|
|---|---|---|
|
|
94
95
|
| Example | `g8.contacts.upsert({ list_id, work_email })` | `g8.api.assertUpsert.assertContact({ body: { list_id, work_email } })` |
|
|
95
|
-
| Coverage | 289 methods, reaching 258 operations | all
|
|
96
|
+
| Coverage | 289 methods, reaching 258 operations | all 3315 operations |
|
|
96
97
|
| Returns | the unwrapped value (usually `data`) | the full envelope; read `result.data` |
|
|
97
98
|
| Arguments | positional / friendly names | `{ path?, query?, headers?, body? }`, exactly as the contract names them |
|
|
98
99
|
| Reference | [sdk-clients.md](sdk-clients.md) | [api/README.md](api/README.md) |
|
|
@@ -141,7 +142,7 @@ Hand-written modules:
|
|
|
141
142
|
| [`g8.webhooks`](sdk-clients.md#g8-webhooks) | 1 | API key |
|
|
142
143
|
| [`g8.workflows`](sdk-clients.md#g8-workflows) | 21 | API key |
|
|
143
144
|
|
|
144
|
-
`g8.api` namespaces (operation counts): `accounts` (16), `adCampaigns` (19), `adCreatives` (40), `agency` (24), `agent` (8), `agents` (65), `aiInbox` (79), `analytics` (51), `apiKeys` (6), `appDeployments` (7), `appDomains` (5), `appLogs` (2), `appObjects` (10), `appPages` (16), `appPlatformTokens` (3), `appointments` (92), `apps` (22), `assertUpsert` (6), `audienceSyncs` (8), `brandKit` (30), `bugReports` (7), `calendarInvites` (3), `campaignWorkflows` (5), `campaigns` (29), `channels` (5), `cliCampaigns` (6), `cliPipelines` (12), `clickHouse` (2), `companies` (50), `companyIntelligence` (14), `contacts` (70), `content` (41), `contentGridSkills` (6), `copilot` (39), `crmSyncs` (6), `customerSuccess` (19), `dataPipelines` (5), `deals` (48), `deliverability` (17), `desk` (71), `dialer` (46), `dialerAnalytics` (6), `documents` (35), `duplicates` (7), `eSign` (1), `eSignature` (7), `enrichment` (115), `events` (1), `fields` (8), `forms` (35), `gtmCampaigns` (22), `gtmContext` (51), `gtmDeliverability` (1), `gtmKnowledgeBase` (2), `gtmLaunchHelpers` (2), `gtmLibrary` (20), `health` (1), `imageLibrary` (14), `imports` (3), `inbox` (22), `install` (6), `installedApps` (4), `integrationStatus` (6), `integrations` (83), `intent` (16), `knowledge` (21), `knowledgeBase` (2), `landingPages` (59), `leads` (4), `library` (9), `linkedIn` (5), `linkedInOutreach` (20), `lists` (36), `logs` (1), `mailboxes` (38), `marketingIntelligence` (10), `marketplace` (142), `mcp` (1), `me` (1), `meetings` (17), `newsletter` (61), `notes` (19), `notifications` (2), `objects` (
|
|
145
|
+
`g8.api` namespaces (operation counts): `accounts` (16), `adCampaigns` (19), `adCreatives` (40), `agency` (24), `agent` (8), `agents` (65), `aiInbox` (79), `analytics` (51), `apiKeys` (6), `appDeployments` (7), `appDomains` (5), `appLogs` (2), `appObjects` (10), `appPages` (16), `appPlatformTokens` (3), `appointments` (92), `apps` (22), `assertUpsert` (6), `audienceSyncs` (8), `brandKit` (30), `bugReports` (7), `calendarInvites` (3), `campaignWorkflows` (5), `campaigns` (29), `channels` (5), `cliCampaigns` (6), `cliPipelines` (12), `clickHouse` (2), `companies` (50), `companyIntelligence` (14), `contacts` (70), `content` (41), `contentGridSkills` (6), `copilot` (39), `crmSyncs` (6), `customerSuccess` (19), `dataPipelines` (5), `deals` (48), `deliverability` (17), `desk` (71), `dialer` (46), `dialerAnalytics` (6), `documents` (35), `duplicates` (7), `eSign` (1), `eSignature` (7), `enrichment` (115), `events` (1), `fields` (8), `forms` (35), `gtmCampaigns` (22), `gtmContext` (51), `gtmDeliverability` (1), `gtmKnowledgeBase` (2), `gtmLaunchHelpers` (2), `gtmLibrary` (20), `health` (1), `imageLibrary` (14), `imports` (3), `inbox` (22), `install` (6), `installedApps` (4), `integrationStatus` (6), `integrations` (83), `intent` (16), `knowledge` (21), `knowledgeBase` (2), `landingPages` (59), `leads` (4), `library` (9), `linkedIn` (5), `linkedInOutreach` (20), `lists` (36), `logs` (1), `mailboxes` (38), `marketingIntelligence` (10), `marketplace` (142), `mcp` (1), `me` (1), `meetings` (17), `newsletter` (61), `notes` (19), `notifications` (2), `objects` (42), `openSearch` (4), `ops` (5), `orgGovernance` (17), `orgVideos` (6), `organizationSettings` (22), `phoneNumbers` (16), `processLists` (6), `profile` (14), `programmaticPages` (15), `providerDomains` (34), `providerUsage` (5), `public` (1), `publicCopilot` (1), `publicSignals` (1), `publicVisitors` (2), `quotes` (56), `radar` (42), `radarReports` (8), `recordRoles` (4), `reports` (7), `repos` (4), `research` (13), `revenue` (14), `revenueAnalytics` (6), `revenueLifecycle` (5), `revenueRecords` (15), `roles` (21), `salesCoach` (37), `sandbox` (9), `scans` (2), `scheduleBuy` (9), `scraping` (10), `sdrAnalytics` (5), `search` (19), `seo` (22), `sequenceLifecycle` (8), `sequences` (71), `settings` (18), `signals` (56), `signatures` (24), `skills` (12), `snippet` (3), `socialPublishing` (22), `studioDocuments` (9), `support` (1), `suppressions` (6), `surveys` (21), `tasks` (25), `teamMembers` (21), `teams` (35), `usage` (9), `visitors` (26), `voice` (187), `webAnalytics` (38), `webChat` (46), `webhooks` (8), `websiteEditor` (12), `work` (59), `workbench` (107), `workflows` (59), `workspaceBackup` (7).
|
|
145
146
|
|
|
146
147
|
## 5. How to find the right call
|
|
147
148
|
|
|
@@ -196,9 +197,9 @@ Every operation carries a tier:
|
|
|
196
197
|
|
|
197
198
|
| Tier | What it means | Count |
|
|
198
199
|
|---|---|---|
|
|
199
|
-
| `read` | reads data; safe to call and to retry |
|
|
200
|
-
| `write` | creates or changes records; the SDK sends an Idempotency-Key and retries transient failures |
|
|
201
|
-
| `destructive` | deletes or archives data; confirm with a human before calling |
|
|
200
|
+
| `read` | reads data; safe to call and to retry | 1540 |
|
|
201
|
+
| `write` | creates or changes records; the SDK sends an Idempotency-Key and retries transient failures | 836 |
|
|
202
|
+
| `destructive` | deletes or archives data; confirm with a human before calling | 305 |
|
|
202
203
|
| `billable` | spends credits; the SDK never blindly retries it; confirm cost before bulk use | 383 |
|
|
203
204
|
| `external` | reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first | 251 |
|
|
204
205
|
|
|
@@ -342,34 +343,37 @@ if (contacts.length > 0) {
|
|
|
342
343
|
|
|
343
344
|
### Prospect in the graph8 index, then save the people you want
|
|
344
345
|
|
|
345
|
-
Building a list of new prospects. `
|
|
346
|
+
Building a list of new prospects. `search.contacts` queries graph8's contact index (not your CRM). It needs an active subscription and does not spend credits, but contact details come back LOCKED: a field whose value exists reads `"***"` and is named in `locked_fields`. Never import a search row directly. Save the matches into a list with `search.saveContacts`, which reveals them as real CRM contacts, then read the list. Enrich or enroll from the list afterwards.
|
|
346
347
|
|
|
347
348
|
```ts
|
|
348
349
|
import { g8 } from "@graph8/sdk";
|
|
349
350
|
|
|
350
351
|
g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
351
352
|
|
|
352
|
-
const
|
|
353
|
-
[
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
);
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
353
|
+
const filters = [
|
|
354
|
+
{ field: "seniority_level", operator: "any_of" as const, value: ["VP", "Director"] },
|
|
355
|
+
{ field: "company_industry", operator: "contains" as const, value: ["SaaS"] },
|
|
356
|
+
];
|
|
357
|
+
|
|
358
|
+
// 1. Preview: free, masked. Use it to check the filters and the size before saving.
|
|
359
|
+
const preview = await g8.search.contacts({ filters, limit: 25 });
|
|
360
|
+
console.log(`${preview.pagination?.total ?? preview.data.length} matches`);
|
|
361
|
+
const withEmail = preview.data.filter((p) => p.locked_fields?.includes("work_email")).length;
|
|
362
|
+
console.log(`${withEmail} of the first ${preview.data.length} have a (locked) work email`);
|
|
363
|
+
|
|
364
|
+
// 2. Save: creates a list and reveals the contacts into your CRM. Confirm the size with a human first.
|
|
365
|
+
const saved = await g8.search.saveContacts({ filters, list_title: "Q4 SaaS VPs", max_results: 100 });
|
|
366
|
+
|
|
367
|
+
// 3. The save runs in the background and fills the list in batches: a first non-empty read can be partial.
|
|
368
|
+
// Read until the total stops changing (or reaches the cap), then use the list.
|
|
369
|
+
let page = await g8.lists.contacts(saved.list_id, 1, 50);
|
|
370
|
+
for (let attempt = 0, previous = -1; attempt < 20 && page.total < 100; attempt++) {
|
|
371
|
+
if (page.total > 0 && page.total === previous) break;
|
|
372
|
+
previous = page.total;
|
|
373
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
374
|
+
page = await g8.lists.contacts(saved.list_id, 1, 50);
|
|
372
375
|
}
|
|
376
|
+
for (const contact of page.data) console.log(contact.id, contact.work_email);
|
|
373
377
|
```
|
|
374
378
|
|
|
375
379
|
<a id="recipe-enrich"></a>
|
|
@@ -726,7 +730,10 @@ setTimeout(stop, 60_000);
|
|
|
726
730
|
`full_name`, `personal_emails`, `company`, ...) in bulk, use `g8.contacts.listDetailed(filters)` or
|
|
727
731
|
`g8.contacts.getMany(ids)` (100 per request), not a `get()` per contact.
|
|
728
732
|
- **The CRM and the data index are different things.** `g8.contacts.*` reads YOUR workspace;
|
|
729
|
-
`g8.enrich.search` searches graph8's 700M-person index
|
|
733
|
+
`g8.search.contacts` (and the older `g8.enrich.search`) searches graph8's 700M-person index. It needs an
|
|
734
|
+
active subscription and does not spend credits, but contact details come back **locked**: a value that
|
|
735
|
+
exists reads `"***"` and is named in `locked_fields`. Never import a search row. Save matches with
|
|
736
|
+
`g8.search.saveContacts` (that reveals them as CRM contacts), then read the list; enrich after that.
|
|
730
737
|
- **Ids have types.** Contact and list ids are numbers; deal, task, note, sequence and campaign ids are
|
|
731
738
|
strings. The types enforce this, so read them.
|
|
732
739
|
- **Parameter names differ per endpoint** (`limit` vs `take` vs `page_size`). Take them from the types or
|
|
@@ -747,3 +754,39 @@ setTimeout(stop, 60_000);
|
|
|
747
754
|
- **REST**: `https://be.graph8.com/api/v1/...` with `Authorization: Bearer <api key>`. Every route is in
|
|
748
755
|
[api/by-path.md](api/by-path.md).
|
|
749
756
|
- **Web docs**: https://docs.graph8.com (index for agents: https://docs.graph8.com/llms.txt).
|
|
757
|
+
|
|
758
|
+
## 13. Blocks and stacks
|
|
759
|
+
|
|
760
|
+
For a whole screen or app (a contacts table, a sequence builder, an inbox) do not hand-write every
|
|
761
|
+
component: this package ships **blocks**, editable source you copy into the customer's Next.js app.
|
|
762
|
+
|
|
763
|
+
```
|
|
764
|
+
node_modules/@graph8/sdk/
|
|
765
|
+
blocks/block.schema.json the block.json format (blocks/block.types.ts is the same as TypeScript)
|
|
766
|
+
blocks/_foundation/ block "foundation": hooks, browser client, API proxy route, shared components
|
|
767
|
+
blocks/<id>/block.json manifest: summary, operations, per-component tiers, scopes, prerequisites, defaults
|
|
768
|
+
blocks/<id>/README.md the flow: what happens in what order, which ids pass where
|
|
769
|
+
blocks/<id>/components/ React components, copied into the app and then yours to edit
|
|
770
|
+
blocks/<id>/hooks/ data hooks
|
|
771
|
+
blocks/<id>/recipes/ server-side SDK recipes
|
|
772
|
+
stacks/<id>.json a named, ordered set of blocks plus the navigation between their screens
|
|
773
|
+
```
|
|
774
|
+
|
|
775
|
+
- **Blocks are copied, not imported.** After copying, the code belongs to the app: change it freely.
|
|
776
|
+
Read a block's `README.md` and `block.json` before copying it.
|
|
777
|
+
- **Every block depends on `foundation`.** Its browser client calls the app's own `/api/g8/...` route,
|
|
778
|
+
which adds the server-side API key. Never put an API key in client code. The route refuses to run
|
|
779
|
+
until its `authorize` and `allowedPrefixes` are set (it is as powerful as the key), so ask the person how
|
|
780
|
+
their app knows who is signed in.
|
|
781
|
+
- **`block.json` is derived from the API contract and checked in CI**: `operations` are real operation ids,
|
|
782
|
+
each component's `tiers` are the tiers of its operations, `scopes` is the key scopes they need. Use them
|
|
783
|
+
to decide which screens need a confirmation (`billable`, `external`, `destructive`) and which key to
|
|
784
|
+
create. Where `defaults` says `askHuman: true`, ask the person before using the default.
|
|
785
|
+
- **Search the catalog** with `grep -h '"summary"' node_modules/@graph8/sdk/blocks/*/block.json`.
|
|
786
|
+
- **Start a whole app with one command**: `npx @graph8/sdk create <stack> <dir>` scaffolds a Next.js App Router +
|
|
787
|
+
TypeScript + Tailwind v4 app, installs the stack's blocks (the same code as `add`), puts every screen of
|
|
788
|
+
the stack in a sidebar with one route each, and installs dependencies (`--no-install`, `--dry-run`,
|
|
789
|
+
`--package-manager`, `--force`). Then set `G8_API_KEY` in `.env.local` and run
|
|
790
|
+
`npx @graph8/sdk doctor --stack <id>`. `stacks/<id>.json` has `status`: only `available` stacks (every block
|
|
791
|
+
shipped) can be created; a `planned` stack is refused with the list of missing blocks. `starter` is an
|
|
792
|
+
empty app (foundation only) you grow with `add`. Run `npx @graph8/sdk list` for the stacks and their status.
|
package/docs/api/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# `g8.api`: every Developer API operation
|
|
4
4
|
|
|
5
|
-
`g8.api` is generated from the published OpenAPI contract, so it covers all
|
|
5
|
+
`g8.api` is generated from the published OpenAPI contract, so it covers all 3315 operations across 145 namespaces (1540 read, 836 write, 305 destructive, 383 billable, 251 external).
|
|
6
6
|
|
|
7
7
|
- Found a REST path in a curl example or the web docs? Look it up in [by-path.md](by-path.md).
|
|
8
8
|
- Prefer a hand-written method where one exists: [../sdk-clients.md](../sdk-clients.md).
|
|
@@ -105,13 +105,14 @@
|
|
|
105
105
|
| `g8.api.newsletter` | Newsletter | 61 | 15 | [newsletter.md](newsletter.md) | [newsletter.d.ts](newsletter.d.ts) |
|
|
106
106
|
| `g8.api.notes` | Notes | 19 | 8 | [notes.md](notes.md) | [notes.d.ts](notes.d.ts) |
|
|
107
107
|
| `g8.api.notifications` | Notifications | 2 | none | [notifications.md](notifications.md) | [notifications.d.ts](notifications.d.ts) |
|
|
108
|
-
| `g8.api.objects` | Objects |
|
|
108
|
+
| `g8.api.objects` | Objects | 42 | 18 | [objects.md](objects.md) | [objects.d.ts](objects.d.ts) |
|
|
109
109
|
| `g8.api.openSearch` | OpenSearch | 4 | none | [openSearch.md](openSearch.md) | [openSearch.d.ts](openSearch.d.ts) |
|
|
110
110
|
| `g8.api.ops` | Ops (internal, cross-tenant, read-only) | 5 | none | [ops.md](ops.md) | [ops.d.ts](ops.d.ts) |
|
|
111
111
|
| `g8.api.orgGovernance` | Org Governance | 17 | none | [orgGovernance.md](orgGovernance.md) | [orgGovernance.d.ts](orgGovernance.d.ts) |
|
|
112
112
|
| `g8.api.orgVideos` | Org Videos | 6 | none | [orgVideos.md](orgVideos.md) | [orgVideos.d.ts](orgVideos.d.ts) |
|
|
113
113
|
| `g8.api.organizationSettings` | Organization Settings | 22 | none | [organizationSettings.md](organizationSettings.md) | [organizationSettings.d.ts](organizationSettings.d.ts) |
|
|
114
114
|
| `g8.api.phoneNumbers` | Phone Numbers | 16 | none | [phoneNumbers.md](phoneNumbers.md) | [phoneNumbers.d.ts](phoneNumbers.d.ts) |
|
|
115
|
+
| `g8.api.processLists` | Process Lists | 6 | none | [processLists.md](processLists.md) | [processLists.d.ts](processLists.d.ts) |
|
|
115
116
|
| `g8.api.profile` | Profile | 14 | none | [profile.md](profile.md) | [profile.d.ts](profile.d.ts) |
|
|
116
117
|
| `g8.api.programmaticPages` | Programmatic Pages | 15 | none | [programmaticPages.md](programmaticPages.md) | [programmaticPages.d.ts](programmaticPages.d.ts) |
|
|
117
118
|
| `g8.api.providerDomains` | Provider Domains | 34 | none | [providerDomains.md](providerDomains.md) | [providerDomains.d.ts](providerDomains.d.ts) |
|
|
@@ -124,6 +125,7 @@
|
|
|
124
125
|
| `g8.api.radar` | Radar | 42 | none | [radar.md](radar.md) | [radar.d.ts](radar.d.ts) |
|
|
125
126
|
| `g8.api.radarReports` | Radar Reports | 8 | none | [radarReports.md](radarReports.md) | [radarReports.d.ts](radarReports.d.ts) |
|
|
126
127
|
| `g8.api.recordRoles` | Record Roles | 4 | none | [recordRoles.md](recordRoles.md) | [recordRoles.d.ts](recordRoles.d.ts) |
|
|
128
|
+
| `g8.api.reports` | Reports | 7 | none | [reports.md](reports.md) | [reports.d.ts](reports.d.ts) |
|
|
127
129
|
| `g8.api.repos` | Repos | 4 | none | [repos.md](repos.md) | [repos.d.ts](repos.d.ts) |
|
|
128
130
|
| `g8.api.research` | Research | 13 | none | [research.md](research.md) | [research.d.ts](research.d.ts) |
|
|
129
131
|
| `g8.api.revenue` | Revenue | 14 | none | [revenue.md](revenue.md) | [revenue.d.ts](revenue.d.ts) |
|
|
@@ -138,7 +140,7 @@
|
|
|
138
140
|
| `g8.api.scraping` | Scraping | 10 | none | [scraping.md](scraping.md) | [scraping.d.ts](scraping.d.ts) |
|
|
139
141
|
| `g8.api.sdrAnalytics` | SDR Analytics | 5 | none | [sdrAnalytics.md](sdrAnalytics.md) | [sdrAnalytics.d.ts](sdrAnalytics.d.ts) |
|
|
140
142
|
| `g8.api.search` | Search | 19 | 4 | [search.md](search.md) | [search.d.ts](search.d.ts) |
|
|
141
|
-
| `g8.api.seo` | SEO |
|
|
143
|
+
| `g8.api.seo` | SEO | 22 | none | [seo.md](seo.md) | [seo.d.ts](seo.d.ts) |
|
|
142
144
|
| `g8.api.sequenceLifecycle` | Sequence Lifecycle | 8 | 6 | [sequenceLifecycle.md](sequenceLifecycle.md) | [sequenceLifecycle.d.ts](sequenceLifecycle.d.ts) |
|
|
143
145
|
| `g8.api.sequences` | Sequences | 71 | 6 | [sequences.md](sequences.md) | [sequences.d.ts](sequences.d.ts) |
|
|
144
146
|
| `g8.api.settings` | Settings | 18 | none | [settings.md](settings.md) | [settings.d.ts](settings.d.ts) |
|
|
@@ -164,3 +166,4 @@
|
|
|
164
166
|
| `g8.api.work` | Work | 59 | none | [work.md](work.md) | [work.d.ts](work.d.ts) |
|
|
165
167
|
| `g8.api.workbench` | Workbench | 107 | none | [workbench.md](workbench.md) | [workbench.d.ts](workbench.d.ts) |
|
|
166
168
|
| `g8.api.workflows` | Workflows | 59 | 21 | [workflows.md](workflows.md) | [workflows.d.ts](workflows.d.ts) |
|
|
169
|
+
| `g8.api.workspaceBackup` | Workspace backup | 7 | none | [workspaceBackup.md](workspaceBackup.md) | [workspaceBackup.d.ts](workspaceBackup.d.ts) |
|
package/docs/api/appObjects.d.ts
CHANGED
|
@@ -371,7 +371,7 @@ export interface RecordHistoryResponse {
|
|
|
371
371
|
}
|
|
372
372
|
|
|
373
373
|
export interface RecordMutationEntry {
|
|
374
|
-
action: "created" | "updated" | "archived" | "restored";
|
|
374
|
+
action: "created" | "updated" | "archived" | "restored" | "recalculated";
|
|
375
375
|
actor_id: string | null;
|
|
376
376
|
actor_type: "user" | "api" | "app" | "integration" | "system";
|
|
377
377
|
app_id?: string | null;
|
package/docs/api/appObjects.md
CHANGED
|
@@ -556,7 +556,7 @@ One generation of one attribute's value. Values are TEMPORAL rather than mutable
|
|
|
556
556
|
|
|
557
557
|
| Field | Type | Required | Description |
|
|
558
558
|
|---|---|---|---|
|
|
559
|
-
| `action` | `"created" \| "updated" \| "archived" \| "restored"` | yes | |
|
|
559
|
+
| `action` | `"created" \| "updated" \| "archived" \| "restored" \| "recalculated"` | yes | |
|
|
560
560
|
| `actor_id` | `string \| null` | yes | |
|
|
561
561
|
| `actor_type` | `"user" \| "api" \| "app" \| "integration" \| "system"` | yes | |
|
|
562
562
|
| `changes` | `Record<string, RecordMutationValueChange>` | yes | |
|
package/docs/api/by-path.md
CHANGED
|
@@ -2025,6 +2025,7 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
2025
2025
|
| PATCH | `/api/v1/objects/{object_slug}` | [`g8.api.objects.updateObject`](objects.md#op-updateobject) or `g8.objects.update()` | write |
|
|
2026
2026
|
| GET | `/api/v1/objects/{object_slug}/attributes` | [`g8.api.objects.listObjectAttributes`](objects.md#op-listobjectattributes) or `g8.objects.listAttributes()` | read |
|
|
2027
2027
|
| POST | `/api/v1/objects/{object_slug}/attributes` | [`g8.api.objects.createAttribute`](objects.md#op-createattribute) or `g8.objects.createAttribute()` | write |
|
|
2028
|
+
| POST | `/api/v1/objects/{object_slug}/attributes/formula/validate` | [`g8.api.objects.validateFormula`](objects.md#op-validateformula) | read |
|
|
2028
2029
|
| DELETE | `/api/v1/objects/{object_slug}/attributes/{attr_slug}` | [`g8.api.objects.archiveAttribute`](objects.md#op-archiveattribute) or `g8.objects.archiveAttribute()` | destructive |
|
|
2029
2030
|
| PATCH | `/api/v1/objects/{object_slug}/attributes/{attr_slug}` | [`g8.api.objects.updateAttribute`](objects.md#op-updateattribute) or `g8.objects.updateAttribute()` | write |
|
|
2030
2031
|
| POST | `/api/v1/objects/{object_slug}/exports` | [`g8.api.objects.exportObjectRecords`](objects.md#op-exportobjectrecords) | write |
|
|
@@ -2175,6 +2176,12 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
2175
2176
|
| POST | `/api/v1/placement/tests` | [`g8.api.mailboxes.createPlacementTest`](mailboxes.md#op-createplacementtest) | billable |
|
|
2176
2177
|
| POST | `/api/v1/placement/tests/estimate` | [`g8.api.mailboxes.estimatePlacementTestCost`](mailboxes.md#op-estimateplacementtestcost) | read |
|
|
2177
2178
|
| GET | `/api/v1/placement/tests/{test_id}` | [`g8.api.mailboxes.getPlacementTest`](mailboxes.md#op-getplacementtest) | read |
|
|
2179
|
+
| GET | `/api/v1/process-lists` | [`g8.api.processLists.listProcessListsApi`](processLists.md#op-listprocesslistsapi) | read |
|
|
2180
|
+
| POST | `/api/v1/process-lists` | [`g8.api.processLists.createProcessListApi`](processLists.md#op-createprocesslistapi) | write |
|
|
2181
|
+
| DELETE | `/api/v1/process-lists/{slug}` | [`g8.api.processLists.archiveProcessListApi`](processLists.md#op-archiveprocesslistapi) | destructive |
|
|
2182
|
+
| GET | `/api/v1/process-lists/{slug}` | [`g8.api.processLists.getProcessListApi`](processLists.md#op-getprocesslistapi) | read |
|
|
2183
|
+
| PATCH | `/api/v1/process-lists/{slug}` | [`g8.api.processLists.updateProcessListApi`](processLists.md#op-updateprocesslistapi) | write |
|
|
2184
|
+
| POST | `/api/v1/process-lists/{slug}/entries` | [`g8.api.processLists.createProcessListEntryApi`](processLists.md#op-createprocesslistentryapi) | write |
|
|
2178
2185
|
| POST | `/api/v1/profile/avatar` | [`g8.api.profile.uploadProfileAvatar`](profile.md#op-uploadprofileavatar) | write |
|
|
2179
2186
|
| GET | `/api/v1/profile/deal-automations` | [`g8.api.profile.getDealAutomations`](profile.md#op-getdealautomations) | read |
|
|
2180
2187
|
| PUT | `/api/v1/profile/deal-automations` | [`g8.api.profile.updateDealAutomations`](profile.md#op-updatedealautomations) | write |
|
|
@@ -2338,6 +2345,13 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
2338
2345
|
| DELETE | `/api/v1/records/{entity_type}/{entity_id}/role-assignments/{role_slot}` | [`g8.api.recordRoles.clearRecordRole`](recordRoles.md#op-clearrecordrole) | destructive |
|
|
2339
2346
|
| GET | `/api/v1/records/{entity_type}/{entity_id}/role-history` | [`g8.api.recordRoles.getRecordRoleHistory`](recordRoles.md#op-getrecordrolehistory) | read |
|
|
2340
2347
|
| GET | `/api/v1/records/{entity_type}/{entity_id}/role-slots` | [`g8.api.recordRoles.getRecordRoleSlots`](recordRoles.md#op-getrecordroleslots) | read |
|
|
2348
|
+
| GET | `/api/v1/reports` | [`g8.api.reports.listObjectReportsApi`](reports.md#op-listobjectreportsapi) | read |
|
|
2349
|
+
| POST | `/api/v1/reports` | [`g8.api.reports.createObjectReportApi`](reports.md#op-createobjectreportapi) | write |
|
|
2350
|
+
| POST | `/api/v1/reports/preview` | [`g8.api.reports.previewObjectReportApi`](reports.md#op-previewobjectreportapi) | write |
|
|
2351
|
+
| DELETE | `/api/v1/reports/{report_id}` | [`g8.api.reports.archiveObjectReportApi`](reports.md#op-archiveobjectreportapi) | destructive |
|
|
2352
|
+
| GET | `/api/v1/reports/{report_id}` | [`g8.api.reports.getObjectReportApi`](reports.md#op-getobjectreportapi) | read |
|
|
2353
|
+
| PATCH | `/api/v1/reports/{report_id}` | [`g8.api.reports.updateObjectReportApi`](reports.md#op-updateobjectreportapi) | write |
|
|
2354
|
+
| POST | `/api/v1/reports/{report_id}/execute` | [`g8.api.reports.executeObjectReportApi`](reports.md#op-executeobjectreportapi) | write |
|
|
2341
2355
|
| GET | `/api/v1/repos` | [`g8.api.repos.listRepos`](repos.md#op-listrepos) | read |
|
|
2342
2356
|
| POST | `/api/v1/repos` | [`g8.api.repos.connectRepo`](repos.md#op-connectrepo) | write |
|
|
2343
2357
|
| DELETE | `/api/v1/repos/{repo_id}` | [`g8.api.repos.deleteRepo`](repos.md#op-deleterepo) | destructive |
|
|
@@ -2499,11 +2513,19 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
2499
2513
|
| GET | `/api/v1/seo/domains/tracked/{domain}/pages` | [`g8.api.seo.listSeoDomainPages`](seo.md#op-listseodomainpages) | read |
|
|
2500
2514
|
| GET | `/api/v1/seo/domains/{domain}/backlinks` | [`g8.api.seo.getSeoDomainBacklinks`](seo.md#op-getseodomainbacklinks) | billable |
|
|
2501
2515
|
| GET | `/api/v1/seo/domains/{domain}/overview` | [`g8.api.seo.getSeoDomainOverview`](seo.md#op-getseodomainoverview) | billable |
|
|
2516
|
+
| GET | `/api/v1/seo/fixes` | [`g8.api.seo.listSeoFixes`](seo.md#op-listseofixes) | read |
|
|
2517
|
+
| GET | `/api/v1/seo/fixes/agent-handoff` | [`g8.api.seo.getSeoAgentHandoff`](seo.md#op-getseoagenthandoff) | read |
|
|
2518
|
+
| POST | `/api/v1/seo/fixes/{fix_id}/claim` | [`g8.api.seo.claimSeoFix`](seo.md#op-claimseofix) | write |
|
|
2519
|
+
| POST | `/api/v1/seo/fixes/{fix_id}/complete` | [`g8.api.seo.completeSeoFix`](seo.md#op-completeseofix) | write |
|
|
2520
|
+
| GET | `/api/v1/seo/fixes/{fix_id}/pack` | [`g8.api.seo.getSeoFixPack`](seo.md#op-getseofixpack) | read |
|
|
2502
2521
|
| POST | `/api/v1/seo/keywords/research` | [`g8.api.seo.researchSeoKeywords`](seo.md#op-researchseokeywords) | billable |
|
|
2522
|
+
| GET | `/api/v1/seo/pages/360` | [`g8.api.seo.listSeoPages360`](seo.md#op-listseopages360) | read |
|
|
2523
|
+
| GET | `/api/v1/seo/pages/360/detail` | [`g8.api.seo.getSeoPage360`](seo.md#op-getseopage360) | read |
|
|
2503
2524
|
| GET | `/api/v1/seo/rank-tracking` | [`g8.api.seo.listSeoTrackedKeywords`](seo.md#op-listseotrackedkeywords) | read |
|
|
2504
2525
|
| POST | `/api/v1/seo/rank-tracking/keywords` | [`g8.api.seo.saveSeoTrackedKeywords`](seo.md#op-saveseotrackedkeywords) | write |
|
|
2505
2526
|
| POST | `/api/v1/seo/rank-tracking/keywords/remove` | [`g8.api.seo.removeSeoTrackedKeywords`](seo.md#op-removeseotrackedkeywords) | write |
|
|
2506
2527
|
| GET | `/api/v1/seo/rank-tracking/{keyword_id}/history` | [`g8.api.seo.getSeoRankHistory`](seo.md#op-getseorankhistory) | read |
|
|
2528
|
+
| GET | `/api/v1/seo/today` | [`g8.api.seo.getSeoToday`](seo.md#op-getseotoday) | read |
|
|
2507
2529
|
| GET | `/api/v1/sequence-jobs/{job_id}` | [`g8.api.sequences.getSequenceJob`](sequences.md#op-getsequencejob) | read |
|
|
2508
2530
|
| GET | `/api/v1/sequencer/agents/textual` | [`g8.api.sequences.listSequencerTextualAgents`](sequences.md#op-listsequencertextualagents) | read |
|
|
2509
2531
|
| GET | `/api/v1/sequencer/agents/voice` | [`g8.api.sequences.listSequencerVoiceAgents`](sequences.md#op-listsequencervoiceagents) | read |
|
|
@@ -3292,3 +3314,10 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
3292
3314
|
| GET | `/api/v1/workflows/{action_id}/runs/recent` | [`g8.api.workflows.listRecentWorkflowRuns`](workflows.md#op-listrecentworkflowruns) | read |
|
|
3293
3315
|
| POST | `/api/v1/workflows/{action_id}/trigger-reset` | [`g8.api.workflows.resetTriggerCursor`](workflows.md#op-resettriggercursor) or `g8.workflows.resetTrigger()` | external |
|
|
3294
3316
|
| GET | `/api/v1/workflows/{action_id}/trigger-status` | [`g8.api.workflows.getTriggerStatus`](workflows.md#op-gettriggerstatus) or `g8.workflows.getTriggerStatus()` | read |
|
|
3317
|
+
| GET | `/api/v1/workspace/backup` | [`g8.api.workspaceBackup.listWorkspaceBackupsApi`](workspaceBackup.md#op-listworkspacebackupsapi) | read |
|
|
3318
|
+
| POST | `/api/v1/workspace/backup` | [`g8.api.workspaceBackup.createWorkspaceBackupApi`](workspaceBackup.md#op-createworkspacebackupapi) | write |
|
|
3319
|
+
| GET | `/api/v1/workspace/backup/{backup_id}` | [`g8.api.workspaceBackup.getWorkspaceBackupApi`](workspaceBackup.md#op-getworkspacebackupapi) | read |
|
|
3320
|
+
| GET | `/api/v1/workspace/backup/{backup_id}/download` | [`g8.api.workspaceBackup.downloadWorkspaceBackupApi`](workspaceBackup.md#op-downloadworkspacebackupapi) | read |
|
|
3321
|
+
| GET | `/api/v1/workspace/restore` | [`g8.api.workspaceBackup.listWorkspaceRestoresApi`](workspaceBackup.md#op-listworkspacerestoresapi) | read |
|
|
3322
|
+
| POST | `/api/v1/workspace/restore` | [`g8.api.workspaceBackup.createWorkspaceRestoreApi`](workspaceBackup.md#op-createworkspacerestoreapi) | write |
|
|
3323
|
+
| GET | `/api/v1/workspace/restore/{restore_id}` | [`g8.api.workspaceBackup.getWorkspaceRestoreApi`](workspaceBackup.md#op-getworkspacerestoreapi) | read |
|
package/docs/api/enrichment.d.ts
CHANGED
|
@@ -355,6 +355,8 @@ export interface EnrichmentOperations {
|
|
|
355
355
|
query?: {
|
|
356
356
|
/** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
|
|
357
357
|
hard_delete?: boolean;
|
|
358
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
359
|
+
scope?: string | null;
|
|
358
360
|
};
|
|
359
361
|
headers?: {
|
|
360
362
|
"X-Target-Org-Id"?: string | null;
|
|
@@ -376,6 +378,8 @@ export interface EnrichmentOperations {
|
|
|
376
378
|
query?: {
|
|
377
379
|
/** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
|
|
378
380
|
hard_delete?: boolean;
|
|
381
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
382
|
+
scope?: string | null;
|
|
379
383
|
};
|
|
380
384
|
headers?: {
|
|
381
385
|
"X-Target-Org-Id"?: string | null;
|
|
@@ -414,6 +418,8 @@ export interface EnrichmentOperations {
|
|
|
414
418
|
query?: {
|
|
415
419
|
/** Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. */
|
|
416
420
|
hard_delete?: boolean;
|
|
421
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
422
|
+
scope?: string | null;
|
|
417
423
|
};
|
|
418
424
|
headers?: {
|
|
419
425
|
"X-Target-Org-Id"?: string | null;
|
|
@@ -1566,6 +1572,10 @@ export interface EnrichmentOperations {
|
|
|
1566
1572
|
/** AI group id. */
|
|
1567
1573
|
group_id: string;
|
|
1568
1574
|
};
|
|
1575
|
+
query?: {
|
|
1576
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
1577
|
+
scope?: string | null;
|
|
1578
|
+
};
|
|
1569
1579
|
headers?: {
|
|
1570
1580
|
"X-Target-Org-Id"?: string | null;
|
|
1571
1581
|
};
|
|
@@ -1829,6 +1839,10 @@ export interface EnrichmentOperations {
|
|
|
1829
1839
|
/** The AI group id. */
|
|
1830
1840
|
group_id: string;
|
|
1831
1841
|
};
|
|
1842
|
+
query?: {
|
|
1843
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
1844
|
+
scope?: string | null;
|
|
1845
|
+
};
|
|
1832
1846
|
headers?: {
|
|
1833
1847
|
"X-Target-Org-Id"?: string | null;
|
|
1834
1848
|
};
|
|
@@ -1883,6 +1897,10 @@ export interface EnrichmentOperations {
|
|
|
1883
1897
|
/** Enrichment configuration id (UUID). */
|
|
1884
1898
|
config_id: string;
|
|
1885
1899
|
};
|
|
1900
|
+
query?: {
|
|
1901
|
+
/** Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. */
|
|
1902
|
+
scope?: string | null;
|
|
1903
|
+
};
|
|
1886
1904
|
headers?: {
|
|
1887
1905
|
"X-Target-Org-Id"?: string | null;
|
|
1888
1906
|
};
|
package/docs/api/enrichment.md
CHANGED
|
@@ -802,7 +802,9 @@ const result = await g8.api.enrichment.createRoutingRule({ body: { name: "Exampl
|
|
|
802
802
|
Drop ONE column from an AI group. The group and its other columns stay.
|
|
803
803
|
|
|
804
804
|
Free. `columns` is plural here where the app writes `column`, so the path
|
|
805
|
-
reads the same way as every other collection in this contract.
|
|
805
|
+
reads the same way as every other collection in this contract. A column of
|
|
806
|
+
a qualification group shared by every list answers 409 unless `scope=org`
|
|
807
|
+
(admin keys only).
|
|
806
808
|
|
|
807
809
|
**Input**
|
|
808
810
|
|
|
@@ -811,6 +813,7 @@ reads the same way as every other collection in this contract.
|
|
|
811
813
|
| `path.group_id` | `string` | yes | AI group id. |
|
|
812
814
|
| `path.column_id` | `string` | yes | The single column to drop. |
|
|
813
815
|
| `query.hard_delete` | `boolean` | no | Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. default `false` |
|
|
816
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
814
817
|
|
|
815
818
|
**Returns** `ApiResponse_EnrichmentPayload_`: the envelope `{ data: EnrichmentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
816
819
|
|
|
@@ -838,12 +841,16 @@ const result = await g8.api.enrichment.deleteAiConfigByColumn({ path: { group_id
|
|
|
838
841
|
|
|
839
842
|
Remove an AI group and every column it owns. Free.
|
|
840
843
|
|
|
844
|
+
A qualification group shared by every list answers 409 unless `scope=org`
|
|
845
|
+
(admin keys only).
|
|
846
|
+
|
|
841
847
|
**Input**
|
|
842
848
|
|
|
843
849
|
| Field | Type | Required | Description |
|
|
844
850
|
|---|---|---|---|
|
|
845
851
|
| `path.group_id` | `string` | yes | AI group id. |
|
|
846
852
|
| `query.hard_delete` | `boolean` | no | Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. default `false` |
|
|
853
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
847
854
|
|
|
848
855
|
**Returns** `ApiResponse_EnrichmentPayload_`: the envelope `{ data: EnrichmentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
849
856
|
|
|
@@ -903,12 +910,16 @@ const result = await g8.api.enrichment.deleteAutoEnrichmentConfig({ path: { conf
|
|
|
903
910
|
|
|
904
911
|
Remove an enrichment configuration. Free.
|
|
905
912
|
|
|
913
|
+
A qualification configuration shared by every list answers 409 unless
|
|
914
|
+
`scope=org` (admin keys only).
|
|
915
|
+
|
|
906
916
|
**Input**
|
|
907
917
|
|
|
908
918
|
| Field | Type | Required | Description |
|
|
909
919
|
|---|---|---|---|
|
|
910
920
|
| `path.config_id` | `string` | yes | Enrichment configuration id (UUID). |
|
|
911
921
|
| `query.hard_delete` | `boolean` | no | Remove the configuration permanently instead of deactivating it. The values it already wrote are kept either way. default `false` |
|
|
922
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
912
923
|
|
|
913
924
|
**Returns** `ApiResponse_EnrichmentPayload_`: the envelope `{ data: EnrichmentPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
914
925
|
|
|
@@ -3505,7 +3516,8 @@ const result = await g8.api.enrichment.previewRoutingRule({ body: { source_list_
|
|
|
3505
3516
|
Rename the column an AI group writes into. Free.
|
|
3506
3517
|
|
|
3507
3518
|
Display name only - the underlying column id does not move, so formulas and
|
|
3508
|
-
mappings that reference it keep working.
|
|
3519
|
+
mappings that reference it keep working. A qualification group shared by
|
|
3520
|
+
every list answers 409 unless `scope=org` (admin keys only).
|
|
3509
3521
|
|
|
3510
3522
|
**Input**
|
|
3511
3523
|
|
|
@@ -3513,6 +3525,7 @@ mappings that reference it keep working.
|
|
|
3513
3525
|
|---|---|---|---|
|
|
3514
3526
|
| `path.group_id` | `string` | yes | AI group id. |
|
|
3515
3527
|
| `body` | `RenameAIColumnRequest` | yes | Request body; fields below. |
|
|
3528
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
3516
3529
|
|
|
3517
3530
|
Body fields (`RenameAIColumnRequest`):
|
|
3518
3531
|
|
|
@@ -4006,6 +4019,10 @@ EVERY list in the organisation, not just `config.list_id`. That is the
|
|
|
4006
4019
|
wider blast radius of the two and it is what you get by omission, so set it
|
|
4007
4020
|
deliberately.
|
|
4008
4021
|
|
|
4022
|
+
A `config.group_id` naming a qualification group shared by every list (the
|
|
4023
|
+
ICP and Persona qualification groups) answers 409 with code
|
|
4024
|
+
`shared_qualification_group`: those groups cannot gain columns here.
|
|
4025
|
+
|
|
4009
4026
|
**Input**
|
|
4010
4027
|
|
|
4011
4028
|
| Field | Type | Required | Description |
|
|
@@ -4308,7 +4325,8 @@ const result = await g8.api.enrichment.unassignConfigFromList({
|
|
|
4308
4325
|
Edit an AI group in place. Free: editing runs nothing.
|
|
4309
4326
|
|
|
4310
4327
|
Output columns that already exist keep their data; the run condition is
|
|
4311
|
-
validated before anything is saved.
|
|
4328
|
+
validated before anything is saved. A qualification group shared by every
|
|
4329
|
+
list answers 409 unless `scope=org` (admin keys only).
|
|
4312
4330
|
|
|
4313
4331
|
**Input**
|
|
4314
4332
|
|
|
@@ -4316,6 +4334,7 @@ validated before anything is saved.
|
|
|
4316
4334
|
|---|---|---|---|
|
|
4317
4335
|
| `path.group_id` | `string` | yes | The AI group id. |
|
|
4318
4336
|
| `body` | `UpdateAIConfigRequest` | yes | Request body; fields below. |
|
|
4337
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
4319
4338
|
|
|
4320
4339
|
Body fields (`UpdateAIConfigRequest`):
|
|
4321
4340
|
|
|
@@ -4452,7 +4471,8 @@ Change fields on an enrichment configuration. Free.
|
|
|
4452
4471
|
Whatever keys are sent are written - the app takes a free-form body here
|
|
4453
4472
|
and this forwards it unchanged rather than narrowing what the browser can
|
|
4454
4473
|
already do. `updated_by` is stamped from the calling key and cannot be
|
|
4455
|
-
supplied.
|
|
4474
|
+
supplied. A qualification configuration shared by every list answers 409
|
|
4475
|
+
unless `scope=org` (admin keys only).
|
|
4456
4476
|
|
|
4457
4477
|
**Input**
|
|
4458
4478
|
|
|
@@ -4460,6 +4480,7 @@ supplied.
|
|
|
4460
4480
|
|---|---|---|---|
|
|
4461
4481
|
| `path.config_id` | `string` | yes | Enrichment configuration id (UUID). |
|
|
4462
4482
|
| `body` | `EnrichmentConfigUpdateRequest` | yes | Request body; fields below. |
|
|
4483
|
+
| `query.scope` | `string \| null` | no | Set to `org` to change or delete a qualification group shared by every list (the ICP and Persona qualification groups). Admin keys only. Without it such a call answers 409 with code `shared_qualification_group`. |
|
|
4463
4484
|
|
|
4464
4485
|
Body fields (`EnrichmentConfigUpdateRequest`):
|
|
4465
4486
|
|