@graph8/sdk 0.362.0 → 0.373.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 +33 -10
- package/blocks/_foundation/README.md +78 -1
- package/blocks/_foundation/block.json +123 -6
- package/blocks/_foundation/components/api-error.tsx +9 -7
- package/blocks/_foundation/components/brand-provider.tsx +23 -0
- package/blocks/_foundation/components/confirm-spend-dialog.tsx +15 -8
- package/blocks/_foundation/components/confirmed-action.tsx +90 -0
- package/blocks/_foundation/components/connect-graph8.tsx +280 -0
- package/blocks/_foundation/components/empty-state.tsx +5 -2
- package/blocks/_foundation/components/list-select.tsx +112 -0
- package/blocks/_foundation/components/paging-notices.tsx +55 -0
- package/blocks/_foundation/components/screen/detail-panel.tsx +2 -1
- package/blocks/_foundation/components/screen/filter-controls.tsx +92 -0
- package/blocks/_foundation/components/screen/index.ts +2 -0
- package/blocks/_foundation/components/screen/record-link.tsx +76 -0
- package/blocks/_foundation/components/screen/split-view.tsx +1 -1
- package/blocks/_foundation/components/screen/time-series-chart-recharts.tsx +65 -0
- package/blocks/_foundation/components/screen/time-series-chart.tsx +15 -97
- package/blocks/_foundation/components/screen/time-series-format.ts +57 -0
- package/blocks/_foundation/hooks/use-all-pages.ts +54 -0
- package/blocks/_foundation/hooks/use-brand.ts +52 -0
- package/blocks/_foundation/hooks/use-g8-mutation.ts +23 -0
- package/blocks/_foundation/hooks/use-g8-query.ts +127 -1
- package/blocks/_foundation/hooks/use-load-more-list.ts +61 -0
- package/blocks/_foundation/hooks/use-paginated.ts +120 -0
- package/blocks/_foundation/hooks/use-row-activation.ts +57 -0
- package/blocks/_foundation/hooks/use-url-filters.ts +93 -0
- package/blocks/_foundation/lib/g8-cache.ts +454 -0
- package/blocks/_foundation/lib/g8-client.ts +1 -1
- package/blocks/_foundation/lib/paging.ts +57 -0
- package/blocks/_foundation/lib/plural.ts +23 -0
- package/blocks/_foundation/lib/use-debounced-value.ts +13 -0
- package/blocks/_foundation/server/connect-route.ts +15 -0
- package/blocks/_foundation/server/connect.ts +127 -0
- package/blocks/_foundation/server/local-key.ts +70 -0
- package/blocks/_foundation/server/proxy.ts +103 -3
- package/blocks/_foundation/server/route.ts +16 -4
- package/blocks/agents/README.md +93 -2
- package/blocks/agents/block.json +343 -2
- package/blocks/agents/components/agent-activity.tsx +112 -0
- package/blocks/agents/components/agent-approvals.tsx +135 -0
- package/blocks/agents/components/agent-builder.tsx +29 -10
- package/blocks/agents/components/agent-conversations.tsx +143 -0
- package/blocks/agents/components/agent-knowledge-panel.tsx +4 -3
- package/blocks/agents/components/agent-operators.tsx +164 -0
- package/blocks/agents/components/agent-run-detail.tsx +119 -0
- package/blocks/agents/components/agent-runs.tsx +19 -10
- package/blocks/agents/components/agent-skills-panel.tsx +7 -7
- package/blocks/agents/components/agent-test-history.tsx +121 -0
- package/blocks/agents/components/agents-screen.tsx +226 -0
- package/blocks/agents/components/assistant-sessions.tsx +150 -0
- package/blocks/agents/components/duplicate-agent-button.tsx +42 -0
- package/blocks/agents/components/from-template-button.tsx +65 -0
- package/blocks/agents/components/knowledge-browser.tsx +107 -0
- package/blocks/agents/components/knowledge-detail.tsx +156 -0
- package/blocks/agents/components/knowledge-form.tsx +69 -0
- package/blocks/agents/components/name-dialog.tsx +32 -0
- package/blocks/agents/components/receptionist-button.tsx +46 -0
- package/blocks/agents/components/save-as-template-button.tsx +32 -0
- package/blocks/agents/components/skill-editor.tsx +147 -0
- package/blocks/agents/components/skill-library.tsx +111 -0
- package/blocks/agents/lib/agent-types.ts +7 -1
- package/blocks/agents/lib/facts.tsx +13 -0
- package/blocks/agents/lib/knowledge-utils.ts +49 -0
- package/blocks/agents/lib/load-more.tsx +141 -0
- package/blocks/agents/lib/skill-utils.ts +91 -0
- package/blocks/agents/recipes/create-agent-and-attach-skill.ts +1 -1
- package/blocks/analytics/README.md +13 -0
- package/blocks/analytics/block.json +45 -1
- package/blocks/analytics/components/analytics-screen.tsx +222 -0
- package/blocks/analytics/components/kpi-tiles.tsx +1 -1
- package/blocks/analytics/components/leaderboard.tsx +14 -7
- package/blocks/analytics/components/report-builder.tsx +38 -11
- package/blocks/analytics/components/report-detail.tsx +84 -0
- package/blocks/analytics/components/trend-chart.tsx +62 -0
- package/blocks/appointments/README.md +6 -0
- package/blocks/appointments/block.json +33 -2
- package/blocks/appointments/components/availability-editor.tsx +17 -5
- package/blocks/appointments/components/booking-page.tsx +2 -2
- package/blocks/appointments/components/event-type-editor.tsx +2 -1
- package/blocks/appointments/components/event-type-related.tsx +4 -2
- package/blocks/appointments/components/meeting-contact-links.tsx +49 -0
- package/blocks/appointments/components/meeting-detail.tsx +2 -2
- package/blocks/appointments/components/meeting-list.tsx +38 -18
- package/blocks/appointments/components/meetings-screen.tsx +7 -4
- package/blocks/appointments/components/record-meetings-tab.tsx +92 -0
- package/blocks/appointments/components/scheduling-screen.tsx +2 -1
- package/blocks/block.schema.json +18 -0
- package/blocks/block.types.ts +17 -0
- package/blocks/campaigns/README.md +41 -11
- package/blocks/campaigns/block.json +105 -42
- package/blocks/campaigns/components/campaign-assets.tsx +17 -6
- package/blocks/campaigns/components/campaign-launch-step.tsx +114 -26
- package/blocks/campaigns/components/campaign-list.tsx +7 -3
- package/blocks/campaigns/components/campaign-metrics.tsx +1 -1
- package/blocks/campaigns/components/campaign-wizard.tsx +52 -14
- package/blocks/campaigns/components/campaigns-screen.tsx +267 -0
- package/blocks/campaigns/components/icp-detail.tsx +163 -0
- package/blocks/campaigns/components/icp-editor.tsx +22 -17
- package/blocks/campaigns/components/persona-detail.tsx +181 -0
- package/blocks/campaigns/components/persona-editor.tsx +19 -11
- package/blocks/campaigns/lib/campaigns-utils.ts +138 -5
- package/blocks/campaigns/recipes/attach-audience-and-launch.ts +16 -3
- package/blocks/campaigns/recipes/generate-ideas-and-create-campaign.ts +8 -4
- package/blocks/coach/README.md +10 -0
- package/blocks/coach/block.json +16 -1
- package/blocks/coach/components/call-scorecard.tsx +7 -7
- package/blocks/coach/components/coach-screen.tsx +222 -0
- package/blocks/company-intelligence/README.md +132 -0
- package/blocks/company-intelligence/block.json +318 -0
- package/blocks/company-intelligence/components/company-intelligence-screen.tsx +114 -0
- package/blocks/company-intelligence/components/company-intelligence-tab.tsx +88 -0
- package/blocks/company-intelligence/components/company-profile.tsx +68 -0
- package/blocks/company-intelligence/components/intelligence-sources.tsx +63 -0
- package/blocks/company-intelligence/components/report-detail.tsx +189 -0
- package/blocks/company-intelligence/components/research-reports.tsx +136 -0
- package/blocks/company-intelligence/components/research-run.tsx +161 -0
- package/blocks/company-intelligence/components/source-detail.tsx +117 -0
- package/blocks/company-intelligence/components/source-view.tsx +274 -0
- package/blocks/company-intelligence/components/wiki-document-detail.tsx +116 -0
- package/blocks/company-intelligence/components/wiki-documents.tsx +66 -0
- package/blocks/company-intelligence/hooks/use-intelligence.ts +173 -0
- package/blocks/company-intelligence/lib/intelligence-types.ts +230 -0
- package/blocks/company-intelligence/lib/safe-markdown.tsx +150 -0
- package/blocks/company-intelligence/recipes/read-competitors-and-news.ts +33 -0
- package/blocks/company-intelligence/recipes/research-your-website.ts +43 -0
- package/blocks/company-intelligence/recipes/write-the-research-reports.ts +54 -0
- package/blocks/copilot/README.md +13 -0
- package/blocks/copilot/block.json +14 -1
- package/blocks/copilot/components/copilot-memory.tsx +6 -2
- package/blocks/copilot/components/copilot-panel.tsx +14 -5
- package/blocks/copilot/components/copilot-screen.tsx +148 -0
- package/blocks/copilot/components/copilot-team-chat.tsx +13 -6
- package/blocks/crm/README.md +34 -0
- package/blocks/crm/block.json +107 -2
- package/blocks/crm/components/companies-screen.tsx +359 -0
- package/blocks/crm/components/company-detail.tsx +10 -8
- package/blocks/crm/components/company-table.tsx +11 -4
- package/blocks/crm/components/contact-detail.tsx +10 -7
- package/blocks/crm/components/contact-lookup-link.tsx +44 -0
- package/blocks/crm/components/contact-table.tsx +10 -3
- package/blocks/crm/components/contacts-screen.tsx +377 -0
- package/blocks/crm/components/dedupe-review.tsx +13 -6
- package/blocks/crm/components/import-wizard.tsx +7 -9
- package/blocks/crm/components/list-select.tsx +20 -0
- package/blocks/crm/components/notes-panel.tsx +4 -4
- package/blocks/crm/components/record-engagement-tab.tsx +103 -0
- package/blocks/crm/components/record-form.tsx +6 -4
- package/blocks/crm/components/task-list.tsx +4 -4
- package/blocks/crm/components/tasks-screen.tsx +399 -0
- package/blocks/crm/hooks/use-all-lists.ts +18 -0
- package/blocks/crm/hooks/use-custom-fields.ts +6 -1
- package/blocks/crm/hooks/use-page-query.ts +9 -1
- package/blocks/crm/lib/crm-types.ts +26 -2
- package/blocks/crm/lib/read-lists.ts +16 -0
- package/blocks/crm/lib/screen-parts.tsx +105 -0
- package/blocks/deals/README.md +24 -6
- package/blocks/deals/block.json +160 -5
- package/blocks/deals/components/close-deal-dialog.tsx +169 -0
- package/blocks/deals/components/deal-contacts-editor.tsx +134 -0
- package/blocks/deals/components/deal-detail.tsx +25 -13
- package/blocks/deals/components/deal-filters.tsx +65 -0
- package/blocks/deals/components/deal-line-items.tsx +120 -0
- package/blocks/deals/components/deal-notes-tab.tsx +97 -0
- package/blocks/deals/components/deal-related.tsx +31 -10
- package/blocks/deals/components/deal-tasks-tab.tsx +88 -0
- package/blocks/deals/components/deals-screen.tsx +66 -26
- package/blocks/deals/components/forecast-view.tsx +4 -4
- package/blocks/deals/components/pipeline-board.tsx +8 -6
- package/blocks/deals/components/pipeline-editor.tsx +132 -0
- package/blocks/deals/components/record-deals-tab.tsx +62 -0
- package/blocks/deals/components/stage-editor.tsx +5 -5
- package/blocks/deals/hooks/use-pipeline-deals.ts +21 -4
- package/blocks/deals/hooks/use-pipelines.ts +1 -1
- package/blocks/deals/lib/deal-extras.ts +156 -0
- package/blocks/dialer/README.md +45 -4
- package/blocks/dialer/block.json +84 -3
- package/blocks/dialer/components/call-contact-button.tsx +269 -0
- package/blocks/dialer/components/call-log-screen.tsx +208 -0
- package/blocks/dialer/components/call-log.tsx +23 -7
- package/blocks/dialer/components/call-queue.tsx +4 -4
- package/blocks/dialer/components/dialer-screen.tsx +361 -0
- package/blocks/dialer/components/dialer-session-detail.tsx +153 -0
- package/blocks/dialer/components/disposition-panel.tsx +1 -1
- package/blocks/dialer/components/live-calls-table.tsx +7 -3
- package/blocks/dialer/components/record-calls-tab.tsx +101 -0
- package/blocks/dialer/components/session-start-form.tsx +61 -12
- package/blocks/dialer/components/softphone.tsx +4 -2
- package/blocks/enrichment/README.md +29 -7
- package/blocks/enrichment/block.json +49 -9
- package/blocks/enrichment/components/bulk-enrich-panel.tsx +83 -29
- package/blocks/enrichment/components/email-verify-badge.tsx +31 -11
- package/blocks/enrichment/components/enrich-button.tsx +32 -9
- package/blocks/enrichment/components/enrichment-job-detail.tsx +78 -0
- package/blocks/enrichment/components/enrichment-screen.tsx +341 -0
- package/blocks/enrichment/components/waterfall-config.tsx +66 -17
- package/blocks/enrichment/lib/enrichment-types.ts +39 -0
- package/blocks/enrichment/recipes/bulk-enrich-and-poll.ts +15 -4
- package/blocks/enrichment/recipes/waterfall-pipeline.ts +3 -2
- package/blocks/forms/README.md +8 -0
- package/blocks/forms/block.json +139 -18
- package/blocks/forms/components/form-activity.tsx +71 -0
- package/blocks/forms/components/form-backfill.tsx +108 -0
- package/blocks/forms/components/form-builder.tsx +4 -2
- package/blocks/forms/components/form-embed.tsx +4 -2
- package/blocks/forms/components/form-groups.tsx +151 -0
- package/blocks/forms/components/form-mapping-editor.tsx +6 -9
- package/blocks/forms/components/form-route-history.tsx +72 -0
- package/blocks/forms/components/form-saved-views.tsx +81 -0
- package/blocks/forms/components/forms-screen.tsx +56 -19
- package/blocks/forms/components/more-rows.tsx +30 -0
- package/blocks/forms/components/submissions-export.tsx +67 -0
- package/blocks/forms/components/submissions-table.tsx +17 -6
- package/blocks/forms/lib/forms-extra.ts +67 -0
- package/blocks/inbox/README.md +32 -3
- package/blocks/inbox/block.json +29 -2
- package/blocks/inbox/components/inbox-list.tsx +7 -3
- package/blocks/inbox/components/inbox-screen.tsx +294 -27
- package/blocks/inbox/components/record-conversations-tab.tsx +154 -0
- package/blocks/inbox/components/reply-composer.tsx +65 -9
- package/blocks/inbox/components/tag-and-assign.tsx +4 -2
- package/blocks/inbox/components/thread-badge.tsx +2 -2
- package/blocks/inbox/components/thread-view.tsx +1 -1
- package/blocks/inbox/hooks/use-inbox-thread.ts +1 -1
- package/blocks/inbox/hooks/use-inbox-threads.ts +1 -0
- package/blocks/inbox/lib/inbox-types.ts +47 -1
- package/blocks/inbox/recipes/01-triage-and-reply.ts +12 -2
- package/blocks/integrations/README.md +63 -1
- package/blocks/integrations/block.json +234 -15
- package/blocks/integrations/components/ad-accounts.tsx +82 -0
- package/blocks/integrations/components/connection-health.tsx +59 -0
- package/blocks/integrations/components/crm-detail.tsx +119 -0
- package/blocks/integrations/components/crm-records.tsx +103 -0
- package/blocks/integrations/components/field-mappings.tsx +61 -0
- package/blocks/integrations/components/integration-list.tsx +13 -8
- package/blocks/integrations/components/integrations-screen.tsx +152 -0
- package/blocks/integrations/components/migration-panel.tsx +133 -0
- package/blocks/integrations/components/sugarcrm-connect.tsx +95 -0
- package/blocks/integrations/components/sync-status.tsx +11 -9
- package/blocks/integrations/components/sync-triggers.tsx +134 -0
- package/blocks/integrations/components/webhook-detail.tsx +179 -0
- package/blocks/integrations/components/webhook-manager.tsx +43 -25
- package/blocks/integrations/components/workspace-tools.tsx +127 -0
- package/blocks/integrations/lib/crm-utils.ts +39 -0
- package/blocks/integrations/lib/facts.tsx +13 -0
- package/blocks/integrations/lib/integrations-utils.ts +11 -1
- package/blocks/integrations/lib/load-more.tsx +141 -0
- package/blocks/intent/README.md +14 -0
- package/blocks/intent/block.json +27 -1
- package/blocks/intent/components/account-intent-score.tsx +5 -5
- package/blocks/intent/components/intent-feed.tsx +13 -10
- package/blocks/intent/components/intent-keyword-manager.tsx +16 -12
- package/blocks/intent/components/intent-screen.tsx +265 -0
- package/blocks/intent/components/keyword-detail.tsx +124 -0
- package/blocks/intent/lib/intent-utils.ts +4 -4
- package/blocks/lifecycle/block.json +13 -8
- package/blocks/lifecycle/components/account-related.tsx +8 -1
- package/blocks/lifecycle/components/churn-list.tsx +5 -2
- package/blocks/lifecycle/components/customer-table.tsx +1 -1
- package/blocks/lifecycle/components/lifecycle-board.tsx +3 -1
- package/blocks/lifecycle/components/lifecycle-screen.tsx +3 -1
- package/blocks/lifecycle/lib/lifecycle.ts +1 -1
- package/blocks/lists/README.md +20 -1
- package/blocks/lists/block.json +69 -3
- package/blocks/lists/components/add-company-people-to-list-button.tsx +73 -0
- package/blocks/lists/components/add-to-list-button.tsx +20 -9
- package/blocks/lists/components/list-picker.tsx +17 -3
- package/blocks/lists/components/list-table.tsx +12 -6
- package/blocks/lists/components/lists-screen.tsx +346 -0
- package/blocks/lists/components/record-lists-tab.tsx +99 -0
- package/blocks/lists/components/suppression-manager.tsx +33 -8
- package/blocks/lists/components/suppressions-screen.tsx +264 -0
- package/blocks/mailboxes/README.md +17 -0
- package/blocks/mailboxes/block.json +69 -17
- package/blocks/mailboxes/components/connect-mailbox.tsx +32 -21
- package/blocks/mailboxes/components/domain-detail.tsx +148 -0
- package/blocks/mailboxes/components/domain-purchase.tsx +20 -14
- package/blocks/mailboxes/components/mailbox-detail.tsx +157 -0
- package/blocks/mailboxes/components/mailbox-list.tsx +8 -3
- package/blocks/mailboxes/components/mailboxes-screen.tsx +228 -0
- package/blocks/mailboxes/components/warmup-health.tsx +24 -22
- package/blocks/mailboxes/lib/mailboxes-utils.ts +26 -5
- package/blocks/mailboxes/lib/use-provider-domains.ts +23 -0
- package/blocks/newsletter/README.md +12 -0
- package/blocks/newsletter/block.json +157 -24
- package/blocks/newsletter/components/issue-scheduler.tsx +4 -3
- package/blocks/newsletter/components/issue-versions.tsx +93 -0
- package/blocks/newsletter/components/more-rows.tsx +30 -0
- package/blocks/newsletter/components/newsletter-editor.tsx +1 -1
- package/blocks/newsletter/components/newsletter-list-syncs.tsx +121 -0
- package/blocks/newsletter/components/newsletter-screen.tsx +39 -14
- package/blocks/newsletter/components/newsletter-settings.tsx +211 -0
- package/blocks/newsletter/components/newsletter-stats.tsx +2 -2
- package/blocks/newsletter/components/newsletter-templates.tsx +133 -0
- package/blocks/newsletter/components/subscriber-table.tsx +5 -7
- package/blocks/newsletter/components/subscriber-timeline.tsx +65 -0
- package/blocks/newsletter/lib/newsletter-extra.ts +60 -0
- package/blocks/nurture/block.json +28 -14
- package/blocks/nurture/components/nurture-builder.tsx +13 -3
- package/blocks/nurture/components/nurture-enroll.tsx +12 -10
- package/blocks/nurture/components/nurture-form.tsx +27 -10
- package/blocks/nurture/components/nurture-screen.tsx +26 -11
- package/blocks/nurture/components/nurture-stats.tsx +5 -4
- package/blocks/nurture/lib/nurture-types.ts +1 -1
- package/blocks/objects/README.md +18 -1
- package/blocks/objects/block.json +42 -21
- package/blocks/objects/components/attribute-field-input.tsx +14 -1
- package/blocks/objects/components/object-not-found.tsx +3 -1
- package/blocks/objects/components/object-record-detail.tsx +10 -2
- package/blocks/objects/components/object-schema-editor.tsx +4 -2
- package/blocks/objects/components/object-table.tsx +13 -3
- package/blocks/objects/components/objects-screen.tsx +147 -0
- package/blocks/objects/components/record-roles-panel.tsx +15 -5
- package/blocks/objects/lib/object-types.ts +1 -1
- package/blocks/pages/README.md +14 -0
- package/blocks/pages/block.json +140 -23
- package/blocks/pages/components/brand-kit-editor.tsx +5 -2
- package/blocks/pages/components/content-library.tsx +9 -4
- package/blocks/pages/components/more-rows.tsx +30 -0
- package/blocks/pages/components/page-ai-tools.tsx +196 -0
- package/blocks/pages/components/page-analytics.tsx +176 -0
- package/blocks/pages/components/page-clone.tsx +99 -0
- package/blocks/pages/components/page-domains.tsx +167 -0
- package/blocks/pages/components/page-editor.tsx +1 -1
- package/blocks/pages/components/page-generation-status.tsx +48 -0
- package/blocks/pages/components/page-list.tsx +2 -1
- package/blocks/pages/components/page-tracking.tsx +137 -0
- package/blocks/pages/components/pages-screen.tsx +57 -16
- package/blocks/pages/components/seo-report.tsx +6 -1
- package/blocks/pages/lib/studio.ts +7 -0
- package/blocks/phone-numbers/README.md +74 -0
- package/blocks/phone-numbers/block.json +262 -0
- package/blocks/phone-numbers/components/a2p-registration.tsx +230 -0
- package/blocks/phone-numbers/components/assign-number.tsx +104 -0
- package/blocks/phone-numbers/components/number-search.tsx +239 -0
- package/blocks/phone-numbers/components/number-settings.tsx +134 -0
- package/blocks/phone-numbers/components/number-usage.tsx +97 -0
- package/blocks/phone-numbers/components/phone-number-detail.tsx +84 -0
- package/blocks/phone-numbers/components/phone-number-list.tsx +110 -0
- package/blocks/phone-numbers/components/phone-numbers-screen.tsx +201 -0
- package/blocks/phone-numbers/components/register-owned-number.tsx +98 -0
- package/blocks/phone-numbers/components/release-number.tsx +126 -0
- package/blocks/phone-numbers/hooks/use-phone-numbers.ts +58 -0
- package/blocks/phone-numbers/lib/phone-numbers-utils.ts +202 -0
- package/blocks/phone-numbers/recipes/01-search-and-buy-number.ts +49 -0
- package/blocks/phone-numbers/recipes/02-assign-number-to-rep.ts +25 -0
- package/blocks/phone-numbers/recipes/03-audit-numbers.ts +36 -0
- package/blocks/phone-numbers/recipes/04-register-text-messaging.ts +39 -0
- package/blocks/pickers/README.md +23 -0
- package/blocks/pickers/block.json +103 -0
- package/blocks/pickers/components/company-picker.tsx +90 -0
- package/blocks/pickers/components/contact-picker.tsx +131 -0
- package/blocks/pickers/components/member-picker.tsx +99 -0
- package/blocks/pickers/components/search-picker.tsx +98 -0
- package/blocks/pickers/hooks/use-current-member.ts +104 -0
- package/blocks/pickers/hooks/use-picker-pages.ts +73 -0
- package/blocks/pickers/lib/use-debounced.ts +13 -0
- package/blocks/quotes/README.md +13 -0
- package/blocks/quotes/block.json +65 -13
- package/blocks/quotes/components/create-quote-from-deal.tsx +48 -0
- package/blocks/quotes/components/product-picker.tsx +3 -1
- package/blocks/quotes/components/quote-builder.tsx +1 -1
- package/blocks/quotes/components/quote-lifecycle-actions.tsx +146 -0
- package/blocks/quotes/components/quote-list.tsx +5 -3
- package/blocks/quotes/components/quote-related.tsx +8 -4
- package/blocks/quotes/components/quote-viewer.tsx +7 -2
- package/blocks/quotes/components/record-quotes-tab.tsx +90 -0
- package/blocks/radar/README.md +10 -0
- package/blocks/radar/block.json +41 -1
- package/blocks/radar/components/competitor-battle-card.tsx +1 -1
- package/blocks/radar/components/competitor-detail.tsx +117 -0
- package/blocks/radar/components/competitor-tracker.tsx +3 -1
- package/blocks/radar/components/radar-overview.tsx +4 -4
- package/blocks/radar/components/radar-report.tsx +4 -2
- package/blocks/radar/components/radar-screen.tsx +214 -0
- package/blocks/radar/components/report-detail.tsx +104 -0
- package/blocks/search/README.md +10 -0
- package/blocks/search/block.json +16 -1
- package/blocks/search/components/filter-builder.tsx +3 -3
- package/blocks/search/components/prospect-results.tsx +5 -3
- package/blocks/search/components/prospect-search-screen.tsx +235 -0
- package/blocks/search/components/saved-searches.tsx +4 -1
- package/blocks/search/hooks/use-filter-options.ts +20 -6
- package/blocks/search/lib/search-types.ts +2 -0
- package/blocks/sequencer/README.md +55 -9
- package/blocks/sequencer/block.json +126 -19
- package/blocks/sequencer/components/add-to-sequence-button.tsx +82 -0
- package/blocks/sequencer/components/enroll-dialog.tsx +11 -5
- package/blocks/sequencer/components/record-sequences-tab.tsx +126 -0
- package/blocks/sequencer/components/sequence-builder.tsx +224 -60
- package/blocks/sequencer/components/sequence-detail.tsx +261 -0
- package/blocks/sequencer/components/sequence-enrollments.tsx +116 -0
- package/blocks/sequencer/components/sequence-list.tsx +34 -9
- package/blocks/sequencer/components/sequence-stats.tsx +11 -10
- package/blocks/sequencer/components/sequence-steps-panel.tsx +103 -0
- package/blocks/sequencer/components/sequences-screen.tsx +162 -0
- package/blocks/sequencer/components/step-editor.tsx +14 -12
- package/blocks/sequencer/lib/sequencer-utils.ts +133 -10
- package/blocks/sequencer/recipes/create-multichannel-sequence.ts +33 -5
- package/blocks/sequencer/recipes/launch-and-enroll.ts +19 -2
- package/blocks/social-ads/README.md +19 -0
- package/blocks/social-ads/block.json +233 -1
- package/blocks/social-ads/components/ad-campaign-list.tsx +9 -5
- package/blocks/social-ads/components/ads-screen.tsx +152 -0
- package/blocks/social-ads/components/audience-sync-detail.tsx +194 -0
- package/blocks/social-ads/components/audience-sync.tsx +17 -9
- package/blocks/social-ads/components/campaign-ads.tsx +166 -0
- package/blocks/social-ads/components/campaign-detail.tsx +138 -0
- package/blocks/social-ads/components/campaign-editor.tsx +134 -0
- package/blocks/social-ads/components/creative-concepts.tsx +74 -0
- package/blocks/social-ads/components/creative-detail.tsx +155 -0
- package/blocks/social-ads/components/creative-gallery.tsx +35 -7
- package/blocks/social-ads/components/creative-revisions.tsx +57 -0
- package/blocks/social-ads/components/creative-tools.tsx +176 -0
- package/blocks/social-ads/components/post-composer.tsx +7 -3
- package/blocks/social-ads/components/post-detail.tsx +163 -0
- package/blocks/social-ads/components/social-ideas.tsx +64 -0
- package/blocks/social-ads/components/social-performance.tsx +80 -0
- package/blocks/social-ads/components/social-post-list.tsx +11 -3
- package/blocks/social-ads/components/social-screen.tsx +187 -0
- package/blocks/social-ads/lib/ads-extra.ts +67 -0
- package/blocks/surveys/README.md +91 -0
- package/blocks/surveys/block.json +299 -0
- package/blocks/surveys/components/account-nps.tsx +69 -0
- package/blocks/surveys/components/contact-survey-history.tsx +52 -0
- package/blocks/surveys/components/org-summary.tsx +82 -0
- package/blocks/surveys/components/sending-domains.tsx +113 -0
- package/blocks/surveys/components/survey-form.tsx +126 -0
- package/blocks/surveys/components/survey-responses.tsx +145 -0
- package/blocks/surveys/components/survey-results.tsx +72 -0
- package/blocks/surveys/components/survey-send-history.tsx +58 -0
- package/blocks/surveys/components/survey-send.tsx +162 -0
- package/blocks/surveys/components/survey-triggers.tsx +166 -0
- package/blocks/surveys/components/surveys-screen.tsx +234 -0
- package/blocks/surveys/lib/surveys-types.ts +228 -0
- package/blocks/surveys/recipes/create-an-nps-survey.ts +22 -0
- package/blocks/surveys/recipes/send-a-survey-and-follow-it.ts +27 -0
- package/blocks/surveys/recipes/survey-score-report.ts +27 -0
- package/blocks/visitors/README.md +10 -0
- package/blocks/visitors/block.json +25 -1
- package/blocks/visitors/components/snippet-install.tsx +21 -10
- package/blocks/visitors/components/traffic-chart.tsx +4 -4
- package/blocks/visitors/components/visitor-company-card.tsx +26 -16
- package/blocks/visitors/components/visitor-detail.tsx +105 -0
- package/blocks/visitors/components/visitor-feed.tsx +16 -7
- package/blocks/visitors/components/visitors-screen.tsx +166 -0
- package/blocks/webchat/README.md +10 -0
- package/blocks/webchat/block.json +21 -7
- package/blocks/webchat/components/chat-widget-config.tsx +8 -5
- package/blocks/webchat/components/conversation-list.tsx +8 -4
- package/blocks/webchat/components/webchat-screen.tsx +245 -0
- package/blocks/workbench/README.md +11 -0
- package/blocks/workbench/block.json +48 -1
- package/blocks/workbench/components/column-recipe-editor.tsx +5 -3
- package/blocks/workbench/components/run-progress.tsx +1 -1
- package/blocks/workbench/components/workbench-grid.tsx +10 -4
- package/blocks/workbench/components/workbench-row-detail.tsx +104 -0
- package/blocks/workbench/components/workbench-screen.tsx +202 -0
- package/blocks/workbench/components/workbench-sources.tsx +194 -0
- package/blocks/workbench/components/workbench-table-list.tsx +14 -2
- package/blocks/workflows/README.md +13 -0
- package/blocks/workflows/block.json +28 -9
- package/blocks/workflows/components/run-history.tsx +31 -9
- package/blocks/workflows/components/trigger-config.tsx +3 -1
- package/blocks/workflows/components/workflow-editor.tsx +4 -2
- package/blocks/workflows/components/workflow-list.tsx +13 -6
- package/blocks/workflows/components/workflows-screen.tsx +193 -0
- package/dist/cli.js +3109 -1977
- package/dist/errors.d.mts +34 -0
- package/dist/errors.d.ts +34 -0
- package/dist/errors.js +46 -0
- package/dist/errors.js.map +1 -0
- package/dist/errors.mjs +21 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/index.browser.js +11 -5
- package/dist/index.browser.js.map +1 -1
- package/dist/index.browser.mjs +11 -5
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.d.mts +164 -25
- package/dist/index.d.ts +164 -25
- package/dist/index.js +11 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -5
- package/dist/index.mjs.map +1 -1
- package/dist/react.browser.js +10 -4
- package/dist/react.browser.js.map +1 -1
- package/dist/react.browser.mjs +10 -4
- package/dist/react.browser.mjs.map +1 -1
- package/dist/react.d.mts +142 -5
- package/dist/react.d.ts +142 -5
- package/dist/react.js +10 -4
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +10 -4
- package/dist/react.mjs.map +1 -1
- package/dist/types/blocks/add.d.ts +11 -4
- package/dist/types/blocks/brand.d.ts +122 -0
- package/dist/types/blocks/compose.d.ts +53 -0
- package/dist/types/blocks/create.d.ts +27 -20
- package/dist/types/blocks/doctor.d.ts +6 -1
- package/dist/types/blocks/flows.d.ts +7 -1
- package/dist/types/blocks/navfile.d.ts +35 -0
- package/dist/types/blocks/orgBrand.d.ts +34 -0
- package/dist/types/blocks/paths.d.ts +4 -0
- package/dist/types/blocks/prefixes.d.ts +37 -0
- package/dist/types/blocks/registry.d.ts +17 -0
- package/dist/types/blocks/screens.d.ts +53 -0
- package/dist/types/cli.d.ts +5 -0
- package/dist/types/errors.d.ts +33 -0
- package/dist/types/http.d.ts +2 -18
- package/dist/types/version.d.ts +2 -2
- package/docs/agents.md +15 -4
- package/docs/api/README.md +2 -2
- package/docs/api/by-path.md +1 -0
- package/docs/api/desk.d.ts +98 -2
- package/docs/api/desk.md +123 -1
- package/docs/api/inbox.d.ts +10 -2
- package/docs/api/inbox.md +10 -2
- package/docs/api/seo.d.ts +19 -1
- package/docs/api/seo.md +24 -1
- package/package.json +16 -2
- package/stacks/6sense/pages/companies.tsx.tmpl +21 -0
- package/stacks/6sense/pages/contacts.tsx.tmpl +19 -0
- package/stacks/6sense/pages/tasks.tsx.tmpl +19 -0
- package/stacks/6sense.json +55 -17
- package/stacks/apollo/pages/calls.tsx.tmpl +23 -0
- package/stacks/apollo/pages/companies.tsx.tmpl +33 -0
- package/stacks/apollo/pages/contacts.tsx.tmpl +51 -0
- package/stacks/apollo/pages/deals.tsx.tmpl +17 -0
- package/stacks/apollo/pages/inbox-contact.tsx.tmpl +13 -0
- package/stacks/apollo/pages/lists.tsx.tmpl +12 -0
- package/stacks/apollo/pages/meetings.tsx.tmpl +13 -0
- package/stacks/apollo/pages/sequences.tsx.tmpl +12 -0
- package/stacks/apollo/pages/tasks.tsx.tmpl +20 -0
- package/stacks/apollo.json +147 -37
- package/stacks/calendly/pages/companies.tsx.tmpl +19 -0
- package/stacks/calendly/pages/contacts.tsx.tmpl +21 -0
- package/stacks/calendly/pages/meetings.tsx.tmpl +13 -0
- package/stacks/calendly/pages/tasks.tsx.tmpl +19 -0
- package/stacks/calendly.json +64 -0
- package/stacks/clay/pages/companies.tsx.tmpl +31 -0
- package/stacks/clay/pages/contacts.tsx.tmpl +31 -0
- package/stacks/clay/pages/lists.tsx.tmpl +12 -0
- package/stacks/clay/pages/tasks.tsx.tmpl +19 -0
- package/stacks/clay.json +73 -27
- package/stacks/gong/pages/calls.tsx.tmpl +23 -0
- package/stacks/gong/pages/companies.tsx.tmpl +22 -0
- package/stacks/gong/pages/contacts.tsx.tmpl +32 -0
- package/stacks/gong/pages/lists.tsx.tmpl +12 -0
- package/stacks/gong/pages/meetings.tsx.tmpl +13 -0
- package/stacks/gong/pages/tasks.tsx.tmpl +19 -0
- package/stacks/gong.json +98 -35
- package/stacks/hootsuite/pages/companies.tsx.tmpl +22 -0
- package/stacks/hootsuite/pages/contacts.tsx.tmpl +28 -0
- package/stacks/hootsuite/pages/lists.tsx.tmpl +12 -0
- package/stacks/hootsuite/pages/tasks.tsx.tmpl +19 -0
- package/stacks/hootsuite.json +104 -0
- package/stacks/hubspot/pages/companies.tsx.tmpl +26 -0
- package/stacks/hubspot/pages/contacts.tsx.tmpl +45 -0
- package/stacks/hubspot/pages/deals.tsx.tmpl +20 -0
- package/stacks/hubspot/pages/inbox.tsx.tmpl +103 -0
- package/stacks/hubspot/pages/lifecycle.tsx.tmpl +23 -0
- package/stacks/hubspot/pages/lists.tsx.tmpl +12 -0
- package/stacks/hubspot/pages/meetings.tsx.tmpl +13 -0
- package/stacks/hubspot/pages/quotes.tsx.tmpl +11 -0
- package/stacks/hubspot/pages/sequences.tsx.tmpl +12 -0
- package/stacks/hubspot/pages/tasks.tsx.tmpl +20 -0
- package/stacks/hubspot.json +181 -64
- package/stacks/intercom/pages/companies.tsx.tmpl +19 -0
- package/stacks/intercom/pages/contacts.tsx.tmpl +21 -0
- package/stacks/intercom/pages/inbox-contact.tsx.tmpl +13 -0
- package/stacks/intercom/pages/tasks.tsx.tmpl +19 -0
- package/stacks/intercom.json +52 -20
- package/stacks/mailchimp/pages/companies.tsx.tmpl +22 -0
- package/stacks/mailchimp/pages/contacts.tsx.tmpl +28 -0
- package/stacks/mailchimp/pages/lists.tsx.tmpl +12 -0
- package/stacks/mailchimp/pages/tasks.tsx.tmpl +19 -0
- package/stacks/mailchimp.json +68 -34
- package/stacks/outreach/pages/calls.tsx.tmpl +23 -0
- package/stacks/outreach/pages/companies.tsx.tmpl +22 -0
- package/stacks/outreach/pages/contacts.tsx.tmpl +46 -0
- package/stacks/outreach/pages/inbox-contact.tsx.tmpl +13 -0
- package/stacks/outreach/pages/lists.tsx.tmpl +12 -0
- package/stacks/outreach/pages/meetings.tsx.tmpl +13 -0
- package/stacks/outreach/pages/sequences.tsx.tmpl +12 -0
- package/stacks/outreach/pages/tasks.tsx.tmpl +19 -0
- package/stacks/outreach.json +106 -25
- package/stacks/pipedrive/pages/companies.tsx.tmpl +23 -0
- package/stacks/pipedrive/pages/contacts.tsx.tmpl +27 -0
- package/stacks/pipedrive/pages/deals.tsx.tmpl +20 -0
- package/stacks/pipedrive/pages/inbox.tsx.tmpl +103 -0
- package/stacks/pipedrive/pages/meetings.tsx.tmpl +13 -0
- package/stacks/pipedrive/pages/quotes.tsx.tmpl +11 -0
- package/stacks/pipedrive/pages/tasks.tsx.tmpl +20 -0
- package/stacks/pipedrive.json +117 -0
- package/stacks/salesforce/pages/companies.tsx.tmpl +26 -0
- package/stacks/salesforce/pages/contacts.tsx.tmpl +32 -0
- package/stacks/salesforce/pages/deals.tsx.tmpl +20 -0
- package/stacks/salesforce/pages/lifecycle.tsx.tmpl +23 -0
- package/stacks/salesforce/pages/lists.tsx.tmpl +12 -0
- package/stacks/salesforce/pages/quotes.tsx.tmpl +11 -0
- package/stacks/salesforce/pages/tasks.tsx.tmpl +20 -0
- package/stacks/salesforce.json +85 -31
- package/stacks/zoominfo/pages/companies.tsx.tmpl +31 -0
- package/stacks/zoominfo/pages/contacts.tsx.tmpl +31 -0
- package/stacks/zoominfo/pages/lists.tsx.tmpl +12 -0
- package/stacks/zoominfo/pages/tasks.tsx.tmpl +19 -0
- package/stacks/zoominfo.json +115 -0
- package/styles/styles.css +1 -1
- package/templates/next-app/README.md.tmpl +40 -9
- package/templates/next-app/app/globals.css.tmpl +349 -64
- package/templates/next-app/app/layout.tsx.tmpl +7 -2
- package/templates/next-app/components/app-shell.tsx.tmpl +104 -88
- package/templates/next-app/components/shell/quick-jump.tsx.tmpl +4 -0
- package/templates/next-app/dot-gitignore.tmpl +2 -0
- package/templates/next-app/package.json.tmpl +1 -1
package/dist/types/version.d.ts
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* both together (the version-parity gate already pins package.json, the
|
|
6
6
|
* lockfile and the CHANGELOG to each other).
|
|
7
7
|
*/
|
|
8
|
-
export declare const SDK_VERSION = "0.
|
|
8
|
+
export declare const SDK_VERSION = "0.373.0";
|
|
9
9
|
/** Value of the `X-G8-Client` header every SDK request carries (I-13). */
|
|
10
|
-
export declare const SDK_CLIENT_ID = "js-sdk/0.
|
|
10
|
+
export declare const SDK_CLIENT_ID = "js-sdk/0.373.0";
|
package/docs/agents.md
CHANGED
|
@@ -9,7 +9,7 @@ grows every week and your training data is older than this file.
|
|
|
9
9
|
|
|
10
10
|
graph8 is a B2B go-to-market platform: CRM (contacts, companies, deals, custom objects), a 700M-person
|
|
11
11
|
data index with enrichment, intent signals, sequences and campaigns across email/SMS/LinkedIn/voice, a unified
|
|
12
|
-
inbox, meetings, workflows and more. This SDK reaches all of it: **
|
|
12
|
+
inbox, meetings, workflows and more. This SDK reaches all of it: **3316 Developer API
|
|
13
13
|
operations** in 145 areas.
|
|
14
14
|
|
|
15
15
|
## 1. The short version
|
|
@@ -93,7 +93,7 @@ g8.init({ apiKey: process.env.G8_API_KEY! });
|
|
|
93
93
|
| | Hand-written clients | `g8.api` (generated) |
|
|
94
94
|
|---|---|---|
|
|
95
95
|
| Example | `g8.contacts.upsert({ list_id, work_email })` | `g8.api.assertUpsert.assertContact({ body: { list_id, work_email } })` |
|
|
96
|
-
| Coverage | 289 methods, reaching 258 operations | all
|
|
96
|
+
| Coverage | 289 methods, reaching 258 operations | all 3316 operations |
|
|
97
97
|
| Returns | the unwrapped value (usually `data`) | the full envelope; read `result.data` |
|
|
98
98
|
| Arguments | positional / friendly names | `{ path?, query?, headers?, body? }`, exactly as the contract names them |
|
|
99
99
|
| Reference | [sdk-clients.md](sdk-clients.md) | [api/README.md](api/README.md) |
|
|
@@ -142,7 +142,7 @@ Hand-written modules:
|
|
|
142
142
|
| [`g8.webhooks`](sdk-clients.md#g8-webhooks) | 1 | API key |
|
|
143
143
|
| [`g8.workflows`](sdk-clients.md#g8-workflows) | 21 | API key |
|
|
144
144
|
|
|
145
|
-
`g8.api` namespaces (operation counts): `accounts` (16), `adCampaigns` (19), `adCreatives` (40), `agency` (24), `agent` (8), `agents` (65), `aiInbox` (79), `analytics` (51), `apiKeys` (6), `appDeployments` (7), `appDomains` (5), `appLogs` (2), `appObjects` (10), `appPages` (16), `appPlatformTokens` (3), `appointments` (92), `apps` (22), `assertUpsert` (6), `audienceSyncs` (8), `brandKit` (30), `bugReports` (7), `calendarInvites` (3), `campaignWorkflows` (5), `campaigns` (29), `channels` (5), `cliCampaigns` (6), `cliPipelines` (12), `clickHouse` (2), `companies` (50), `companyIntelligence` (14), `contacts` (70), `content` (41), `contentGridSkills` (6), `copilot` (39), `crmSyncs` (6), `customerSuccess` (19), `dataPipelines` (5), `deals` (48), `deliverability` (17), `desk` (
|
|
145
|
+
`g8.api` namespaces (operation counts): `accounts` (16), `adCampaigns` (19), `adCreatives` (40), `agency` (24), `agent` (8), `agents` (65), `aiInbox` (79), `analytics` (51), `apiKeys` (6), `appDeployments` (7), `appDomains` (5), `appLogs` (2), `appObjects` (10), `appPages` (16), `appPlatformTokens` (3), `appointments` (92), `apps` (22), `assertUpsert` (6), `audienceSyncs` (8), `brandKit` (30), `bugReports` (7), `calendarInvites` (3), `campaignWorkflows` (5), `campaigns` (29), `channels` (5), `cliCampaigns` (6), `cliPipelines` (12), `clickHouse` (2), `companies` (50), `companyIntelligence` (14), `contacts` (70), `content` (41), `contentGridSkills` (6), `copilot` (39), `crmSyncs` (6), `customerSuccess` (19), `dataPipelines` (5), `deals` (48), `deliverability` (17), `desk` (72), `dialer` (46), `dialerAnalytics` (6), `documents` (35), `duplicates` (7), `eSign` (1), `eSignature` (7), `enrichment` (115), `events` (1), `fields` (8), `forms` (35), `gtmCampaigns` (22), `gtmContext` (51), `gtmDeliverability` (1), `gtmKnowledgeBase` (2), `gtmLaunchHelpers` (2), `gtmLibrary` (20), `health` (1), `imageLibrary` (14), `imports` (3), `inbox` (22), `install` (6), `installedApps` (4), `integrationStatus` (6), `integrations` (83), `intent` (16), `knowledge` (21), `knowledgeBase` (2), `landingPages` (59), `leads` (4), `library` (9), `linkedIn` (5), `linkedInOutreach` (20), `lists` (36), `logs` (1), `mailboxes` (38), `marketingIntelligence` (10), `marketplace` (142), `mcp` (1), `me` (1), `meetings` (17), `newsletter` (61), `notes` (19), `notifications` (2), `objects` (42), `openSearch` (4), `ops` (5), `orgGovernance` (17), `orgVideos` (6), `organizationSettings` (22), `phoneNumbers` (16), `processLists` (6), `profile` (14), `programmaticPages` (15), `providerDomains` (34), `providerUsage` (5), `public` (1), `publicCopilot` (1), `publicSignals` (1), `publicVisitors` (2), `quotes` (56), `radar` (42), `radarReports` (8), `recordRoles` (4), `reports` (7), `repos` (4), `research` (13), `revenue` (14), `revenueAnalytics` (6), `revenueLifecycle` (5), `revenueRecords` (15), `roles` (21), `salesCoach` (37), `sandbox` (9), `scans` (2), `scheduleBuy` (9), `scraping` (10), `sdrAnalytics` (5), `search` (19), `seo` (22), `sequenceLifecycle` (8), `sequences` (71), `settings` (18), `signals` (56), `signatures` (24), `skills` (12), `snippet` (3), `socialPublishing` (22), `studioDocuments` (9), `support` (1), `suppressions` (6), `surveys` (21), `tasks` (25), `teamMembers` (21), `teams` (35), `usage` (9), `visitors` (26), `voice` (187), `webAnalytics` (38), `webChat` (46), `webhooks` (8), `websiteEditor` (12), `work` (59), `workbench` (107), `workflows` (59), `workspaceBackup` (7).
|
|
146
146
|
|
|
147
147
|
## 5. How to find the right call
|
|
148
148
|
|
|
@@ -198,7 +198,7 @@ Every operation carries a tier:
|
|
|
198
198
|
| Tier | What it means | Count |
|
|
199
199
|
|---|---|---|
|
|
200
200
|
| `read` | reads data; safe to call and to retry | 1540 |
|
|
201
|
-
| `write` | creates or changes records; the SDK sends an Idempotency-Key and retries transient failures |
|
|
201
|
+
| `write` | creates or changes records; the SDK sends an Idempotency-Key and retries transient failures | 837 |
|
|
202
202
|
| `destructive` | deletes or archives data; confirm with a human before calling | 305 |
|
|
203
203
|
| `billable` | spends credits; the SDK never blindly retries it; confirm cost before bulk use | 383 |
|
|
204
204
|
| `external` | reaches real people (sends email/SMS, places a call, launches a send); the SDK never blindly retries it; confirm with a human first | 251 |
|
|
@@ -783,6 +783,17 @@ node_modules/@graph8/sdk/
|
|
|
783
783
|
to decide which screens need a confirmation (`billable`, `external`, `destructive`) and which key to
|
|
784
784
|
create. Where `defaults` says `askHuman: true`, ask the person before using the default.
|
|
785
785
|
- **Search the catalog** with `grep -h '"summary"' node_modules/@graph8/sdk/blocks/*/block.json`.
|
|
786
|
+
- **To build an app, start here**: `npx @graph8/sdk create --blocks <ids> <dir>` (for example
|
|
787
|
+
`--blocks crm,deals,inbox --title "Acme CRM"`; `create custom --blocks ...` is the same). Any product, not only
|
|
788
|
+
a named stack: pick the features, get a Next.js app with each block's finished screens as routes plus a sidebar
|
|
789
|
+
(grouped, with icons), `/` opening the analytics screen if you asked for it else the first screen, and the
|
|
790
|
+
`dependsOn` closure installed (asking for deals also gives you crm's screens; `--no-deps-screens` to skip them,
|
|
791
|
+
`--with-deps-screens` to add plain pages for dependencies with no Screen). `npx @graph8/sdk list` shows which blocks
|
|
792
|
+
have Screens. Later, `npx @graph8/sdk add <block>` inside that app adds the new block's routes and nav entries too
|
|
793
|
+
(idempotent; a page you edited is kept). In an app made from a named stack (`create apollo`, `starter`, ...) `add` leaves
|
|
794
|
+
routes and `lib/nav.ts` alone unless you pass `--routes`. A block's `block.json` may carry `screens: [{ component, path, label,
|
|
795
|
+
icon?, group?, description?, order? }]`; without it, each component named `*Screen` becomes a route
|
|
796
|
+
(`ContactsScreen` -> `/contacts`).
|
|
786
797
|
- **Start a whole app with one command**: `npx @graph8/sdk create <stack> <dir>` scaffolds a Next.js App Router +
|
|
787
798
|
TypeScript + Tailwind v4 app, installs the stack's blocks (the same code as `add`), puts every screen of
|
|
788
799
|
the stack in a sidebar with one route each, and installs dependencies (`--no-install`, `--dry-run`,
|
package/docs/api/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# `g8.api`: every Developer API operation
|
|
4
4
|
|
|
5
|
-
`g8.api` is generated from the published OpenAPI contract, so it covers all
|
|
5
|
+
`g8.api` is generated from the published OpenAPI contract, so it covers all 3316 operations across 145 namespaces (1540 read, 837 write, 305 destructive, 383 billable, 251 external).
|
|
6
6
|
|
|
7
7
|
- Found a REST path in a curl example or the web docs? Look it up in [by-path.md](by-path.md).
|
|
8
8
|
- Prefer a hand-written method where one exists: [../sdk-clients.md](../sdk-clients.md).
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
| `g8.api.dataPipelines` | Data pipelines | 5 | none | [dataPipelines.md](dataPipelines.md) | [dataPipelines.d.ts](dataPipelines.d.ts) |
|
|
62
62
|
| `g8.api.deals` | Deals | 48 | 8 | [deals.md](deals.md) | [deals.d.ts](deals.d.ts) |
|
|
63
63
|
| `g8.api.deliverability` | Deliverability | 17 | none | [deliverability.md](deliverability.md) | [deliverability.d.ts](deliverability.d.ts) |
|
|
64
|
-
| `g8.api.desk` | Desk |
|
|
64
|
+
| `g8.api.desk` | Desk | 72 | none | [desk.md](desk.md) | [desk.d.ts](desk.d.ts) |
|
|
65
65
|
| `g8.api.dialer` | Dialer | 46 | none | [dialer.md](dialer.md) | [dialer.d.ts](dialer.d.ts) |
|
|
66
66
|
| `g8.api.dialerAnalytics` | Dialer Analytics | 6 | none | [dialerAnalytics.md](dialerAnalytics.md) | [dialerAnalytics.d.ts](dialerAnalytics.d.ts) |
|
|
67
67
|
| `g8.api.documents` | Documents | 35 | none | [documents.md](documents.md) | [documents.d.ts](documents.d.ts) |
|
package/docs/api/by-path.md
CHANGED
|
@@ -975,6 +975,7 @@ Every Developer API route, sorted by path, with the SDK call that reaches it. Th
|
|
|
975
975
|
| POST | `/api/v1/desk/batch/start` | [`g8.api.desk.startDeskBatch`](desk.md#op-startdeskbatch) | write |
|
|
976
976
|
| GET | `/api/v1/desk/blocks` | [`g8.api.desk.listDeskBlocks`](desk.md#op-listdeskblocks) | read |
|
|
977
977
|
| GET | `/api/v1/desk/blocks/{list_id}/queue` | [`g8.api.desk.getDeskBlockQueue`](desk.md#op-getdeskblockqueue) | read |
|
|
978
|
+
| POST | `/api/v1/desk/cards` | [`g8.api.desk.createDeskCard`](desk.md#op-createdeskcard) | write |
|
|
978
979
|
| GET | `/api/v1/desk/committee-heat` | [`g8.api.desk.getDeskCommitteeHeat`](desk.md#op-getdeskcommitteeheat) | read |
|
|
979
980
|
| GET | `/api/v1/desk/committee-targets` | [`g8.api.desk.getDeskCommitteeTargets`](desk.md#op-getdeskcommitteetargets) | read |
|
|
980
981
|
| GET | `/api/v1/desk/compliance-summary` | [`g8.api.desk.getDeskComplianceSummary`](desk.md#op-getdeskcompliancesummary) | read |
|
package/docs/api/desk.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.desk` (Desk):
|
|
4
|
+
* Types for `g8.api.desk` (Desk): 72 operations.
|
|
5
5
|
*
|
|
6
6
|
* For reading. In code, import from the package instead:
|
|
7
7
|
* import type { ApiInput, ApiOutput, G8Contract } from "@graph8/sdk";
|
|
@@ -17,6 +17,7 @@ export interface DeskMembers {
|
|
|
17
17
|
askDesk: "ask_desk_desk_ask_post";
|
|
18
18
|
checkCommitteePlay: "check_committee_play_desk_accounts__account_id__committee_plays__action_id__check_get";
|
|
19
19
|
checkDeskPlanStageSweep: "check_desk_plan_stage_sweep_desk_org_settings_plan_stages_check_get";
|
|
20
|
+
createDeskCard: "create_desk_card_desk_cards_post";
|
|
20
21
|
createOrReplanAccountPlan: "create_or_replan_account_plan_desk_accounts__account_id__plan_post";
|
|
21
22
|
decideDeskPlayApproval: "decide_desk_play_approval_desk_plays_approvals__execution_id__decide_post";
|
|
22
23
|
draftAccountPlan: "draft_account_plan_desk_accounts__account_id__plan_draft_post";
|
|
@@ -152,6 +153,20 @@ export interface DeskOperations {
|
|
|
152
153
|
};
|
|
153
154
|
output: ApiResponse_DeskPayload_;
|
|
154
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* POST /desk/cards
|
|
158
|
+
* Put one planned outreach touch (an email, LinkedIn or call step for one contact) on a rep's desk with its why, facts and draft. The rep edits and sends it; nothing sends by itself. owner_id must be the caller's own email unless the key is an org or machine key: a personal key or an OAuth connection is a person and gets 403 owner_not_self for anyone else. Posting the same external_key again updates the open card instead of adding a second one. Needs deals:write and a key allowed to see the contact
|
|
159
|
+
* tier: write · scope: deals:write
|
|
160
|
+
*/
|
|
161
|
+
create_desk_card_desk_cards_post: {
|
|
162
|
+
input: {
|
|
163
|
+
headers?: {
|
|
164
|
+
"X-Target-Org-Id"?: string | null;
|
|
165
|
+
};
|
|
166
|
+
body: DeskCardCreateRequest;
|
|
167
|
+
};
|
|
168
|
+
output: ApiResponse_DeskCardResult_;
|
|
169
|
+
};
|
|
155
170
|
/**
|
|
156
171
|
* POST /desk/accounts/{account_id}/plan
|
|
157
172
|
* Create Or Replan Account Plan
|
|
@@ -1273,7 +1288,7 @@ export interface DeskOperations {
|
|
|
1273
1288
|
};
|
|
1274
1289
|
}
|
|
1275
1290
|
|
|
1276
|
-
//
|
|
1291
|
+
// 47 schemas referenced above (the same as G8Contract.<Name>).
|
|
1277
1292
|
|
|
1278
1293
|
/**
|
|
1279
1294
|
* Persist the approved steps as a NEW plan version.
|
|
@@ -1388,6 +1403,11 @@ export interface ApiResponse_DeskBatch_ {
|
|
|
1388
1403
|
pagination?: PaginationMeta | null;
|
|
1389
1404
|
}
|
|
1390
1405
|
|
|
1406
|
+
export interface ApiResponse_DeskCardResult_ {
|
|
1407
|
+
data: DeskCardResult;
|
|
1408
|
+
pagination?: PaginationMeta | null;
|
|
1409
|
+
}
|
|
1410
|
+
|
|
1391
1411
|
export interface ApiResponse_DeskDecisionListResponse_ {
|
|
1392
1412
|
data: DeskDecisionListResponse;
|
|
1393
1413
|
pagination?: PaginationMeta | null;
|
|
@@ -1537,6 +1557,82 @@ export interface DeskBatchStartRequest {
|
|
|
1537
1557
|
tz_offset?: number;
|
|
1538
1558
|
}
|
|
1539
1559
|
|
|
1560
|
+
export interface DeskCardContext {
|
|
1561
|
+
/** Bullets under what we know. Empty ones are dropped. */
|
|
1562
|
+
facts?: Array<string>;
|
|
1563
|
+
/** The columns the card was built from, shown as chips. */
|
|
1564
|
+
fields?: Record<string, string>;
|
|
1565
|
+
persona?: string | null;
|
|
1566
|
+
/** The one-line reason, shown at the top of the card. */
|
|
1567
|
+
why?: string | null;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
export interface DeskCardCreateRequest {
|
|
1571
|
+
/** The contact's company, when it is not the contact's own. */
|
|
1572
|
+
account_id?: number | null;
|
|
1573
|
+
/** email, linkedin or call. */
|
|
1574
|
+
channel: string;
|
|
1575
|
+
/** The contact the touch is for. */
|
|
1576
|
+
contact_id: number;
|
|
1577
|
+
context?: DeskCardContext | null;
|
|
1578
|
+
draft?: DeskCardDraft | null;
|
|
1579
|
+
/** When the touch is due. It orders the queue and never hides the card. */
|
|
1580
|
+
due_at?: string | null;
|
|
1581
|
+
/** Your own key for this touch. Posting it again updates the unsent card. Keys are kept apart by `origin.kind`; with no `origin.kind` the key must be unique across the org. */
|
|
1582
|
+
external_key?: string | null;
|
|
1583
|
+
list_id?: number | null;
|
|
1584
|
+
origin?: DeskCardOrigin | null;
|
|
1585
|
+
/** Whose desk: a team member's email, id or user id. With a personal key or an OAuth connection this must be the caller's own email (the key is a person; anyone else is 403 owner_not_self). Only an org or machine key may name another rep. */
|
|
1586
|
+
owner_id: string;
|
|
1587
|
+
/** low, normal, high or urgent. */
|
|
1588
|
+
priority?: string;
|
|
1589
|
+
sender?: DeskCardSender | null;
|
|
1590
|
+
/** The touch number in the list's cadence. */
|
|
1591
|
+
touch?: number | null;
|
|
1592
|
+
}
|
|
1593
|
+
|
|
1594
|
+
/**
|
|
1595
|
+
* Shaped by the channel. email: subject, body. linkedin: kind (connect or
|
|
1596
|
+
* message), message, a connect note at most 300 characters. call:
|
|
1597
|
+
* talking_points, questions, handoff_line.
|
|
1598
|
+
*/
|
|
1599
|
+
export interface DeskCardDraft {
|
|
1600
|
+
body?: string | null;
|
|
1601
|
+
handoff_line?: string | null;
|
|
1602
|
+
kind?: string | null;
|
|
1603
|
+
/** A connect note is at most 300 characters. */
|
|
1604
|
+
message?: string | null;
|
|
1605
|
+
questions?: Array<string>;
|
|
1606
|
+
subject?: string | null;
|
|
1607
|
+
talking_points?: Array<string>;
|
|
1608
|
+
}
|
|
1609
|
+
|
|
1610
|
+
export interface DeskCardOrigin {
|
|
1611
|
+
/** Who planned it, e.g. "list_plan" or "workflow". */
|
|
1612
|
+
kind?: string | null;
|
|
1613
|
+
mapping?: string | null;
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
export interface DeskCardResult {
|
|
1617
|
+
card_id: string;
|
|
1618
|
+
due_at?: string | null;
|
|
1619
|
+
note?: string | null;
|
|
1620
|
+
/** "queued" until the rep acts on it. */
|
|
1621
|
+
status?: string | null;
|
|
1622
|
+
/** True when this body updated a card already on the desk. */
|
|
1623
|
+
updated?: boolean;
|
|
1624
|
+
url?: string | null;
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
export interface DeskCardSender {
|
|
1628
|
+
/** Not used: LinkedIn sends from the rep's own connected account. */
|
|
1629
|
+
linkedin_seat_id?: string | null;
|
|
1630
|
+
/** Email address the card sends from. Checked against the rep's send rights when the rep sends. */
|
|
1631
|
+
mailbox?: string | null;
|
|
1632
|
+
/** Not used: email sends from `mailbox`, else the rep's own mailbox. */
|
|
1633
|
+
mailbox_id?: string | null;
|
|
1634
|
+
}
|
|
1635
|
+
|
|
1540
1636
|
/** One card in the queue: something the desk thinks a rep should do next. */
|
|
1541
1637
|
export interface DeskDecision {
|
|
1542
1638
|
created_at?: string | null;
|
package/docs/api/desk.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# `g8.api.desk`: Desk
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
72 operations (38 read, 16 write, 10 billable, 8 external).
|
|
6
6
|
|
|
7
7
|
No hand-written client covers this area. Call it through `g8.api.desk.*` as shown below, or by operationId with `g8.api.call(operationId, input)`.
|
|
8
8
|
|
|
@@ -26,6 +26,7 @@ Exact TypeScript types for every operation on this page, and every schema they u
|
|
|
26
26
|
| [`askDesk`](#op-askdesk) | `POST /api/v1/desk/ask` | billable | `deals:run` | Ask Desk |
|
|
27
27
|
| [`checkCommitteePlay`](#op-checkcommitteeplay) | `GET /api/v1/desk/accounts/{account_id}/committee/plays/{action_id}/check` | read | `deals:read` | Check Committee Play |
|
|
28
28
|
| [`checkDeskPlanStageSweep`](#op-checkdeskplanstagesweep) | `GET /api/v1/desk/org-settings/plan-stages/check` | read | `deals:read` | Check Desk Plan Stage Sweep |
|
|
29
|
+
| [`createDeskCard`](#op-createdeskcard) | `POST /api/v1/desk/cards` | write | `deals:write` | Put one planned outreach touch (an email, LinkedIn or call step for one contact) on a rep's desk with its why, facts an… |
|
|
29
30
|
| [`createOrReplanAccountPlan`](#op-createorreplanaccountplan) | `POST /api/v1/desk/accounts/{account_id}/plan` | write | `deals:write` | Create Or Replan Account Plan |
|
|
30
31
|
| [`decideDeskPlayApproval`](#op-decidedeskplayapproval) | `POST /api/v1/desk/plays/approvals/{execution_id}/decide` | external | `deals:run` | Decide Desk Play Approval |
|
|
31
32
|
| [`draftAccountPlan`](#op-draftaccountplan) | `POST /api/v1/desk/accounts/{account_id}/plan/draft` | billable | `deals:run` | Draft Account Plan |
|
|
@@ -256,6 +257,81 @@ const result = await g8.api.desk.checkDeskPlanStageSweep();
|
|
|
256
257
|
|
|
257
258
|
---
|
|
258
259
|
|
|
260
|
+
<a id="op-createdeskcard"></a>
|
|
261
|
+
|
|
262
|
+
### `g8.api.desk.createDeskCard(input)`
|
|
263
|
+
|
|
264
|
+
**Put one planned outreach touch (an email, LinkedIn or call step for one contact) on a rep's desk with its why, facts and draft. The rep edits and sends it; nothing sends by itself. owner_id must be t…**
|
|
265
|
+
|
|
266
|
+
- HTTP: `POST /api/v1/desk/cards`
|
|
267
|
+
- operationId: `create_desk_card_desk_cards_post` (also callable as `g8.api.call("create_desk_card_desk_cards_post", input)`)
|
|
268
|
+
- Tier: `write`: creates or changes records; the SDK sends an Idempotency-Key and retries transient failures
|
|
269
|
+
- API-key scope: `deals:write`
|
|
270
|
+
|
|
271
|
+
Put one planned touch on a rep's desk, with its why, facts, fields and draft.
|
|
272
|
+
|
|
273
|
+
201 when the card is made. The same touch posted again (same
|
|
274
|
+
`external_key`, else the same `list_id` + `contact_id` + `touch`, else the
|
|
275
|
+
same rep, contact, channel and due day) while the card is unsent answers
|
|
276
|
+
200 with the same `card_id` and `updated: true`. An `external_key` is
|
|
277
|
+
kept apart per `origin.kind`, so two integrations may both use "1"; a
|
|
278
|
+
body with no `origin.kind` shares one namespace with every other such
|
|
279
|
+
caller in the org, so its key must be unique across the org. Once the rep has sent or
|
|
280
|
+
decided it, a re-post makes a new card. A card the desk will not make is a
|
|
281
|
+
4xx whose `detail.reason` says why. A personal key may name only its own
|
|
282
|
+
holder (403 `owner_not_self`); an org key may name any active rep.
|
|
283
|
+
The key must be allowed to see the contact (and the account when one is
|
|
284
|
+
named, else the contact's own company), checked the way the contacts and deals routes check a record id
|
|
285
|
+
from a body; one it may not see is 403 `contact_not_allowed` /
|
|
286
|
+
`account_not_allowed` and no card is made.
|
|
287
|
+
|
|
288
|
+
**Input**
|
|
289
|
+
|
|
290
|
+
| Field | Type | Required | Description |
|
|
291
|
+
|---|---|---|---|
|
|
292
|
+
| `body` | `DeskCardCreateRequest` | yes | Request body; fields below. |
|
|
293
|
+
|
|
294
|
+
Body fields (`DeskCardCreateRequest`):
|
|
295
|
+
|
|
296
|
+
| Field | Type | Required | Description |
|
|
297
|
+
|---|---|---|---|
|
|
298
|
+
| `body.channel` | `string` | yes | email, linkedin or call. min length 1, max length 32 |
|
|
299
|
+
| `body.contact_id` | `integer` | yes | The contact the touch is for. max 9223372036854776000, > 0 |
|
|
300
|
+
| `body.owner_id` | `string` | yes | Whose desk: a team member's email, id or user id. With a personal key or an OAuth connection this must be the caller's own email (the key is a person; anyone else is 403 owner_not_self). Only an org or machine key may name another rep. min length 1, max length 320 |
|
|
301
|
+
| `body.account_id` | `integer \| null` | no | The contact's company, when it is not the contact's own. max 9223372036854776000, > 0 |
|
|
302
|
+
| `body.context` | `DeskCardContext \| null` | no | |
|
|
303
|
+
| `body.draft` | `DeskCardDraft \| null` | no | |
|
|
304
|
+
| `body.due_at` | `string (date-time) \| null` | no | When the touch is due. It orders the queue and never hides the card. |
|
|
305
|
+
| `body.external_key` | `string \| null` | no | Your own key for this touch. Posting it again updates the unsent card. Keys are kept apart by `origin.kind`; with no `origin.kind` the key must be unique across the org. max length 200 |
|
|
306
|
+
| `body.list_id` | `integer \| null` | no | max 9223372036854776000, > 0 |
|
|
307
|
+
| `body.origin` | `DeskCardOrigin \| null` | no | |
|
|
308
|
+
| `body.priority` | `string` | no | low, normal, high or urgent. default `"normal"`, max length 16 |
|
|
309
|
+
| `body.sender` | `DeskCardSender \| null` | no | |
|
|
310
|
+
| `body.touch` | `integer \| null` | no | The touch number in the list's cadence. min 1, max 1000 |
|
|
311
|
+
|
|
312
|
+
**Returns** `ApiResponse_DeskCardResult_`: the envelope `{ data: DeskCardResult, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
313
|
+
|
|
314
|
+
Other envelope fields: `pagination` (PaginationMeta).
|
|
315
|
+
|
|
316
|
+
`DeskCardResult` fields:
|
|
317
|
+
|
|
318
|
+
| Field | Type | Required | Description |
|
|
319
|
+
|---|---|---|---|
|
|
320
|
+
| `card_id` | `string` | yes | |
|
|
321
|
+
| `due_at` | `string \| null` | no | |
|
|
322
|
+
| `note` | `string \| null` | no | |
|
|
323
|
+
| `status` | `string \| null` | no | "queued" until the rep acts on it. |
|
|
324
|
+
| `updated` | `boolean` | no | True when this body updated a card already on the desk. default `false` |
|
|
325
|
+
| `url` | `string \| null` | no | |
|
|
326
|
+
|
|
327
|
+
**Example**
|
|
328
|
+
|
|
329
|
+
```ts
|
|
330
|
+
const result = await g8.api.desk.createDeskCard({ body: { channel: "example", contact_id: 1, owner_id: "id" } });
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
259
335
|
<a id="op-createorreplanaccountplan"></a>
|
|
260
336
|
|
|
261
337
|
### `g8.api.desk.createOrReplanAccountPlan(input)`
|
|
@@ -2976,6 +3052,52 @@ A contact to put on the buying committee.
|
|
|
2976
3052
|
| `contact_id` | `integer` | yes | |
|
|
2977
3053
|
| `role` | `string \| null` | no | Their part in the decision, e.g. "champion". |
|
|
2978
3054
|
|
|
3055
|
+
<a id="type-deskcardcontext"></a>
|
|
3056
|
+
|
|
3057
|
+
### `DeskCardContext`
|
|
3058
|
+
|
|
3059
|
+
| Field | Type | Required | Description |
|
|
3060
|
+
|---|---|---|---|
|
|
3061
|
+
| `facts` | `Array<string>` | no | Bullets under what we know. Empty ones are dropped. max items 20 |
|
|
3062
|
+
| `fields` | `Record<string, string>` | no | The columns the card was built from, shown as chips. |
|
|
3063
|
+
| `persona` | `string \| null` | no | max length 200 |
|
|
3064
|
+
| `why` | `string \| null` | no | The one-line reason, shown at the top of the card. max length 1000 |
|
|
3065
|
+
|
|
3066
|
+
<a id="type-deskcarddraft"></a>
|
|
3067
|
+
|
|
3068
|
+
### `DeskCardDraft`
|
|
3069
|
+
|
|
3070
|
+
Shaped by the channel. email: subject, body. linkedin: kind (connect or message), message, a connect note at most 300 characters. call: talking_points, questions, handoff_line.
|
|
3071
|
+
|
|
3072
|
+
| Field | Type | Required | Description |
|
|
3073
|
+
|---|---|---|---|
|
|
3074
|
+
| `body` | `string \| null` | no | max length 20000 |
|
|
3075
|
+
| `handoff_line` | `string \| null` | no | max length 1000 |
|
|
3076
|
+
| `kind` | `string \| null` | no | max length 32 |
|
|
3077
|
+
| `message` | `string \| null` | no | A connect note is at most 300 characters. max length 8000 |
|
|
3078
|
+
| `questions` | `Array<string>` | no | max items 20 |
|
|
3079
|
+
| `subject` | `string \| null` | no | max length 300 |
|
|
3080
|
+
| `talking_points` | `Array<string>` | no | max items 20 |
|
|
3081
|
+
|
|
3082
|
+
<a id="type-deskcardorigin"></a>
|
|
3083
|
+
|
|
3084
|
+
### `DeskCardOrigin`
|
|
3085
|
+
|
|
3086
|
+
| Field | Type | Required | Description |
|
|
3087
|
+
|---|---|---|---|
|
|
3088
|
+
| `kind` | `string \| null` | no | Who planned it, e.g. "list_plan" or "workflow". max length 100 |
|
|
3089
|
+
| `mapping` | `string \| null` | no | max length 300 |
|
|
3090
|
+
|
|
3091
|
+
<a id="type-deskcardsender"></a>
|
|
3092
|
+
|
|
3093
|
+
### `DeskCardSender`
|
|
3094
|
+
|
|
3095
|
+
| Field | Type | Required | Description |
|
|
3096
|
+
|---|---|---|---|
|
|
3097
|
+
| `linkedin_seat_id` | `string \| null` | no | Not used: LinkedIn sends from the rep's own connected account. max length 200 |
|
|
3098
|
+
| `mailbox` | `string \| null` | no | Email address the card sends from. Checked against the rep's send rights when the rep sends. max length 320 |
|
|
3099
|
+
| `mailbox_id` | `string \| null` | no | Not used: email sends from `mailbox`, else the rep's own mailbox. max length 200 |
|
|
3100
|
+
|
|
2979
3101
|
<a id="type-deskdecision"></a>
|
|
2980
3102
|
|
|
2981
3103
|
### `DeskDecision`
|
package/docs/api/inbox.d.ts
CHANGED
|
@@ -618,11 +618,19 @@ export interface InboxThreadResponse {
|
|
|
618
618
|
/** Contact snapshot: name, email, company */
|
|
619
619
|
contact?: Record<string, unknown> | null;
|
|
620
620
|
created_at?: string | null;
|
|
621
|
+
/** SMS: your number the thread runs on; the default `from_address` for an SMS reply. */
|
|
622
|
+
from_number?: string | null;
|
|
621
623
|
id: string;
|
|
624
|
+
/** LinkedIn: the sending account; the default `from_address` for a LinkedIn reply. */
|
|
625
|
+
linkedin_account_id?: number | null;
|
|
626
|
+
/** Email: the connected mailbox this thread belongs to. A reply goes out from it by default, so pass it as `from_address` (or omit `from_address`) on POST /inbox/{id}/send. */
|
|
627
|
+
mailbox?: string | null;
|
|
622
628
|
messages?: Array<InboxMessageItem>;
|
|
623
629
|
status?: string | null;
|
|
624
630
|
subject?: string | null;
|
|
625
631
|
tags?: Array<Record<string, unknown>>;
|
|
632
|
+
/** SMS: the contact's number; the default `to` for an SMS reply. */
|
|
633
|
+
to_number?: string | null;
|
|
626
634
|
updated_at?: string | null;
|
|
627
635
|
}
|
|
628
636
|
|
|
@@ -662,11 +670,11 @@ export interface SendRequest {
|
|
|
662
670
|
body: string;
|
|
663
671
|
/** Channel to send through: email, sms, or linkedin */
|
|
664
672
|
channel: InboxChannel;
|
|
665
|
-
/** Sender
|
|
673
|
+
/** Sender (mailbox email, your phone number, or numeric LinkedIn account ID). Omit it to send from the thread's own mailbox / number / LinkedIn account (the thread's `mailbox`, `from_number` or `linkedin_account_id`). You still need permission to send as that sender. */
|
|
666
674
|
from_address?: string | null;
|
|
667
675
|
/** Email subject (optional, for email channel) */
|
|
668
676
|
subject?: string | null;
|
|
669
|
-
/** Recipient override (email address
|
|
677
|
+
/** Recipient override (email address or phone number). Omit it to reply to the thread's contact: the contact's email (else the last inbound sender) for email, the thread's contact number for SMS. Not used for LinkedIn. */
|
|
670
678
|
to?: string | null;
|
|
671
679
|
}
|
|
672
680
|
|
package/docs/api/inbox.md
CHANGED
|
@@ -359,10 +359,14 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
359
359
|
| `assignees` | `Array<Record<string, unknown>>` | no | |
|
|
360
360
|
| `contact` | `Record<string, unknown> \| null` | no | Contact snapshot: name, email, company |
|
|
361
361
|
| `created_at` | `string \| null` | no | |
|
|
362
|
+
| `from_number` | `string \| null` | no | SMS: your number the thread runs on; the default `from_address` for an SMS reply. |
|
|
363
|
+
| `linkedin_account_id` | `integer \| null` | no | LinkedIn: the sending account; the default `from_address` for a LinkedIn reply. |
|
|
364
|
+
| `mailbox` | `string \| null` | no | Email: the connected mailbox this thread belongs to. A reply goes out from it by default, so pass it as `from_address` (or omit `from_address`) on POST /inbox/{id}/send. |
|
|
362
365
|
| `messages` | `Array<InboxMessageItem>` | no | |
|
|
363
366
|
| `status` | `string \| null` | no | |
|
|
364
367
|
| `subject` | `string \| null` | no | |
|
|
365
368
|
| `tags` | `Array<Record<string, unknown>>` | no | |
|
|
369
|
+
| `to_number` | `string \| null` | no | SMS: the contact's number; the default `to` for an SMS reply. |
|
|
366
370
|
| `updated_at` | `string \| null` | no | |
|
|
367
371
|
|
|
368
372
|
**Example**
|
|
@@ -543,10 +547,14 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
543
547
|
| `assignees` | `Array<Record<string, unknown>>` | no | |
|
|
544
548
|
| `contact` | `Record<string, unknown> \| null` | no | Contact snapshot: name, email, company |
|
|
545
549
|
| `created_at` | `string \| null` | no | |
|
|
550
|
+
| `from_number` | `string \| null` | no | SMS: your number the thread runs on; the default `from_address` for an SMS reply. |
|
|
551
|
+
| `linkedin_account_id` | `integer \| null` | no | LinkedIn: the sending account; the default `from_address` for a LinkedIn reply. |
|
|
552
|
+
| `mailbox` | `string \| null` | no | Email: the connected mailbox this thread belongs to. A reply goes out from it by default, so pass it as `from_address` (or omit `from_address`) on POST /inbox/{id}/send. |
|
|
546
553
|
| `messages` | `Array<InboxMessageItem>` | no | |
|
|
547
554
|
| `status` | `string \| null` | no | |
|
|
548
555
|
| `subject` | `string \| null` | no | |
|
|
549
556
|
| `tags` | `Array<Record<string, unknown>>` | no | |
|
|
557
|
+
| `to_number` | `string \| null` | no | SMS: the contact's number; the default `to` for an SMS reply. |
|
|
550
558
|
| `updated_at` | `string \| null` | no | |
|
|
551
559
|
|
|
552
560
|
**Example**
|
|
@@ -915,9 +923,9 @@ Body fields (`SendRequest`):
|
|
|
915
923
|
|---|---|---|---|
|
|
916
924
|
| `body.body` | `string` | yes | Message body to send |
|
|
917
925
|
| `body.channel` | `InboxChannel` | yes | Channel to send through: email, sms, or linkedin |
|
|
918
|
-
| `body.from_address` | `string \| null` | no | Sender
|
|
926
|
+
| `body.from_address` | `string \| null` | no | Sender (mailbox email, your phone number, or numeric LinkedIn account ID). Omit it to send from the thread's own mailbox / number / LinkedIn account (the thread's `mailbox`, `from_number` or `linkedin_account_id`). You still need permission to send as that sender. |
|
|
919
927
|
| `body.subject` | `string \| null` | no | Email subject (optional, for email channel) |
|
|
920
|
-
| `body.to` | `string \| null` | no | Recipient override (email address
|
|
928
|
+
| `body.to` | `string \| null` | no | Recipient override (email address or phone number). Omit it to reply to the thread's contact: the contact's email (else the last inbound sender) for email, the thread's contact number for SMS. Not used for LinkedIn. |
|
|
921
929
|
|
|
922
930
|
**Returns** `ApiResponse_SendResponse_`: the envelope `{ data: SendResponse, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
923
931
|
|
package/docs/api/seo.d.ts
CHANGED
|
@@ -627,6 +627,7 @@ export interface SeoAudit {
|
|
|
627
627
|
created_at?: string | null;
|
|
628
628
|
credits_charged?: number | null;
|
|
629
629
|
domain: string;
|
|
630
|
+
enable_javascript?: boolean;
|
|
630
631
|
failure_reason?: string | null;
|
|
631
632
|
id: string;
|
|
632
633
|
max_pages: number;
|
|
@@ -640,6 +641,7 @@ export interface SeoAudit {
|
|
|
640
641
|
/** Mirrors `AuditIssueDTO`. */
|
|
641
642
|
export interface SeoAuditIssue {
|
|
642
643
|
affected_count: number;
|
|
644
|
+
affected_total?: number;
|
|
643
645
|
affected_urls?: Array<Record<string, unknown>>;
|
|
644
646
|
issue_type: string;
|
|
645
647
|
severity: string;
|
|
@@ -765,11 +767,20 @@ export interface SeoEndOfDay {
|
|
|
765
767
|
/** Mirrors `KeywordRow`. */
|
|
766
768
|
export interface SeoKeywordRow {
|
|
767
769
|
competition?: number;
|
|
768
|
-
cpc?: number;
|
|
770
|
+
cpc?: number | null;
|
|
771
|
+
cpc_high?: number | null;
|
|
769
772
|
intent?: string | null;
|
|
773
|
+
intents?: Array<string>;
|
|
770
774
|
keyword: string;
|
|
771
775
|
keyword_difficulty?: number | null;
|
|
776
|
+
parent_topic?: string | null;
|
|
777
|
+
parent_topic_volume?: number | null;
|
|
778
|
+
results_count?: number | null;
|
|
772
779
|
search_volume?: number;
|
|
780
|
+
search_volume_avg?: number | null;
|
|
781
|
+
serp_features?: Array<string>;
|
|
782
|
+
trend?: Array<number>;
|
|
783
|
+
volume_spike?: boolean;
|
|
773
784
|
}
|
|
774
785
|
|
|
775
786
|
export interface SeoMover {
|
|
@@ -885,7 +896,9 @@ export interface SeoSetupItem {
|
|
|
885
896
|
* thing the credit reservation is sized from.
|
|
886
897
|
*/
|
|
887
898
|
export interface SeoStartAuditRequest {
|
|
899
|
+
allow_subdomains?: boolean;
|
|
888
900
|
domain: string;
|
|
901
|
+
enable_javascript?: boolean;
|
|
889
902
|
max_pages?: number;
|
|
890
903
|
}
|
|
891
904
|
|
|
@@ -990,6 +1003,7 @@ export interface SeoTrackedDomainMetrics {
|
|
|
990
1003
|
organic_keywords?: number | null;
|
|
991
1004
|
referring_domains?: number | null;
|
|
992
1005
|
top3_positions?: number | null;
|
|
1006
|
+
traffic_basis?: string | null;
|
|
993
1007
|
}
|
|
994
1008
|
|
|
995
1009
|
/**
|
|
@@ -1005,6 +1019,7 @@ export interface SeoTrackedDomains {
|
|
|
1005
1019
|
pages_cap: number;
|
|
1006
1020
|
pages_max_credits: number;
|
|
1007
1021
|
refresh_credits: number;
|
|
1022
|
+
research_credits?: number;
|
|
1008
1023
|
}
|
|
1009
1024
|
|
|
1010
1025
|
/** Mirrors `TrackedKeywordDTO`. */
|
|
@@ -1017,7 +1032,10 @@ export interface SeoTrackedKeyword {
|
|
|
1017
1032
|
language_code: string;
|
|
1018
1033
|
latest_checked_at?: string | null;
|
|
1019
1034
|
latest_rank?: number | null;
|
|
1035
|
+
latest_serp_depth?: number | null;
|
|
1020
1036
|
latest_serp_url?: string | null;
|
|
1021
1037
|
location_code: number;
|
|
1022
1038
|
search_volume?: number | null;
|
|
1039
|
+
serp_features?: Array<string>;
|
|
1040
|
+
tags?: Array<string>;
|
|
1023
1041
|
}
|
package/docs/api/seo.md
CHANGED
|
@@ -229,6 +229,7 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
229
229
|
| `completed_at` | `string (date-time) \| null` | no | |
|
|
230
230
|
| `created_at` | `string (date-time) \| null` | no | |
|
|
231
231
|
| `credits_charged` | `integer \| null` | no | |
|
|
232
|
+
| `enable_javascript` | `boolean` | no | default `false` |
|
|
232
233
|
| `failure_reason` | `string \| null` | no | |
|
|
233
234
|
| `onpage_score` | `number \| null` | no | |
|
|
234
235
|
| `pages_crawled` | `integer \| null` | no | |
|
|
@@ -636,6 +637,7 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
636
637
|
| `completed_at` | `string (date-time) \| null` | no | |
|
|
637
638
|
| `created_at` | `string (date-time) \| null` | no | |
|
|
638
639
|
| `credits_charged` | `integer \| null` | no | |
|
|
640
|
+
| `enable_javascript` | `boolean` | no | default `false` |
|
|
639
641
|
| `failure_reason` | `string \| null` | no | |
|
|
640
642
|
| `onpage_score` | `number \| null` | no | |
|
|
641
643
|
| `pages_crawled` | `integer \| null` | no | |
|
|
@@ -832,6 +834,7 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
832
834
|
| `pages_cap` | `integer` | yes | |
|
|
833
835
|
| `pages_max_credits` | `integer` | yes | |
|
|
834
836
|
| `refresh_credits` | `integer` | yes | |
|
|
837
|
+
| `research_credits` | `integer` | no | default `1` |
|
|
835
838
|
|
|
836
839
|
**Example**
|
|
837
840
|
|
|
@@ -880,8 +883,11 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
880
883
|
| `created_at` | `string (date-time) \| null` | no | |
|
|
881
884
|
| `latest_checked_at` | `string (date-time) \| null` | no | |
|
|
882
885
|
| `latest_rank` | `integer \| null` | no | |
|
|
886
|
+
| `latest_serp_depth` | `integer \| null` | no | |
|
|
883
887
|
| `latest_serp_url` | `string \| null` | no | |
|
|
884
888
|
| `search_volume` | `integer \| null` | no | |
|
|
889
|
+
| `serp_features` | `Array<string>` | no | default `[]` |
|
|
890
|
+
| `tags` | `Array<string>` | no | default `[]` |
|
|
885
891
|
|
|
886
892
|
**Example**
|
|
887
893
|
|
|
@@ -1046,8 +1052,11 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
1046
1052
|
| `created_at` | `string (date-time) \| null` | no | |
|
|
1047
1053
|
| `latest_checked_at` | `string (date-time) \| null` | no | |
|
|
1048
1054
|
| `latest_rank` | `integer \| null` | no | |
|
|
1055
|
+
| `latest_serp_depth` | `integer \| null` | no | |
|
|
1049
1056
|
| `latest_serp_url` | `string \| null` | no | |
|
|
1050
1057
|
| `search_volume` | `integer \| null` | no | |
|
|
1058
|
+
| `serp_features` | `Array<string>` | no | default `[]` |
|
|
1059
|
+
| `tags` | `Array<string>` | no | default `[]` |
|
|
1051
1060
|
|
|
1052
1061
|
**Example**
|
|
1053
1062
|
|
|
@@ -1090,6 +1099,8 @@ Body fields (`SeoStartAuditRequest`):
|
|
|
1090
1099
|
| Field | Type | Required | Description |
|
|
1091
1100
|
|---|---|---|---|
|
|
1092
1101
|
| `body.domain` | `string` | yes | min length 3, max length 255 |
|
|
1102
|
+
| `body.allow_subdomains` | `boolean` | no | default `false` |
|
|
1103
|
+
| `body.enable_javascript` | `boolean` | no | default `false` |
|
|
1093
1104
|
| `body.max_pages` | `integer` | no | default `500`, min 10, max 500 |
|
|
1094
1105
|
|
|
1095
1106
|
**Returns** `ApiResponse_SeoAudit_`: the envelope `{ data: SeoAudit, ... }`. `g8.api` returns the envelope as-is, so read `result.data`.
|
|
@@ -1108,6 +1119,7 @@ Other envelope fields: `pagination` (PaginationMeta).
|
|
|
1108
1119
|
| `completed_at` | `string (date-time) \| null` | no | |
|
|
1109
1120
|
| `created_at` | `string (date-time) \| null` | no | |
|
|
1110
1121
|
| `credits_charged` | `integer \| null` | no | |
|
|
1122
|
+
| `enable_javascript` | `boolean` | no | default `false` |
|
|
1111
1123
|
| `failure_reason` | `string \| null` | no | |
|
|
1112
1124
|
| `onpage_score` | `number \| null` | no | |
|
|
1113
1125
|
| `pages_crawled` | `integer \| null` | no | |
|
|
@@ -1179,6 +1191,7 @@ Mirrors `AuditIssueDTO`.
|
|
|
1179
1191
|
| `affected_count` | `integer` | yes | |
|
|
1180
1192
|
| `issue_type` | `string` | yes | |
|
|
1181
1193
|
| `severity` | `string` | yes | |
|
|
1194
|
+
| `affected_total` | `integer` | no | default `0` |
|
|
1182
1195
|
| `affected_urls` | `Array<Record<string, unknown>>` | no | default `[]` |
|
|
1183
1196
|
|
|
1184
1197
|
<a id="type-seoauditstate"></a>
|
|
@@ -1247,10 +1260,19 @@ Mirrors `KeywordRow`.
|
|
|
1247
1260
|
|---|---|---|---|
|
|
1248
1261
|
| `keyword` | `string` | yes | |
|
|
1249
1262
|
| `competition` | `number` | no | default `0` |
|
|
1250
|
-
| `cpc` | `number` | no |
|
|
1263
|
+
| `cpc` | `number \| null` | no | |
|
|
1264
|
+
| `cpc_high` | `number \| null` | no | |
|
|
1251
1265
|
| `intent` | `string \| null` | no | |
|
|
1266
|
+
| `intents` | `Array<string>` | no | default `[]` |
|
|
1252
1267
|
| `keyword_difficulty` | `integer \| null` | no | |
|
|
1268
|
+
| `parent_topic` | `string \| null` | no | |
|
|
1269
|
+
| `parent_topic_volume` | `integer \| null` | no | |
|
|
1270
|
+
| `results_count` | `integer \| null` | no | |
|
|
1253
1271
|
| `search_volume` | `integer` | no | default `0` |
|
|
1272
|
+
| `search_volume_avg` | `integer \| null` | no | |
|
|
1273
|
+
| `serp_features` | `Array<string>` | no | default `[]` |
|
|
1274
|
+
| `trend` | `Array<integer>` | no | default `[]` |
|
|
1275
|
+
| `volume_spike` | `boolean` | no | default `false` |
|
|
1254
1276
|
|
|
1255
1277
|
<a id="type-seomover"></a>
|
|
1256
1278
|
|
|
@@ -1372,3 +1394,4 @@ Mirrors `TrackedDomainMetricsDTO`.
|
|
|
1372
1394
|
| `organic_keywords` | `integer \| null` | no | |
|
|
1373
1395
|
| `referring_domains` | `number \| null` | no | |
|
|
1374
1396
|
| `top3_positions` | `integer \| null` | no | |
|
|
1397
|
+
| `traffic_basis` | `string \| null` | no | |
|