@graph8/sdk 0.308.1 → 0.357.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 +1440 -21
- package/dist/index.d.ts +1440 -21
- 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 +1340 -18
- package/dist/react.d.ts +1340 -18
- 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/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/scheduleBuy.d.ts +12 -8
- package/docs/api/scheduleBuy.md +13 -10
- package/docs/api/seo.d.ts +406 -3
- package/docs/api/seo.md +505 -1
- 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,539 @@
|
|
|
1
|
+
<!-- Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. -->
|
|
2
|
+
|
|
3
|
+
# `g8.api.reports`: Reports
|
|
4
|
+
|
|
5
|
+
7 operations (2 read, 4 write, 1 destructive).
|
|
6
|
+
|
|
7
|
+
No hand-written client covers this area. Call it through `g8.api.reports.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
|
|
8
|
+
|
|
9
|
+
Every example below assumes this setup (server-side, API key):
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { g8 } from "@graph8/sdk";
|
|
13
|
+
|
|
14
|
+
g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Example values are placeholders that match each field's type. Only required fields are shown. Every example is type-checked against the SDK in CI.
|
|
18
|
+
|
|
19
|
+
Exact TypeScript types for every operation on this page, and every schema they use: [reports.d.ts](reports.d.ts).
|
|
20
|
+
|
|
21
|
+
## Operations
|
|
22
|
+
|
|
23
|
+
| Call | HTTP | Tier | Scope | Summary |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| [`archiveObjectReportApi`](#op-archiveobjectreportapi) | `DELETE /api/v1/reports/{report_id}` | destructive | `objects:delete` | Archive Object Report Api |
|
|
26
|
+
| [`createObjectReportApi`](#op-createobjectreportapi) | `POST /api/v1/reports` | write | `objects:write` | Create Object Report Api |
|
|
27
|
+
| [`executeObjectReportApi`](#op-executeobjectreportapi) | `POST /api/v1/reports/{report_id}/execute` | write | `objects:read` | Execute Object Report Api |
|
|
28
|
+
| [`getObjectReportApi`](#op-getobjectreportapi) | `GET /api/v1/reports/{report_id}` | read | `objects:read` | Get Object Report Api |
|
|
29
|
+
| [`listObjectReportsApi`](#op-listobjectreportsapi) | `GET /api/v1/reports` | read | `objects:read` | List Object Reports Api |
|
|
30
|
+
| [`previewObjectReportApi`](#op-previewobjectreportapi) | `POST /api/v1/reports/preview` | write | `objects:read` | Preview Object Report Api |
|
|
31
|
+
| [`updateObjectReportApi`](#op-updateobjectreportapi) | `PATCH /api/v1/reports/{report_id}` | write | `objects:write` | Update Object Report Api |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
<a id="op-archiveobjectreportapi"></a>
|
|
36
|
+
|
|
37
|
+
### `g8.api.reports.archiveObjectReportApi(input)`
|
|
38
|
+
|
|
39
|
+
**Archive Object Report Api**
|
|
40
|
+
|
|
41
|
+
- HTTP: `DELETE /api/v1/reports/{report_id}`
|
|
42
|
+
- operationId: `archive_object_report_api_reports__report_id__delete` (also callable as `g8.api.call("archive_object_report_api_reports__report_id__delete", input)`)
|
|
43
|
+
- Tier: `destructive`: deletes or archives data; confirm with a human before calling
|
|
44
|
+
- API-key scope: `objects:delete`
|
|
45
|
+
|
|
46
|
+
Delete (archive) a report this credential owns. Does not touch the source's records.
|
|
47
|
+
|
|
48
|
+
**Input**
|
|
49
|
+
|
|
50
|
+
| Field | Type | Required | Description |
|
|
51
|
+
|---|---|---|---|
|
|
52
|
+
| `path.report_id` | `string (uuid)` | yes | |
|
|
53
|
+
|
|
54
|
+
**Returns** `ApiResponse_NoneType_`: the envelope `{ data: null, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
55
|
+
|
|
56
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
57
|
+
|
|
58
|
+
**Example**
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
// destructive: deletes or archives data; confirm with a human before calling.
|
|
62
|
+
const result = await g8.api.reports.archiveObjectReportApi({ path: { report_id: "00000000-0000-0000-0000-000000000000" } });
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
<a id="op-createobjectreportapi"></a>
|
|
68
|
+
|
|
69
|
+
### `g8.api.reports.createObjectReportApi(input)`
|
|
70
|
+
|
|
71
|
+
**Create Object Report Api**
|
|
72
|
+
|
|
73
|
+
- HTTP: `POST /api/v1/reports`
|
|
74
|
+
- operationId: `create_object_report_api_reports_post` (also callable as `g8.api.call("create_object_report_api_reports_post", input)`)
|
|
75
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
76
|
+
- API-key scope: `objects:write`
|
|
77
|
+
|
|
78
|
+
Save a report owned by this credential. Private by default; a shared one (``visibility: "org"``) needs
|
|
79
|
+
``objects:manage`` and current Admin access. Fields the credential cannot see are unknown to it.
|
|
80
|
+
|
|
81
|
+
**Input**
|
|
82
|
+
|
|
83
|
+
| Field | Type | Required | Description |
|
|
84
|
+
|---|---|---|---|
|
|
85
|
+
| `body` | `ReportCreate` | yes | Request body; fields below. |
|
|
86
|
+
|
|
87
|
+
Body fields (`ReportCreate`):
|
|
88
|
+
|
|
89
|
+
| Field | Type | Required | Description |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| `body.chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
92
|
+
| `body.config` | `ReportConfig` | yes | |
|
|
93
|
+
| `body.object_slug` | `string` | yes | min length 1, max length 100 |
|
|
94
|
+
| `body.title` | `string` | yes | min length 1, max length 200 |
|
|
95
|
+
| `body.description` | `string \| null` | no | max length 2000 |
|
|
96
|
+
| `body.visibility` | `"private" \| "org"` | no | default `"private"` |
|
|
97
|
+
|
|
98
|
+
**Returns** `ApiResponse_ReportDefinitionResponse_`: the envelope `{ data: ReportDefinitionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
99
|
+
|
|
100
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
101
|
+
|
|
102
|
+
`ReportDefinitionResponse` fields:
|
|
103
|
+
|
|
104
|
+
| Field | Type | Required | Description |
|
|
105
|
+
|---|---|---|---|
|
|
106
|
+
| `can_delete` | `boolean` | yes | |
|
|
107
|
+
| `can_edit` | `boolean` | yes | |
|
|
108
|
+
| `chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
109
|
+
| `config` | `Record<string, unknown>` | yes | |
|
|
110
|
+
| `created_at` | `string (date-time)` | yes | |
|
|
111
|
+
| `id` | `string (uuid)` | yes | |
|
|
112
|
+
| `is_owner` | `boolean` | yes | |
|
|
113
|
+
| `owner` | `ReportOwner` | yes | |
|
|
114
|
+
| `revision` | `integer` | yes | |
|
|
115
|
+
| `source` | `ReportSource` | yes | |
|
|
116
|
+
| `title` | `string` | yes | |
|
|
117
|
+
| `updated_at` | `string (date-time)` | yes | |
|
|
118
|
+
| `visibility` | `"private" \| "org"` | yes | |
|
|
119
|
+
| `description` | `string \| null` | no | |
|
|
120
|
+
| `restricted` | `Array<RestrictedComponent>` | no | |
|
|
121
|
+
| `restricted_count` | `integer` | no | default `0` |
|
|
122
|
+
|
|
123
|
+
**Example**
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
const result = await g8.api.reports.createObjectReportApi({
|
|
127
|
+
body: {
|
|
128
|
+
chart_type: "table",
|
|
129
|
+
config: {},
|
|
130
|
+
object_slug: "example",
|
|
131
|
+
title: "Example",
|
|
132
|
+
},
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
<a id="op-executeobjectreportapi"></a>
|
|
139
|
+
|
|
140
|
+
### `g8.api.reports.executeObjectReportApi(input)`
|
|
141
|
+
|
|
142
|
+
**Execute Object Report Api**
|
|
143
|
+
|
|
144
|
+
- HTTP: `POST /api/v1/reports/{report_id}/execute`
|
|
145
|
+
- operationId: `execute_object_report_api_reports__report_id__execute_post` (also callable as `g8.api.call("execute_object_report_api_reports__report_id__execute_post", input)`)
|
|
146
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
147
|
+
- API-key scope: `objects:read`
|
|
148
|
+
|
|
149
|
+
Run a saved report as this credential, now or as of a past date; with ``drilldown`` open the records behind a
|
|
150
|
+
number. A source that was archived is a 409; a config the schema no longer fits is a 422; over 10 s is a 504.
|
|
151
|
+
|
|
152
|
+
**Input**
|
|
153
|
+
|
|
154
|
+
| Field | Type | Required | Description |
|
|
155
|
+
|---|---|---|---|
|
|
156
|
+
| `path.report_id` | `string (uuid)` | yes | |
|
|
157
|
+
| `body` | `ReportRun` | yes | Request body; fields below. |
|
|
158
|
+
|
|
159
|
+
Body fields (`ReportRun`):
|
|
160
|
+
|
|
161
|
+
| Field | Type | Required | Description |
|
|
162
|
+
|---|---|---|---|
|
|
163
|
+
| `body.as_of` | `string (date) \| null` | no | |
|
|
164
|
+
| `body.drilldown` | `DrilldownRequest \| null` | no | |
|
|
165
|
+
|
|
166
|
+
**Returns** `ReportRunApiResponse`: the envelope `{ data: ReportResult | DrilldownResult, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
167
|
+
|
|
168
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
169
|
+
|
|
170
|
+
**Example**
|
|
171
|
+
|
|
172
|
+
```ts
|
|
173
|
+
const result = await g8.api.reports.executeObjectReportApi({
|
|
174
|
+
path: { report_id: "00000000-0000-0000-0000-000000000000" },
|
|
175
|
+
body: {},
|
|
176
|
+
});
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
<a id="op-getobjectreportapi"></a>
|
|
182
|
+
|
|
183
|
+
### `g8.api.reports.getObjectReportApi(input)`
|
|
184
|
+
|
|
185
|
+
**Get Object Report Api**
|
|
186
|
+
|
|
187
|
+
- HTTP: `GET /api/v1/reports/{report_id}`
|
|
188
|
+
- operationId: `get_object_report_api_reports__report_id__get` (also callable as `g8.api.call("get_object_report_api_reports__report_id__get", input)`)
|
|
189
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
190
|
+
- API-key scope: `objects:read`
|
|
191
|
+
|
|
192
|
+
One report. A part of it this credential cannot see comes back as ``{"id": ..., "restricted": true}``.
|
|
193
|
+
|
|
194
|
+
**Input**
|
|
195
|
+
|
|
196
|
+
| Field | Type | Required | Description |
|
|
197
|
+
|---|---|---|---|
|
|
198
|
+
| `path.report_id` | `string (uuid)` | yes | |
|
|
199
|
+
|
|
200
|
+
**Returns** `ApiResponse_ReportDefinitionResponse_`: the envelope `{ data: ReportDefinitionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
201
|
+
|
|
202
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
203
|
+
|
|
204
|
+
`ReportDefinitionResponse` fields:
|
|
205
|
+
|
|
206
|
+
| Field | Type | Required | Description |
|
|
207
|
+
|---|---|---|---|
|
|
208
|
+
| `can_delete` | `boolean` | yes | |
|
|
209
|
+
| `can_edit` | `boolean` | yes | |
|
|
210
|
+
| `chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
211
|
+
| `config` | `Record<string, unknown>` | yes | |
|
|
212
|
+
| `created_at` | `string (date-time)` | yes | |
|
|
213
|
+
| `id` | `string (uuid)` | yes | |
|
|
214
|
+
| `is_owner` | `boolean` | yes | |
|
|
215
|
+
| `owner` | `ReportOwner` | yes | |
|
|
216
|
+
| `revision` | `integer` | yes | |
|
|
217
|
+
| `source` | `ReportSource` | yes | |
|
|
218
|
+
| `title` | `string` | yes | |
|
|
219
|
+
| `updated_at` | `string (date-time)` | yes | |
|
|
220
|
+
| `visibility` | `"private" \| "org"` | yes | |
|
|
221
|
+
| `description` | `string \| null` | no | |
|
|
222
|
+
| `restricted` | `Array<RestrictedComponent>` | no | |
|
|
223
|
+
| `restricted_count` | `integer` | no | default `0` |
|
|
224
|
+
|
|
225
|
+
**Example**
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
const result = await g8.api.reports.getObjectReportApi({ path: { report_id: "00000000-0000-0000-0000-000000000000" } });
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
<a id="op-listobjectreportsapi"></a>
|
|
234
|
+
|
|
235
|
+
### `g8.api.reports.listObjectReportsApi(input?)`
|
|
236
|
+
|
|
237
|
+
**List Object Reports Api**
|
|
238
|
+
|
|
239
|
+
- HTTP: `GET /api/v1/reports`
|
|
240
|
+
- operationId: `list_object_reports_api_reports_get` (also callable as `g8.api.call("list_object_reports_api_reports_get", input)`)
|
|
241
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
242
|
+
- API-key scope: `objects:read`
|
|
243
|
+
|
|
244
|
+
List the reports this credential may open: its own, and shared ones whose source it can read. ``owner=me``
|
|
245
|
+
narrows to this credential's. ``can_share`` says whether it may save a shared report.
|
|
246
|
+
|
|
247
|
+
**Input**
|
|
248
|
+
|
|
249
|
+
| Field | Type | Required | Description |
|
|
250
|
+
|---|---|---|---|
|
|
251
|
+
| `query.object_slug` | `string \| null` | no | |
|
|
252
|
+
| `query.owner` | `string \| null` | no | |
|
|
253
|
+
| `query.visibility` | `string \| null` | no | |
|
|
254
|
+
| `query.limit` | `integer` | no | default `50` |
|
|
255
|
+
| `query.offset` | `integer` | no | default `0` |
|
|
256
|
+
|
|
257
|
+
**Returns** `ApiResponse_ReportListResponse_`: the envelope `{ data: ReportListResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
258
|
+
|
|
259
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
260
|
+
|
|
261
|
+
`ReportListResponse` fields:
|
|
262
|
+
|
|
263
|
+
| Field | Type | Required | Description |
|
|
264
|
+
|---|---|---|---|
|
|
265
|
+
| `can_share` | `boolean` | yes | |
|
|
266
|
+
| `reports` | `Array<ReportDefinitionResponse>` | yes | |
|
|
267
|
+
| `total` | `integer` | yes | |
|
|
268
|
+
|
|
269
|
+
**Example**
|
|
270
|
+
|
|
271
|
+
```ts
|
|
272
|
+
const result = await g8.api.reports.listObjectReportsApi();
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
<a id="op-previewobjectreportapi"></a>
|
|
278
|
+
|
|
279
|
+
### `g8.api.reports.previewObjectReportApi(input)`
|
|
280
|
+
|
|
281
|
+
**Preview Object Report Api**
|
|
282
|
+
|
|
283
|
+
- HTTP: `POST /api/v1/reports/preview`
|
|
284
|
+
- operationId: `preview_object_report_api_reports_preview_post` (also callable as `g8.api.call("preview_object_report_api_reports_preview_post", input)`)
|
|
285
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
286
|
+
- API-key scope: `objects:read`
|
|
287
|
+
|
|
288
|
+
Run an unsaved report with this credential's own access and a 10 second budget (nothing partial is returned).
|
|
289
|
+
|
|
290
|
+
**Input**
|
|
291
|
+
|
|
292
|
+
| Field | Type | Required | Description |
|
|
293
|
+
|---|---|---|---|
|
|
294
|
+
| `body` | `ReportPreview` | yes | Request body; fields below. |
|
|
295
|
+
|
|
296
|
+
Body fields (`ReportPreview`):
|
|
297
|
+
|
|
298
|
+
| Field | Type | Required | Description |
|
|
299
|
+
|---|---|---|---|
|
|
300
|
+
| `body.chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
301
|
+
| `body.config` | `ReportConfig` | yes | |
|
|
302
|
+
| `body.object_slug` | `string` | yes | min length 1, max length 100 |
|
|
303
|
+
| `body.as_of` | `string (date) \| null` | no | |
|
|
304
|
+
|
|
305
|
+
**Returns** `ApiResponse_ReportResult_`: the envelope `{ data: ReportResult, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
306
|
+
|
|
307
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
308
|
+
|
|
309
|
+
`ReportResult` fields:
|
|
310
|
+
|
|
311
|
+
| Field | Type | Required | Description |
|
|
312
|
+
|---|---|---|---|
|
|
313
|
+
| `chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
314
|
+
| `source` | `ReportSource` | yes | |
|
|
315
|
+
| `timezone` | `string` | yes | |
|
|
316
|
+
| `as_of` | `AsOf \| null` | no | |
|
|
317
|
+
| `chart_limit` | `integer` | no | default `20` |
|
|
318
|
+
| `chart_other` | `ChartOther \| null` | no | |
|
|
319
|
+
| `chart_truncated` | `boolean` | no | default `false` |
|
|
320
|
+
| `columns` | `Array<ResultColumn>` | no | |
|
|
321
|
+
| `disclosures` | `Array<string>` | no | |
|
|
322
|
+
| `gaps` | `Array<GapNote>` | no | |
|
|
323
|
+
| `history_supported` | `boolean` | no | default `true` |
|
|
324
|
+
| `kind` | `"result"` | no | default `"result"` |
|
|
325
|
+
| `restricted` | `Array<RestrictedComponent>` | no | |
|
|
326
|
+
| `row_limit` | `integer` | no | default `500` |
|
|
327
|
+
| `rows` | `Array<ResultRow>` | no | |
|
|
328
|
+
| `status` | `"ok" \| "restricted"` | no | default `"ok"` |
|
|
329
|
+
| `total_base_records` | `integer` | no | default `0` |
|
|
330
|
+
| `total_groups` | `integer` | no | default `0` |
|
|
331
|
+
| `totals` | `ResultTotals \| null` | no | |
|
|
332
|
+
| `truncated` | `boolean` | no | default `false` |
|
|
333
|
+
|
|
334
|
+
**Example**
|
|
335
|
+
|
|
336
|
+
```ts
|
|
337
|
+
const result = await g8.api.reports.previewObjectReportApi({ body: { chart_type: "table", config: {}, object_slug: "example" } });
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
<a id="op-updateobjectreportapi"></a>
|
|
343
|
+
|
|
344
|
+
### `g8.api.reports.updateObjectReportApi(input)`
|
|
345
|
+
|
|
346
|
+
**Update Object Report Api**
|
|
347
|
+
|
|
348
|
+
- HTTP: `PATCH /api/v1/reports/{report_id}`
|
|
349
|
+
- operationId: `update_object_report_api_reports__report_id__patch` (also callable as `g8.api.call("update_object_report_api_reports__report_id__patch", input)`)
|
|
350
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
351
|
+
- API-key scope: `objects:write`
|
|
352
|
+
|
|
353
|
+
Edit a report this credential owns. ``expected_revision`` guards a concurrent edit (409).
|
|
354
|
+
|
|
355
|
+
**Input**
|
|
356
|
+
|
|
357
|
+
| Field | Type | Required | Description |
|
|
358
|
+
|---|---|---|---|
|
|
359
|
+
| `path.report_id` | `string (uuid)` | yes | |
|
|
360
|
+
| `body` | `ReportUpdate` | yes | Request body; fields below. |
|
|
361
|
+
|
|
362
|
+
Body fields (`ReportUpdate`):
|
|
363
|
+
|
|
364
|
+
| Field | Type | Required | Description |
|
|
365
|
+
|---|---|---|---|
|
|
366
|
+
| `body.chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage" \| null` | no | |
|
|
367
|
+
| `body.config` | `ReportConfig \| null` | no | |
|
|
368
|
+
| `body.description` | `string \| null` | no | max length 2000 |
|
|
369
|
+
| `body.expected_revision` | `integer \| null` | no | min 1 |
|
|
370
|
+
| `body.title` | `string \| null` | no | min length 1, max length 200 |
|
|
371
|
+
| `body.visibility` | `"private" \| "org" \| null` | no | |
|
|
372
|
+
|
|
373
|
+
**Returns** `ApiResponse_ReportDefinitionResponse_`: the envelope `{ data: ReportDefinitionResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
374
|
+
|
|
375
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
376
|
+
|
|
377
|
+
`ReportDefinitionResponse` fields:
|
|
378
|
+
|
|
379
|
+
| Field | Type | Required | Description |
|
|
380
|
+
|---|---|---|---|
|
|
381
|
+
| `can_delete` | `boolean` | yes | |
|
|
382
|
+
| `can_edit` | `boolean` | yes | |
|
|
383
|
+
| `chart_type` | `"table" \| "bar" \| "line" \| "funnel" \| "stage_over_time" \| "time_in_stage"` | yes | |
|
|
384
|
+
| `config` | `Record<string, unknown>` | yes | |
|
|
385
|
+
| `created_at` | `string (date-time)` | yes | |
|
|
386
|
+
| `id` | `string (uuid)` | yes | |
|
|
387
|
+
| `is_owner` | `boolean` | yes | |
|
|
388
|
+
| `owner` | `ReportOwner` | yes | |
|
|
389
|
+
| `revision` | `integer` | yes | |
|
|
390
|
+
| `source` | `ReportSource` | yes | |
|
|
391
|
+
| `title` | `string` | yes | |
|
|
392
|
+
| `updated_at` | `string (date-time)` | yes | |
|
|
393
|
+
| `visibility` | `"private" \| "org"` | yes | |
|
|
394
|
+
| `description` | `string \| null` | no | |
|
|
395
|
+
| `restricted` | `Array<RestrictedComponent>` | no | |
|
|
396
|
+
| `restricted_count` | `integer` | no | default `0` |
|
|
397
|
+
|
|
398
|
+
**Example**
|
|
399
|
+
|
|
400
|
+
```ts
|
|
401
|
+
const result = await g8.api.reports.updateObjectReportApi({
|
|
402
|
+
path: { report_id: "00000000-0000-0000-0000-000000000000" },
|
|
403
|
+
body: {},
|
|
404
|
+
});
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## Referenced types
|
|
410
|
+
|
|
411
|
+
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
412
|
+
|
|
413
|
+
<a id="type-asof"></a>
|
|
414
|
+
|
|
415
|
+
### `AsOf`
|
|
416
|
+
|
|
417
|
+
| Field | Type | Required | Description |
|
|
418
|
+
|---|---|---|---|
|
|
419
|
+
| `date` | `string (date)` | yes | |
|
|
420
|
+
| `instant` | `string (date-time)` | yes | |
|
|
421
|
+
| `timezone` | `string` | yes | |
|
|
422
|
+
|
|
423
|
+
<a id="type-chartother"></a>
|
|
424
|
+
|
|
425
|
+
### `ChartOther`
|
|
426
|
+
|
|
427
|
+
What the chart folds into "Other": every group beyond ``chart_limit``. Only additive measures (count, sum, related_count) are filled in; an average, minimum or maximum cannot be folded and is None.
|
|
428
|
+
|
|
429
|
+
| Field | Type | Required | Description |
|
|
430
|
+
|---|---|---|---|
|
|
431
|
+
| `group_count` | `integer` | yes | |
|
|
432
|
+
| `measures` | `Record<string, number \| integer \| null>` | yes | |
|
|
433
|
+
| `record_count` | `integer` | yes | |
|
|
434
|
+
|
|
435
|
+
<a id="type-drilldownrequest"></a>
|
|
436
|
+
|
|
437
|
+
### `DrilldownRequest`
|
|
438
|
+
|
|
439
|
+
Open the records behind one number: ``target`` is a result row's ``drilldown``, echoed back unchanged.
|
|
440
|
+
|
|
441
|
+
| Field | Type | Required | Description |
|
|
442
|
+
|---|---|---|---|
|
|
443
|
+
| `target` | `GroupTarget \| StageTarget \| SnapshotTarget \| AllTarget` | yes | |
|
|
444
|
+
| `after_record_id` | `string (uuid) \| null` | no | |
|
|
445
|
+
| `limit` | `integer` | no | default `50`, min 1, max 200 |
|
|
446
|
+
|
|
447
|
+
<a id="type-gapnote"></a>
|
|
448
|
+
|
|
449
|
+
### `GapNote`
|
|
450
|
+
|
|
451
|
+
| Field | Type | Required | Description |
|
|
452
|
+
|---|---|---|---|
|
|
453
|
+
| `component` | `string` | yes | |
|
|
454
|
+
| `records` | `integer` | yes | |
|
|
455
|
+
| `kind` | `"no_history"` | no | default `"no_history"` |
|
|
456
|
+
|
|
457
|
+
<a id="type-reportconfig"></a>
|
|
458
|
+
|
|
459
|
+
### `ReportConfig`
|
|
460
|
+
|
|
461
|
+
What a report computes. ``timezone`` (an IANA name) fixes how dates are bucketed and what "end of day" means; when absent the organization's time zone applies (never the server's).
|
|
462
|
+
|
|
463
|
+
| Field | Type | Required | Description |
|
|
464
|
+
|---|---|---|---|
|
|
465
|
+
| `filters` | `Array<ReportFilter>` | no | max items 10 |
|
|
466
|
+
| `group_by` | `Array<ReportGroupBy>` | no | max items 3 |
|
|
467
|
+
| `measures` | `Array<ReportMeasure>` | no | max items 10 |
|
|
468
|
+
| `range` | `ReportRange \| null` | no | |
|
|
469
|
+
| `stage` | `ReportStage \| null` | no | |
|
|
470
|
+
| `timezone` | `string \| null` | no | max length 64 |
|
|
471
|
+
|
|
472
|
+
<a id="type-reportowner"></a>
|
|
473
|
+
|
|
474
|
+
### `ReportOwner`
|
|
475
|
+
|
|
476
|
+
| Field | Type | Required | Description |
|
|
477
|
+
|---|---|---|---|
|
|
478
|
+
| `id` | `string \| null` | no | |
|
|
479
|
+
| `is_you` | `boolean` | no | default `false` |
|
|
480
|
+
| `name` | `string \| null` | no | |
|
|
481
|
+
|
|
482
|
+
<a id="type-reportsource"></a>
|
|
483
|
+
|
|
484
|
+
### `ReportSource`
|
|
485
|
+
|
|
486
|
+
| Field | Type | Required | Description |
|
|
487
|
+
|---|---|---|---|
|
|
488
|
+
| `kind` | `"object" \| "process_list"` | yes | |
|
|
489
|
+
| `plural_noun` | `string` | yes | |
|
|
490
|
+
| `singular_noun` | `string` | yes | |
|
|
491
|
+
| `slug` | `string` | yes | |
|
|
492
|
+
| `is_archived` | `boolean` | no | default `false` |
|
|
493
|
+
|
|
494
|
+
<a id="type-restrictedcomponent"></a>
|
|
495
|
+
|
|
496
|
+
### `RestrictedComponent`
|
|
497
|
+
|
|
498
|
+
A part of a report the viewer may not see. Hidden means ABSENT: it carries no title, no object name, no type and no reason, only its position id (``m0`` the first measure, ``g0`` the first group-by, ``f0`` the first filter, ``stage`` the stage field), so a client can lock that slot in place.
|
|
499
|
+
|
|
500
|
+
| Field | Type | Required | Description |
|
|
501
|
+
|---|---|---|---|
|
|
502
|
+
| `id` | `string` | yes | |
|
|
503
|
+
| `restricted` | `true` | no | default `true` |
|
|
504
|
+
|
|
505
|
+
<a id="type-resultcolumn"></a>
|
|
506
|
+
|
|
507
|
+
### `ResultColumn`
|
|
508
|
+
|
|
509
|
+
| Field | Type | Required | Description |
|
|
510
|
+
|---|---|---|---|
|
|
511
|
+
| `id` | `string` | yes | |
|
|
512
|
+
| `kind` | `"group_by" \| "measure" \| "stage" \| "gap"` | yes | |
|
|
513
|
+
| `grain` | `"day" \| "week" \| "month" \| "quarter" \| "year" \| null` | no | |
|
|
514
|
+
| `label` | `string \| null` | no | |
|
|
515
|
+
| `restricted` | `boolean` | no | default `false` |
|
|
516
|
+
| `value_type` | `string \| null` | no | |
|
|
517
|
+
|
|
518
|
+
<a id="type-resultrow"></a>
|
|
519
|
+
|
|
520
|
+
### `ResultRow`
|
|
521
|
+
|
|
522
|
+
| Field | Type | Required | Description |
|
|
523
|
+
|---|---|---|---|
|
|
524
|
+
| `drilldown` | `GroupTarget \| StageTarget \| SnapshotTarget \| AllTarget` | yes | |
|
|
525
|
+
| `key` | `string` | yes | |
|
|
526
|
+
| `group` | `Array<GroupValue>` | no | |
|
|
527
|
+
| `measures` | `Record<string, number \| integer \| null>` | no | |
|
|
528
|
+
| `partial` | `boolean` | no | default `false` |
|
|
529
|
+
| `record_count` | `integer` | no | default `0` |
|
|
530
|
+
| `unstaged` | `Record<string, integer>` | no | |
|
|
531
|
+
|
|
532
|
+
<a id="type-resulttotals"></a>
|
|
533
|
+
|
|
534
|
+
### `ResultTotals`
|
|
535
|
+
|
|
536
|
+
| Field | Type | Required | Description |
|
|
537
|
+
|---|---|---|---|
|
|
538
|
+
| `record_count` | `integer` | yes | |
|
|
539
|
+
| `measures` | `Record<string, number \| integer \| null>` | no | |
|
|
@@ -245,10 +245,10 @@ export interface ScheduleBuyDomainSuggestRequest {
|
|
|
245
245
|
/**
|
|
246
246
|
* Create and LOCK a staggered buying plan. PLACES REAL CREDIT HOLDS.
|
|
247
247
|
*
|
|
248
|
-
* Mirrors the app's ``CreatePlanRequest`` field for field, including
|
|
249
|
-
*
|
|
250
|
-
* ``
|
|
251
|
-
*
|
|
248
|
+
* Mirrors the app's ``CreatePlanRequest`` field for field, including the
|
|
249
|
+
* rule that new plans require ``persona_ids``. Manual ``registrants`` /
|
|
250
|
+
* ``mailbox_aliases`` are still parsed so a legacy payload 422s here
|
|
251
|
+
* rather than inside the proxy.
|
|
252
252
|
*/
|
|
253
253
|
export interface ScheduleBuyPlanRequest {
|
|
254
254
|
/** Sends per mailbox per day */
|
|
@@ -261,15 +261,15 @@ export interface ScheduleBuyPlanRequest {
|
|
|
261
261
|
domains_per_batch?: number;
|
|
262
262
|
/** Idle mailboxes you already hold, from /suggest */
|
|
263
263
|
idle_mailboxes_snapshot: number;
|
|
264
|
-
/**
|
|
264
|
+
/** Not accepted for new plans. Use persona_ids. */
|
|
265
265
|
mailbox_aliases?: Array<Record<string, unknown>>;
|
|
266
266
|
/** Mailboxes bought on each domain */
|
|
267
267
|
mailboxes_per_domain?: number;
|
|
268
|
-
/** Sender
|
|
268
|
+
/** Sender identity IDs. At least one is required to start a schedule. */
|
|
269
269
|
persona_ids?: Array<number> | null;
|
|
270
|
-
/**
|
|
270
|
+
/** Not accepted for new plans. Use persona_ids. */
|
|
271
271
|
registrants?: Array<Record<string, unknown>>;
|
|
272
|
-
/** Adopt these owned
|
|
272
|
+
/** Adopt these owned domains instead of buying. Each must have fewer live mailboxes than mailboxes_per_domain; the plan tops it up and holds credits for exactly the missing ones */
|
|
273
273
|
reuse_domains?: Array<string> | null;
|
|
274
274
|
/** Sending days assumed per month */
|
|
275
275
|
sending_days_per_month?: number;
|
|
@@ -292,6 +292,10 @@ export interface ScheduleBuySuggestRequest {
|
|
|
292
292
|
domains_per_batch?: number;
|
|
293
293
|
/** Mailboxes bought on each domain */
|
|
294
294
|
mailboxes_per_domain?: number;
|
|
295
|
+
/** Price a REUSE plan over this many owned domains instead */
|
|
296
|
+
reuse_domain_count?: number | null;
|
|
297
|
+
/** With reuse_domain_count: the total mailboxes those domains are missing (each domain: mailboxes_per_domain minus its live mailboxes). Omitted, every domain is priced as empty */
|
|
298
|
+
reuse_missing_mailboxes?: number | null;
|
|
295
299
|
/** Sending days assumed per month */
|
|
296
300
|
sending_days_per_month?: number;
|
|
297
301
|
/** Contacts you intend to reach per month */
|
package/docs/api/scheduleBuy.md
CHANGED
|
@@ -143,13 +143,14 @@ moment this returns. `total_credits_held` in the response is the figure.
|
|
|
143
143
|
Org admins and owners only, and only for an org on a paid or pre-funded
|
|
144
144
|
plan. 402 if the balance cannot cover the plan, 429 if the org has locked
|
|
145
145
|
more than five plans this hour, 400 for an unsupported extension or an
|
|
146
|
-
empty plan.
|
|
146
|
+
empty plan. With `reuse_domains`, 409 when a domain's mailbox count changed
|
|
147
|
+
(or it filled up) while the plan was locking: nothing stays held, re-read
|
|
148
|
+
the domains and lock again.
|
|
147
149
|
|
|
148
|
-
`persona_ids`
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
`server_idle_mailboxes`.
|
|
150
|
+
At least one `persona_ids` entry is required. Manual `registrants` /
|
|
151
|
+
`mailbox_aliases` are not accepted for new plans. `idle_mailboxes_snapshot`
|
|
152
|
+
is your own count, used to detect drift - the server recomputes it and
|
|
153
|
+
returns its own as `server_idle_mailboxes`.
|
|
153
154
|
|
|
154
155
|
Send an `Idempotency-Key` header. A retried lock without one places a
|
|
155
156
|
second full set of holds.
|
|
@@ -170,11 +171,11 @@ Body fields (`ScheduleBuyPlanRequest`):
|
|
|
170
171
|
| `body.domain_names` | `Array<string> \| null` | no | Approved names to buy, in order min items 1, max items 500 |
|
|
171
172
|
| `body.domain_tld` | `string` | no | Extension to buy, e.g. '.com' default `".com"` |
|
|
172
173
|
| `body.domains_per_batch` | `integer` | no | Domains bought per daily batch default `10`, min 1, max 100 |
|
|
173
|
-
| `body.mailbox_aliases` | `Array<Record<string, unknown>>` | no |
|
|
174
|
+
| `body.mailbox_aliases` | `Array<Record<string, unknown>>` | no | Not accepted for new plans. Use persona_ids. |
|
|
174
175
|
| `body.mailboxes_per_domain` | `integer` | no | Mailboxes bought on each domain default `3`, min 1, max 5 |
|
|
175
|
-
| `body.persona_ids` | `Array<integer> \| null` | no | Sender
|
|
176
|
-
| `body.registrants` | `Array<Record<string, unknown>>` | no |
|
|
177
|
-
| `body.reuse_domains` | `Array<string> \| null` | no | Adopt these owned
|
|
176
|
+
| `body.persona_ids` | `Array<integer> \| null` | no | Sender identity IDs. At least one is required to start a schedule. max items 20 |
|
|
177
|
+
| `body.registrants` | `Array<Record<string, unknown>>` | no | Not accepted for new plans. Use persona_ids. max items 20 |
|
|
178
|
+
| `body.reuse_domains` | `Array<string> \| null` | no | Adopt these owned domains instead of buying. Each must have fewer live mailboxes than mailboxes_per_domain; the plan tops it up and holds credits for exactly the missing ones min items 1, max items 500 |
|
|
178
179
|
| `body.sending_days_per_month` | `integer` | no | Sending days assumed per month default `22`, min 1, max 31 |
|
|
179
180
|
| `body.warmup_provider` | `"warmy" \| "instantly" \| "smartlead"` | no | Warmup engine the bought mailboxes are enrolled with default `"warmy"` |
|
|
180
181
|
| `body.workspace_uid` | `string \| null` | no | Existing provisioning workspace to reuse |
|
|
@@ -367,6 +368,8 @@ Body fields (`ScheduleBuySuggestRequest`):
|
|
|
367
368
|
| `body.daily_send_cap` | `integer` | no | Sends per mailbox per day default `15`, min 1, max 100 |
|
|
368
369
|
| `body.domains_per_batch` | `integer` | no | Domains bought per daily batch default `10`, min 1, max 100 |
|
|
369
370
|
| `body.mailboxes_per_domain` | `integer` | no | Mailboxes bought on each domain default `3`, min 1, max 5 |
|
|
371
|
+
| `body.reuse_domain_count` | `integer \| null` | no | Price a REUSE plan over this many owned domains instead min 1, max 500 |
|
|
372
|
+
| `body.reuse_missing_mailboxes` | `integer \| null` | no | With reuse_domain_count: the total mailboxes those domains are missing (each domain: mailboxes_per_domain minus its live mailboxes). Omitted, every domain is priced as empty min 1, max 2500 |
|
|
370
373
|
| `body.sending_days_per_month` | `integer` | no | Sending days assumed per month default `22`, min 1, max 31 |
|
|
371
374
|
|
|
372
375
|
**Returns** `ApiResponse_MailboxDomainPayload_`: the envelope `{ data: MailboxDomainPayload, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|