@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
package/docs/api/objects.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Types for `g8.api.objects` (Objects):
|
|
4
|
+
* Types for `g8.api.objects` (Objects): 42 operations.
|
|
5
5
|
*
|
|
6
6
|
* For reading. In code, import from the package instead:
|
|
7
7
|
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
@@ -54,6 +54,7 @@ export interface ObjectsMembers {
|
|
|
54
54
|
updateObjectRecord: "update_object_record_objects__object_slug__records__record_id__patch";
|
|
55
55
|
updateObjectView: "update_object_view_objects__object_slug__views__view_id__put";
|
|
56
56
|
upsertObjectRecord: "upsert_object_record_objects__object_slug__records_upsert_post";
|
|
57
|
+
validateFormula: "validate_formula_objects__object_slug__attributes_formula_validate_post";
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
/** Input and output of every `g8.api.objects` operation, keyed by operationId. */
|
|
@@ -790,15 +791,37 @@ export interface ObjectsOperations {
|
|
|
790
791
|
};
|
|
791
792
|
output: ApiResponse_ObjectRecordResponse_;
|
|
792
793
|
};
|
|
794
|
+
/**
|
|
795
|
+
* POST /objects/{object_slug}/attributes/formula/validate
|
|
796
|
+
* Validate Formula
|
|
797
|
+
* tier: read · scope: objects:read
|
|
798
|
+
*/
|
|
799
|
+
validate_formula_objects__object_slug__attributes_formula_validate_post: {
|
|
800
|
+
input: {
|
|
801
|
+
path: {
|
|
802
|
+
object_slug: string;
|
|
803
|
+
};
|
|
804
|
+
headers?: {
|
|
805
|
+
"X-Target-Org-Id"?: string | null;
|
|
806
|
+
};
|
|
807
|
+
body: FormulaValidateRequest;
|
|
808
|
+
};
|
|
809
|
+
output: ApiResponse_FormulaValidateResponse_;
|
|
810
|
+
};
|
|
793
811
|
}
|
|
794
812
|
|
|
795
|
-
//
|
|
813
|
+
// 89 schemas referenced above (the same as G8Contract.<Name>).
|
|
796
814
|
|
|
797
815
|
export interface ApiResponse_AttributeDefinitionResponse_ {
|
|
798
816
|
data: AttributeDefinitionResponse;
|
|
799
817
|
pagination?: PaginationMeta | null;
|
|
800
818
|
}
|
|
801
819
|
|
|
820
|
+
export interface ApiResponse_FormulaValidateResponse_ {
|
|
821
|
+
data: FormulaValidateResponse;
|
|
822
|
+
pagination?: PaginationMeta | null;
|
|
823
|
+
}
|
|
824
|
+
|
|
802
825
|
export interface ApiResponse_NoneType_ {
|
|
803
826
|
data: null;
|
|
804
827
|
pagination?: PaginationMeta | null;
|
|
@@ -922,6 +945,7 @@ export interface ApiResponse_list_SavedViewResponse__ {
|
|
|
922
945
|
/** Configuration for specific attribute types. */
|
|
923
946
|
export interface AttributeConfig {
|
|
924
947
|
currency_code?: string | null;
|
|
948
|
+
formula?: FormulaInput | null;
|
|
925
949
|
max_value?: number | null;
|
|
926
950
|
options?: Array<Record<string, unknown>> | null;
|
|
927
951
|
referenced_object?: string | null;
|
|
@@ -975,7 +999,7 @@ export interface AttributeDefinitionResponse {
|
|
|
975
999
|
}
|
|
976
1000
|
|
|
977
1001
|
/** Valid attribute types for the Custom Objects type system. */
|
|
978
|
-
export type AttributeType = "text" | "number" | "currency" | "date" | "timestamp" | "checkbox" | "select" | "status" | "email_address" | "phone_number" | "domain" | "location" | "personal_name" | "record_reference" | "rating" | "actor_reference";
|
|
1002
|
+
export type AttributeType = "text" | "number" | "currency" | "date" | "timestamp" | "checkbox" | "select" | "status" | "email_address" | "phone_number" | "domain" | "location" | "personal_name" | "record_reference" | "rating" | "actor_reference" | "formula";
|
|
979
1003
|
|
|
980
1004
|
export interface AttributeUpdateRequest {
|
|
981
1005
|
config?: AttributeConfig | null;
|
|
@@ -1018,6 +1042,41 @@ export interface AttributeUpdateRequest {
|
|
|
1018
1042
|
*/
|
|
1019
1043
|
export type EntityType = "custom_objects" | "contacts" | "companies" | "deals" | "leads" | "lists" | "contacts_view" | "companies_view" | "list_contacts" | "list_companies" | "search_people" | "search_companies" | "abm_companies" | "enrichment_workbench" | "enrichment_workbenches";
|
|
1020
1044
|
|
|
1045
|
+
/**
|
|
1046
|
+
* Guided-builder input for a computed field (CRM-06): only the typed JSON expression. The result type,
|
|
1047
|
+
* currency, dependencies, input closure and rollup flag are computed and stored server side at save time --
|
|
1048
|
+
* never accepted from a client. A rollup is a ``rollup`` node (the whole expression, or nested).
|
|
1049
|
+
*/
|
|
1050
|
+
export interface FormulaInput {
|
|
1051
|
+
expression: Record<string, unknown>;
|
|
1052
|
+
}
|
|
1053
|
+
|
|
1054
|
+
/** Dry-run check of a typed formula expression. Nothing is persisted or locked. */
|
|
1055
|
+
export interface FormulaValidateRequest {
|
|
1056
|
+
/** Slug of the computed field being EDITED (checked against its own place in the dependency graph); omit for a new one. */
|
|
1057
|
+
attribute_slug?: string | null;
|
|
1058
|
+
/** The typed JSON expression (a node tree; a rollup is a `rollup` node). */
|
|
1059
|
+
expression: Record<string, unknown>;
|
|
1060
|
+
/** Evaluate the expression against this record's current values. */
|
|
1061
|
+
preview_record_id?: string | null;
|
|
1062
|
+
}
|
|
1063
|
+
|
|
1064
|
+
export interface FormulaValidateResponse {
|
|
1065
|
+
currency_code?: string | null;
|
|
1066
|
+
depends_on?: Array<Record<string, unknown>>;
|
|
1067
|
+
/** Field-level problems (`reason` is a stable code). */
|
|
1068
|
+
errors?: Array<Record<string, unknown>>;
|
|
1069
|
+
/** Why the preview record could not be evaluated (a code, never a value). */
|
|
1070
|
+
preview_error?: string | null;
|
|
1071
|
+
/** With a preview record: one entry per rollup in the expression, counted over the records the caller may read. */
|
|
1072
|
+
preview_rollups?: Array<PreviewRollup>;
|
|
1073
|
+
preview_value?: unknown;
|
|
1074
|
+
referenced_object_slugs?: Array<string>;
|
|
1075
|
+
/** number, currency, text, checkbox, date or timestamp. */
|
|
1076
|
+
result_type?: string | null;
|
|
1077
|
+
valid: boolean;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1021
1080
|
export interface ImportPage {
|
|
1022
1081
|
limit?: number;
|
|
1023
1082
|
offset?: number;
|
|
@@ -1280,6 +1339,14 @@ export interface PaginationMeta {
|
|
|
1280
1339
|
total_is_lower_bound?: boolean | null;
|
|
1281
1340
|
}
|
|
1282
1341
|
|
|
1342
|
+
/** How many linked records one rollup of a previewed expression counted. */
|
|
1343
|
+
export interface PreviewRollup {
|
|
1344
|
+
/** Linked records the rollup counted for the preview record (the ones its filters keep). */
|
|
1345
|
+
matched_count: number;
|
|
1346
|
+
/** Where the rollup sits in the expression: `$` is the root, `$.left`, `$.args[1]`, `$.then_branch`. */
|
|
1347
|
+
node_path: string;
|
|
1348
|
+
}
|
|
1349
|
+
|
|
1283
1350
|
/**
|
|
1284
1351
|
* Bulk-update body: exactly one scope (explicit ids or a filtered set),
|
|
1285
1352
|
* plus the values to apply to every record in that scope.
|
|
@@ -1321,7 +1388,7 @@ export interface RecordBulkUpdateResponse {
|
|
|
1321
1388
|
/** Filter parameters for listing records. */
|
|
1322
1389
|
export interface RecordFilter {
|
|
1323
1390
|
attribute_slug: string;
|
|
1324
|
-
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "starts_with" | "is_null" | "is_not_null";
|
|
1391
|
+
operator: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "contains" | "starts_with" | "in" | "is_null" | "is_not_null";
|
|
1325
1392
|
value?: unknown | null;
|
|
1326
1393
|
}
|
|
1327
1394
|
|
|
@@ -1390,7 +1457,7 @@ export interface RecordMergeResponse {
|
|
|
1390
1457
|
}
|
|
1391
1458
|
|
|
1392
1459
|
export interface RecordMutationEntry {
|
|
1393
|
-
action: "created" | "updated" | "archived" | "restored";
|
|
1460
|
+
action: "created" | "updated" | "archived" | "restored" | "recalculated";
|
|
1394
1461
|
actor_id: string | null;
|
|
1395
1462
|
actor_type: "user" | "api" | "app" | "integration" | "system";
|
|
1396
1463
|
app_id?: string | null;
|
package/docs/api/objects.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# `g8.api.objects`: Objects
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
42 operations (14 read, 22 write, 6 destructive).
|
|
6
6
|
|
|
7
7
|
18 of these also have a hand-written method (`g8.objects`), marked **★** below. Prefer the hand-written method when one exists: it unwraps the `data` envelope and takes friendlier arguments. See [../sdk-clients.md](../sdk-clients.md).
|
|
8
8
|
|
|
@@ -63,6 +63,7 @@ Exact TypeScript types for every operation on this page, and every schema they u
|
|
|
63
63
|
| [`updateObjectRecord`](#op-updateobjectrecord) ★ | `PATCH /api/v1/objects/{object_slug}/records/{record_id}` | write | `objects:write` | Update Object Record |
|
|
64
64
|
| [`updateObjectView`](#op-updateobjectview) | `PUT /api/v1/objects/{object_slug}/views/{view_id}` | write | `objects:write` | Update Object View |
|
|
65
65
|
| [`upsertObjectRecord`](#op-upsertobjectrecord) ★ | `POST /api/v1/objects/{object_slug}/records/upsert` | write | `objects:write` | Upsert Object Record |
|
|
66
|
+
| [`validateFormula`](#op-validateformula) | `POST /api/v1/objects/{object_slug}/attributes/formula/validate` | read | `objects:read` | Validate Formula |
|
|
66
67
|
|
|
67
68
|
---
|
|
68
69
|
|
|
@@ -78,7 +79,8 @@ Exact TypeScript types for every operation on this page, and every schema they u
|
|
|
78
79
|
- API-key scope: `objects:manage`
|
|
79
80
|
- ★ Hand-written: [`g8.objects.archiveAttribute()`](../sdk-clients.md#g8-objects-archiveattribute)
|
|
80
81
|
|
|
81
|
-
Archive a custom field, retaining its values. Restore with PATCH is_archived=false.
|
|
82
|
+
Archive a custom field, retaining its values. Restore with PATCH is_archived=false. Refused (409
|
|
83
|
+
`formula_dependency`) while a computed field reads it, with every dependent the credential may see.
|
|
82
84
|
|
|
83
85
|
**Input**
|
|
84
86
|
|
|
@@ -134,7 +136,8 @@ const result = await g8.api.objects.archiveAttribute({ path: { object_slug: "exa
|
|
|
134
136
|
|
|
135
137
|
PREVIEW. This endpoint is deployed but gated: it returns 404 unless the hosted app platform is enabled for your organization. It is published here so the contract describes the whole surface, not so it can be called today.
|
|
136
138
|
|
|
137
|
-
Archive a custom object without deleting data; restore with PATCH is_archived=false.
|
|
139
|
+
Archive a custom object without deleting data; restore with PATCH is_archived=false. Refused (409
|
|
140
|
+
`formula_dependency`) while a computed field elsewhere reads it, naming every dependent the credential may see.
|
|
138
141
|
|
|
139
142
|
**Input**
|
|
140
143
|
|
|
@@ -366,7 +369,9 @@ const result = await g8.api.objects.commitObjectCsvImport({
|
|
|
366
369
|
|
|
367
370
|
PREVIEW. This endpoint is deployed but gated: it returns 404 unless the hosted app platform is enabled for your organization. It is published here so the contract describes the whole surface, not so it can be called today.
|
|
368
371
|
|
|
369
|
-
Create a typed CRM field. Requires objects:manage and current Admin access.
|
|
372
|
+
Create a typed CRM field. Requires objects:manage and current Admin access. A computed field is checked against
|
|
373
|
+
the schema the credential may see (an admin key included): a field it cannot see or an object it cannot read is
|
|
374
|
+
`unknown_field` / `unknown_relationship` (422), exactly as validate answers.
|
|
370
375
|
|
|
371
376
|
**Input**
|
|
372
377
|
|
|
@@ -1940,7 +1945,8 @@ const result = await g8.api.objects.setDefaultObjectView({ path: { object_slug:
|
|
|
1940
1945
|
- API-key scope: `objects:manage`
|
|
1941
1946
|
- ★ Hand-written: [`g8.objects.updateAttribute()`](../sdk-clients.md#g8-objects-updateattribute)
|
|
1942
1947
|
|
|
1943
|
-
Edit or restore a field; omitted values remain unchanged. Type and slug are immutable.
|
|
1948
|
+
Edit or restore a field; omitted values remain unchanged. Type and slug are immutable. A change that would
|
|
1949
|
+
break a computed field is refused (409 `formula_dependency`) with every dependent the credential may see.
|
|
1944
1950
|
|
|
1945
1951
|
**Input**
|
|
1946
1952
|
|
|
@@ -2012,7 +2018,8 @@ const result = await g8.api.objects.updateAttribute({ path: { object_slug: "exam
|
|
|
2012
2018
|
|
|
2013
2019
|
PREVIEW. This endpoint is deployed but gated: it returns 404 unless the hosted app platform is enabled for your organization. It is published here so the contract describes the whole surface, not so it can be called today.
|
|
2014
2020
|
|
|
2015
|
-
Rename, archive or restore a custom object while retaining its slug and data.
|
|
2021
|
+
Rename, archive or restore a custom object while retaining its slug and data. Archiving is refused (409
|
|
2022
|
+
`formula_dependency`) while a computed field elsewhere reads it, naming every dependent the credential may see.
|
|
2016
2023
|
|
|
2017
2024
|
**Input**
|
|
2018
2025
|
|
|
@@ -2314,6 +2321,64 @@ const result = await g8.api.objects.upsertObjectRecord({
|
|
|
2314
2321
|
|
|
2315
2322
|
---
|
|
2316
2323
|
|
|
2324
|
+
<a id="op-validateformula"></a>
|
|
2325
|
+
|
|
2326
|
+
### `g8.api.objects.validateFormula(input)`
|
|
2327
|
+
|
|
2328
|
+
**Validate Formula**
|
|
2329
|
+
|
|
2330
|
+
- HTTP: `POST /api/v1/objects/{object_slug}/attributes/formula/validate`
|
|
2331
|
+
- operationId: `validate_formula_objects__object_slug__attributes_formula_validate_post` (also callable as `g8.api.call("validate_formula_objects__object_slug__attributes_formula_validate_post", input)`)
|
|
2332
|
+
- Tier: `read`: reads data; safe to call and to retry
|
|
2333
|
+
- API-key scope: `objects:read`
|
|
2334
|
+
|
|
2335
|
+
Dry-run type-check and cycle-check of a typed formula expression, optionally evaluated on one record.
|
|
2336
|
+
Nothing is stored. Read-only (`objects:read`) despite the POST verb: the expression travels in the body. The
|
|
2337
|
+
check uses YOUR view of the schema: a field you cannot see or an object you cannot read is unknown, and a preview
|
|
2338
|
+
that names one is `valid: false` with `unknown_field` (200), exactly like a name that does not exist. An admin key
|
|
2339
|
+
is held to the same object grants: API keys never bypass them.
|
|
2340
|
+
|
|
2341
|
+
**Input**
|
|
2342
|
+
|
|
2343
|
+
| Field | Type | Required | Description |
|
|
2344
|
+
|---|---|---|---|
|
|
2345
|
+
| `path.object_slug` | `string` | yes | |
|
|
2346
|
+
| `body` | `FormulaValidateRequest` | yes | Request body; fields below. |
|
|
2347
|
+
|
|
2348
|
+
Body fields (`FormulaValidateRequest`):
|
|
2349
|
+
|
|
2350
|
+
| Field | Type | Required | Description |
|
|
2351
|
+
|---|---|---|---|
|
|
2352
|
+
| `body.expression` | `Record<string, unknown>` | yes | The typed JSON expression (a node tree; a rollup is a `rollup` node). |
|
|
2353
|
+
| `body.attribute_slug` | `string \| null` | no | Slug of the computed field being EDITED (checked against its own place in the dependency graph); omit for a new one. max length 100 |
|
|
2354
|
+
| `body.preview_record_id` | `string \| null` | no | Evaluate the expression against this record's current values. max length 64 |
|
|
2355
|
+
|
|
2356
|
+
**Returns** `ApiResponse_FormulaValidateResponse_`: the envelope `{ data: FormulaValidateResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
2357
|
+
|
|
2358
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
2359
|
+
|
|
2360
|
+
`FormulaValidateResponse` fields:
|
|
2361
|
+
|
|
2362
|
+
| Field | Type | Required | Description |
|
|
2363
|
+
|---|---|---|---|
|
|
2364
|
+
| `valid` | `boolean` | yes | |
|
|
2365
|
+
| `currency_code` | `string \| null` | no | |
|
|
2366
|
+
| `depends_on` | `Array<Record<string, unknown>>` | no | |
|
|
2367
|
+
| `errors` | `Array<Record<string, unknown>>` | no | Field-level problems (`reason` is a stable code). |
|
|
2368
|
+
| `preview_error` | `string \| null` | no | Why the preview record could not be evaluated (a code, never a value). |
|
|
2369
|
+
| `preview_rollups` | `Array<PreviewRollup>` | no | With a preview record: one entry per rollup in the expression, counted over the records the caller may read. |
|
|
2370
|
+
| `preview_value` | `unknown` | no | |
|
|
2371
|
+
| `referenced_object_slugs` | `Array<string>` | no | |
|
|
2372
|
+
| `result_type` | `string \| null` | no | number, currency, text, checkbox, date or timestamp. |
|
|
2373
|
+
|
|
2374
|
+
**Example**
|
|
2375
|
+
|
|
2376
|
+
```ts
|
|
2377
|
+
const result = await g8.api.objects.validateFormula({ path: { object_slug: "example" }, body: { expression: {} } });
|
|
2378
|
+
```
|
|
2379
|
+
|
|
2380
|
+
---
|
|
2381
|
+
|
|
2317
2382
|
## Referenced types
|
|
2318
2383
|
|
|
2319
2384
|
Named types that appear in the tables above. Full TypeScript definitions: `G8Contract.<Name>` (`import type { G8Contract } from "@graph8/sdk"`).
|
|
@@ -2327,6 +2392,7 @@ Configuration for specific attribute types.
|
|
|
2327
2392
|
| Field | Type | Required | Description |
|
|
2328
2393
|
|---|---|---|---|
|
|
2329
2394
|
| `currency_code` | `string \| null` | no | |
|
|
2395
|
+
| `formula` | `FormulaInput \| null` | no | |
|
|
2330
2396
|
| `max_value` | `integer \| null` | no | |
|
|
2331
2397
|
| `options` | `Array<Record<string, unknown>> \| null` | no | |
|
|
2332
2398
|
| `referenced_object` | `string \| null` | no | |
|
|
@@ -2406,6 +2472,17 @@ Column mapping (CSV header -> field slug) and match mode. May be incomplete whil
|
|
|
2406
2472
|
| `matching_attribute` | `string \| null` | no | max length 100 |
|
|
2407
2473
|
| `mode` | `"create" \| "upsert"` | no | default `"create"` |
|
|
2408
2474
|
|
|
2475
|
+
<a id="type-previewrollup"></a>
|
|
2476
|
+
|
|
2477
|
+
### `PreviewRollup`
|
|
2478
|
+
|
|
2479
|
+
How many linked records one rollup of a previewed expression counted.
|
|
2480
|
+
|
|
2481
|
+
| Field | Type | Required | Description |
|
|
2482
|
+
|---|---|---|---|
|
|
2483
|
+
| `matched_count` | `integer` | yes | Linked records the rollup counted for the preview record (the ones its filters keep). |
|
|
2484
|
+
| `node_path` | `string` | yes | Where the rollup sits in the expression: `$` is the root, `$.left`, `$.args[1]`, `$.then_branch`. |
|
|
2485
|
+
|
|
2409
2486
|
<a id="type-recordbulkupdatefailure"></a>
|
|
2410
2487
|
|
|
2411
2488
|
### `RecordBulkUpdateFailure`
|
|
@@ -2471,7 +2548,7 @@ One generation of one attribute's value. Values are TEMPORAL rather than mutable
|
|
|
2471
2548
|
|
|
2472
2549
|
| Field | Type | Required | Description |
|
|
2473
2550
|
|---|---|---|---|
|
|
2474
|
-
| `action` | `"created" \| "updated" \| "archived" \| "restored"` | yes | |
|
|
2551
|
+
| `action` | `"created" \| "updated" \| "archived" \| "restored" \| "recalculated"` | yes | |
|
|
2475
2552
|
| `actor_id` | `string \| null` | yes | |
|
|
2476
2553
|
| `actor_type` | `"user" \| "api" \| "app" \| "integration" \| "system"` | yes | |
|
|
2477
2554
|
| `changes` | `Record<string, RecordMutationValueChange>` | yes | |
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
/* Generated by sdk/js/scripts/generate-agent-docs.ts from developer-contract/openapi.json. Regenerated on every build. */
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Types for `g8.api.processLists` (Process Lists): 6 operations.
|
|
5
|
+
*
|
|
6
|
+
* For reading. In code, import from the package instead:
|
|
7
|
+
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
8
|
+
* type In = ApiInput<"archive_process_list_api_process_lists__slug__delete">;
|
|
9
|
+
*
|
|
10
|
+
* Reference with examples: processLists.md
|
|
11
|
+
*/
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
/** `g8.api.processLists.<member>` -> the operationId it calls. */
|
|
15
|
+
export interface ProcessListsMembers {
|
|
16
|
+
archiveProcessListApi: "archive_process_list_api_process_lists__slug__delete";
|
|
17
|
+
createProcessListApi: "create_process_list_api_process_lists_post";
|
|
18
|
+
createProcessListEntryApi: "create_process_list_entry_api_process_lists__slug__entries_post";
|
|
19
|
+
getProcessListApi: "get_process_list_api_process_lists__slug__get";
|
|
20
|
+
listProcessListsApi: "list_process_lists_api_process_lists_get";
|
|
21
|
+
updateProcessListApi: "update_process_list_api_process_lists__slug__patch";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/** Input and output of every `g8.api.processLists` operation, keyed by operationId. */
|
|
25
|
+
export interface ProcessListsOperations {
|
|
26
|
+
/**
|
|
27
|
+
* DELETE /process-lists/{slug}
|
|
28
|
+
* Archive Process List Api
|
|
29
|
+
* tier: destructive · scope: objects:manage
|
|
30
|
+
*/
|
|
31
|
+
archive_process_list_api_process_lists__slug__delete: {
|
|
32
|
+
input: {
|
|
33
|
+
path: {
|
|
34
|
+
slug: string;
|
|
35
|
+
};
|
|
36
|
+
headers?: {
|
|
37
|
+
"X-Target-Org-Id"?: string | null;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
output: ApiResponse_ProcessListResponse_;
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* POST /process-lists
|
|
44
|
+
* Create Process List Api
|
|
45
|
+
* tier: write · scope: objects:manage
|
|
46
|
+
*/
|
|
47
|
+
create_process_list_api_process_lists_post: {
|
|
48
|
+
input: {
|
|
49
|
+
headers?: {
|
|
50
|
+
"X-Target-Org-Id"?: string | null;
|
|
51
|
+
};
|
|
52
|
+
body: ProcessListCreate;
|
|
53
|
+
};
|
|
54
|
+
output: ApiResponse_ProcessListResponse_;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* POST /process-lists/{slug}/entries
|
|
58
|
+
* Create Process List Entry Api
|
|
59
|
+
* tier: write · scope: objects:write
|
|
60
|
+
*/
|
|
61
|
+
create_process_list_entry_api_process_lists__slug__entries_post: {
|
|
62
|
+
input: {
|
|
63
|
+
path: {
|
|
64
|
+
slug: string;
|
|
65
|
+
};
|
|
66
|
+
headers?: {
|
|
67
|
+
"X-Target-Org-Id"?: string | null;
|
|
68
|
+
};
|
|
69
|
+
body: ProcessListEntryCreate;
|
|
70
|
+
};
|
|
71
|
+
output: ApiResponse_ProcessListEntryResponse_;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* GET /process-lists/{slug}
|
|
75
|
+
* Get Process List Api
|
|
76
|
+
* tier: read · scope: objects:read
|
|
77
|
+
*/
|
|
78
|
+
get_process_list_api_process_lists__slug__get: {
|
|
79
|
+
input: {
|
|
80
|
+
path: {
|
|
81
|
+
slug: string;
|
|
82
|
+
};
|
|
83
|
+
headers?: {
|
|
84
|
+
"X-Target-Org-Id"?: string | null;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
output: ApiResponse_ProcessListResponse_;
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* GET /process-lists
|
|
91
|
+
* List Process Lists Api
|
|
92
|
+
* tier: read · scope: objects:read
|
|
93
|
+
*/
|
|
94
|
+
list_process_lists_api_process_lists_get: {
|
|
95
|
+
input: {
|
|
96
|
+
query?: {
|
|
97
|
+
include_archived?: boolean;
|
|
98
|
+
};
|
|
99
|
+
headers?: {
|
|
100
|
+
"X-Target-Org-Id"?: string | null;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
output: ApiResponse_ProcessListListResponse_;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* PATCH /process-lists/{slug}
|
|
107
|
+
* Update Process List Api
|
|
108
|
+
* tier: write · scope: objects:manage
|
|
109
|
+
*/
|
|
110
|
+
update_process_list_api_process_lists__slug__patch: {
|
|
111
|
+
input: {
|
|
112
|
+
path: {
|
|
113
|
+
slug: string;
|
|
114
|
+
};
|
|
115
|
+
headers?: {
|
|
116
|
+
"X-Target-Org-Id"?: string | null;
|
|
117
|
+
};
|
|
118
|
+
body: ProcessListUpdate;
|
|
119
|
+
};
|
|
120
|
+
output: ApiResponse_ProcessListResponse_;
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// 13 schemas referenced above (the same as G8Contract.<Name>).
|
|
125
|
+
|
|
126
|
+
export interface ApiResponse_ProcessListEntryResponse_ {
|
|
127
|
+
data: ProcessListEntryResponse;
|
|
128
|
+
pagination?: PaginationMeta | null;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface ApiResponse_ProcessListListResponse_ {
|
|
132
|
+
data: ProcessListListResponse;
|
|
133
|
+
pagination?: PaginationMeta | null;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
export interface ApiResponse_ProcessListResponse_ {
|
|
137
|
+
data: ProcessListResponse;
|
|
138
|
+
pagination?: PaginationMeta | null;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export interface PaginationMeta {
|
|
142
|
+
/** Whether there are more pages */
|
|
143
|
+
has_next: boolean;
|
|
144
|
+
/** Items per page */
|
|
145
|
+
limit: number;
|
|
146
|
+
/** Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers. */
|
|
147
|
+
next_cursor?: string | null;
|
|
148
|
+
/** Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order. */
|
|
149
|
+
notes?: Array<string> | null;
|
|
150
|
+
/** Current page number (1-indexed) */
|
|
151
|
+
page: number;
|
|
152
|
+
/** Total number of items */
|
|
153
|
+
total: number;
|
|
154
|
+
/** Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search. */
|
|
155
|
+
total_available?: number | null;
|
|
156
|
+
/** Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search. */
|
|
157
|
+
total_is_lower_bound?: boolean | null;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface ProcessListCreate {
|
|
161
|
+
api_slug: string;
|
|
162
|
+
description?: string | null;
|
|
163
|
+
entries_label: string;
|
|
164
|
+
icon?: ("box" | "briefcase" | "building" | "calendar" | "flag" | "folder" | "globe" | "heart" | "layers" | "package" | "target" | "users") | null;
|
|
165
|
+
parent: RelationshipTarget;
|
|
166
|
+
parent_label: string;
|
|
167
|
+
plural_noun: string;
|
|
168
|
+
singular_noun: string;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Create one entry (a record of the list's object) and link it to its parent, atomically.
|
|
173
|
+
*
|
|
174
|
+
* The parent KIND is not repeated: the list's own relationship definition fixes it.
|
|
175
|
+
*/
|
|
176
|
+
export interface ProcessListEntryCreate {
|
|
177
|
+
expected_parent_revision?: number | null;
|
|
178
|
+
idempotency_key?: string | null;
|
|
179
|
+
parent_record_id: string;
|
|
180
|
+
values?: Record<string, unknown>;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export interface ProcessListEntryResponse {
|
|
184
|
+
parent: ProcessListParentSummary;
|
|
185
|
+
record: RecordResponse;
|
|
186
|
+
relationship_id: string;
|
|
187
|
+
replayed?: boolean;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
export interface ProcessListListResponse {
|
|
191
|
+
process_lists: Array<ProcessListResponse>;
|
|
192
|
+
total: number;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export interface ProcessListParentSummary {
|
|
196
|
+
kind: "custom" | "contacts" | "companies" | "deals";
|
|
197
|
+
label?: string | null;
|
|
198
|
+
object_slug?: string | null;
|
|
199
|
+
record_id: string;
|
|
200
|
+
revision?: number | null;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface ProcessListResponse {
|
|
204
|
+
api_slug: string;
|
|
205
|
+
created_at: string;
|
|
206
|
+
description?: string | null;
|
|
207
|
+
display_attribute_slug?: string | null;
|
|
208
|
+
entries_label: string;
|
|
209
|
+
icon?: string | null;
|
|
210
|
+
id: string;
|
|
211
|
+
is_archived: boolean;
|
|
212
|
+
parent_kind: "custom" | "contacts" | "companies" | "deals";
|
|
213
|
+
parent_label: string;
|
|
214
|
+
parent_object_id?: string | null;
|
|
215
|
+
parent_object_slug?: string | null;
|
|
216
|
+
parent_relationship_definition_id: string;
|
|
217
|
+
plural_noun: string;
|
|
218
|
+
singular_noun: string;
|
|
219
|
+
updated_at: string;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/** Rename, describe or archive a list. The parent binding is never accepted here. */
|
|
223
|
+
export interface ProcessListUpdate {
|
|
224
|
+
description?: string | null;
|
|
225
|
+
display_attribute_slug?: string | null;
|
|
226
|
+
icon?: ("box" | "briefcase" | "building" | "calendar" | "flag" | "folder" | "globe" | "heart" | "layers" | "package" | "target" | "users") | null;
|
|
227
|
+
is_archived?: boolean | null;
|
|
228
|
+
plural_noun?: string | null;
|
|
229
|
+
singular_noun?: string | null;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/** Response for a record with its current attribute values. */
|
|
233
|
+
export interface RecordResponse {
|
|
234
|
+
created_at: string;
|
|
235
|
+
id: string;
|
|
236
|
+
is_archived: boolean;
|
|
237
|
+
object_definition_id: string;
|
|
238
|
+
organization_id: string;
|
|
239
|
+
revision?: number;
|
|
240
|
+
updated_at: string;
|
|
241
|
+
values: Record<string, unknown>;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
export interface RelationshipTarget {
|
|
245
|
+
kind: "custom" | "contacts" | "companies" | "deals";
|
|
246
|
+
object_id?: string | null;
|
|
247
|
+
}
|