@graph8/sdk 0.251.0 → 0.260.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 +9 -2
- package/dist/cli.js +216 -0
- package/dist/index.d.mts +104 -7
- package/dist/index.d.ts +104 -7
- package/dist/index.js +44 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +44 -3
- package/dist/index.mjs.map +1 -1
- package/dist/react.d.mts +102 -7
- package/dist/react.d.ts +102 -7
- package/dist/react.js +62 -11
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +53 -12
- package/dist/react.mjs.map +1 -1
- package/dist/types/README.md +7 -0
- package/dist/types/agency.d.ts +20 -0
- package/dist/types/agentSetup.d.ts +57 -0
- package/dist/types/api.d.ts +127 -0
- package/dist/types/appClient.d.ts +99 -0
- package/dist/types/appPlatform.d.ts +269 -0
- package/dist/types/appTokens.d.ts +125 -0
- package/dist/types/apps.d.ts +130 -0
- package/dist/types/audiences.d.ts +88 -0
- package/dist/types/calendar.d.ts +55 -0
- package/dist/types/campaigns.d.ts +61 -0
- package/dist/types/chat.d.ts +35 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/companies.d.ts +123 -0
- package/dist/types/contacts.d.ts +200 -0
- package/dist/types/copilot.d.ts +31 -0
- package/dist/types/core.d.ts +1052 -0
- package/dist/types/deals.d.ts +215 -0
- package/dist/types/enrich.d.ts +51 -0
- package/dist/types/fields.d.ts +84 -0
- package/dist/types/forms.d.ts +16 -0
- package/dist/types/http.d.ts +141 -0
- package/dist/types/inbox.d.ts +123 -0
- package/dist/types/index.d.ts +63 -0
- package/dist/types/intent.d.ts +196 -0
- package/dist/types/lists.d.ts +44 -0
- package/dist/types/mailboxes.d.ts +240 -0
- package/dist/types/marketplace.d.ts +62 -0
- package/dist/types/meetings.d.ts +70 -0
- package/dist/types/newsletter.d.ts +212 -0
- package/dist/types/notes.d.ts +57 -0
- package/dist/types/objects.d.ts +281 -0
- package/dist/types/pipelines.d.ts +135 -0
- package/dist/types/quotes.d.ts +143 -0
- package/dist/types/react.d.ts +978 -0
- package/dist/types/search.d.ts +99 -0
- package/dist/types/sequences.d.ts +255 -0
- package/dist/types/signals.d.ts +28 -0
- package/dist/types/skills.d.ts +176 -0
- package/dist/types/snippet.d.ts +24 -0
- package/dist/types/studio.d.ts +161 -0
- package/dist/types/tasks.d.ts +101 -0
- package/dist/types/types.d.ts +45 -0
- package/dist/types/utils.d.ts +21 -0
- package/dist/types/version.d.ts +10 -0
- package/dist/types/visitors.d.ts +29 -0
- package/dist/types/voice.d.ts +304 -0
- package/dist/types/webhooks.d.ts +71 -0
- package/dist/types/workflows.d.ts +229 -0
- package/docs/agents.md +748 -0
- package/docs/api/README.md +165 -0
- package/docs/api/accounts.d.ts +396 -0
- package/docs/api/accounts.md +644 -0
- package/docs/api/adCampaigns.d.ts +707 -0
- package/docs/api/adCampaigns.md +1091 -0
- package/docs/api/adCreatives.d.ts +996 -0
- package/docs/api/adCreatives.md +1708 -0
- package/docs/api/agency.d.ts +556 -0
- package/docs/api/agency.md +845 -0
- package/docs/api/agent.d.ts +330 -0
- package/docs/api/agent.md +514 -0
- package/docs/api/agents.d.ts +1622 -0
- package/docs/api/agents.md +2860 -0
- package/docs/api/aiInbox.d.ts +1984 -0
- package/docs/api/aiInbox.md +3490 -0
- package/docs/api/analytics.d.ts +1273 -0
- package/docs/api/analytics.md +2095 -0
- package/docs/api/apiKeys.d.ts +252 -0
- package/docs/api/apiKeys.md +318 -0
- package/docs/api/appDeployments.d.ts +236 -0
- package/docs/api/appDeployments.md +471 -0
- package/docs/api/appDomains.d.ts +171 -0
- package/docs/api/appDomains.md +281 -0
- package/docs/api/appLogs.d.ts +120 -0
- package/docs/api/appLogs.md +159 -0
- package/docs/api/appObjects.d.ts +415 -0
- package/docs/api/appObjects.md +568 -0
- package/docs/api/appPages.d.ts +557 -0
- package/docs/api/appPages.md +796 -0
- package/docs/api/appPlatformTokens.d.ts +123 -0
- package/docs/api/appPlatformTokens.md +172 -0
- package/docs/api/appointments.d.ts +2361 -0
- package/docs/api/appointments.md +3917 -0
- package/docs/api/apps.d.ts +822 -0
- package/docs/api/apps.md +1342 -0
- package/docs/api/assertUpsert.d.ts +286 -0
- package/docs/api/assertUpsert.md +370 -0
- package/docs/api/audienceSyncs.d.ts +259 -0
- package/docs/api/audienceSyncs.md +395 -0
- package/docs/api/brandKit.d.ts +686 -0
- package/docs/api/brandKit.md +1133 -0
- package/docs/api/bugReports.d.ts +181 -0
- package/docs/api/bugReports.md +268 -0
- package/docs/api/by-path.md +3260 -0
- package/docs/api/calendarInvites.d.ts +117 -0
- package/docs/api/calendarInvites.md +148 -0
- package/docs/api/campaignWorkflows.d.ts +152 -0
- package/docs/api/campaignWorkflows.md +200 -0
- package/docs/api/campaigns.d.ts +721 -0
- package/docs/api/campaigns.md +1236 -0
- package/docs/api/channels.d.ts +171 -0
- package/docs/api/channels.md +235 -0
- package/docs/api/cliCampaigns.d.ts +205 -0
- package/docs/api/cliCampaigns.md +256 -0
- package/docs/api/cliPipelines.d.ts +324 -0
- package/docs/api/cliPipelines.md +562 -0
- package/docs/api/clickHouse.d.ts +115 -0
- package/docs/api/clickHouse.md +138 -0
- package/docs/api/companies.d.ts +1636 -0
- package/docs/api/companies.md +2211 -0
- package/docs/api/companyIntelligence.d.ts +299 -0
- package/docs/api/companyIntelligence.md +488 -0
- package/docs/api/contacts.d.ts +2173 -0
- package/docs/api/contacts.md +3143 -0
- package/docs/api/content.d.ts +968 -0
- package/docs/api/content.md +1667 -0
- package/docs/api/contentGridSkills.d.ts +177 -0
- package/docs/api/contentGridSkills.md +271 -0
- package/docs/api/copilot.d.ts +1017 -0
- package/docs/api/copilot.md +1765 -0
- package/docs/api/crmSyncs.d.ts +215 -0
- package/docs/api/crmSyncs.md +301 -0
- package/docs/api/customerSuccess.d.ts +491 -0
- package/docs/api/customerSuccess.md +776 -0
- package/docs/api/deals.d.ts +1696 -0
- package/docs/api/deals.md +2432 -0
- package/docs/api/deliverability.d.ts +418 -0
- package/docs/api/deliverability.md +677 -0
- package/docs/api/desk.d.ts +1765 -0
- package/docs/api/desk.md +3007 -0
- package/docs/api/dialer.d.ts +1185 -0
- package/docs/api/dialer.md +2166 -0
- package/docs/api/dialerAnalytics.d.ts +187 -0
- package/docs/api/dialerAnalytics.md +257 -0
- package/docs/api/documents.d.ts +895 -0
- package/docs/api/documents.md +1440 -0
- package/docs/api/duplicates.d.ts +195 -0
- package/docs/api/duplicates.md +315 -0
- package/docs/api/eSign.d.ts +38 -0
- package/docs/api/eSign.md +54 -0
- package/docs/api/eSignature.d.ts +242 -0
- package/docs/api/eSignature.md +341 -0
- package/docs/api/enrichment.d.ts +3207 -0
- package/docs/api/enrichment.md +5225 -0
- package/docs/api/events.d.ts +115 -0
- package/docs/api/events.md +105 -0
- package/docs/api/fields.d.ts +482 -0
- package/docs/api/fields.md +566 -0
- package/docs/api/forms.d.ts +1012 -0
- package/docs/api/forms.md +1542 -0
- package/docs/api/gtmCampaigns.d.ts +662 -0
- package/docs/api/gtmCampaigns.md +1044 -0
- package/docs/api/gtmContext.d.ts +1187 -0
- package/docs/api/gtmContext.md +2112 -0
- package/docs/api/gtmDeliverability.d.ts +60 -0
- package/docs/api/gtmDeliverability.md +63 -0
- package/docs/api/gtmKnowledgeBase.d.ts +76 -0
- package/docs/api/gtmKnowledgeBase.md +91 -0
- package/docs/api/gtmLaunchHelpers.d.ts +123 -0
- package/docs/api/gtmLaunchHelpers.md +148 -0
- package/docs/api/gtmLibrary.d.ts +448 -0
- package/docs/api/gtmLibrary.md +780 -0
- package/docs/api/health.d.ts +39 -0
- package/docs/api/health.md +58 -0
- package/docs/api/imageLibrary.d.ts +341 -0
- package/docs/api/imageLibrary.md +569 -0
- package/docs/api/imports.d.ts +157 -0
- package/docs/api/imports.md +174 -0
- package/docs/api/inbox.d.ts +709 -0
- package/docs/api/inbox.md +1067 -0
- package/docs/api/install.d.ts +213 -0
- package/docs/api/install.md +317 -0
- package/docs/api/installedApps.d.ts +131 -0
- package/docs/api/installedApps.md +241 -0
- package/docs/api/integrationStatus.d.ts +142 -0
- package/docs/api/integrationStatus.md +205 -0
- package/docs/api/integrations.d.ts +2327 -0
- package/docs/api/integrations.md +3791 -0
- package/docs/api/intent.d.ts +482 -0
- package/docs/api/intent.md +858 -0
- package/docs/api/knowledge.d.ts +501 -0
- package/docs/api/knowledge.md +843 -0
- package/docs/api/knowledgeBase.d.ts +84 -0
- package/docs/api/knowledgeBase.md +96 -0
- package/docs/api/landingPages.d.ts +1411 -0
- package/docs/api/landingPages.md +2488 -0
- package/docs/api/leads.d.ts +133 -0
- package/docs/api/leads.md +180 -0
- package/docs/api/library.d.ts +217 -0
- package/docs/api/library.md +338 -0
- package/docs/api/linkedIn.d.ts +227 -0
- package/docs/api/linkedIn.md +289 -0
- package/docs/api/linkedInOutreach.d.ts +727 -0
- package/docs/api/linkedInOutreach.md +990 -0
- package/docs/api/lists.d.ts +1106 -0
- package/docs/api/lists.md +1609 -0
- package/docs/api/logs.d.ts +71 -0
- package/docs/api/logs.md +70 -0
- package/docs/api/mailboxes.d.ts +1050 -0
- package/docs/api/mailboxes.md +1690 -0
- package/docs/api/marketingIntelligence.d.ts +256 -0
- package/docs/api/marketingIntelligence.md +454 -0
- package/docs/api/marketplace.d.ts +3173 -0
- package/docs/api/marketplace.md +5953 -0
- package/docs/api/mcp.d.ts +69 -0
- package/docs/api/mcp.md +69 -0
- package/docs/api/me.d.ts +54 -0
- package/docs/api/me.md +56 -0
- package/docs/api/meetings.d.ts +539 -0
- package/docs/api/meetings.md +747 -0
- package/docs/api/newsletter.d.ts +1613 -0
- package/docs/api/newsletter.md +2746 -0
- package/docs/api/notes.d.ts +517 -0
- package/docs/api/notes.md +888 -0
- package/docs/api/notifications.d.ts +94 -0
- package/docs/api/notifications.md +105 -0
- package/docs/api/objects.d.ts +621 -0
- package/docs/api/objects.md +1098 -0
- package/docs/api/openSearch.d.ts +234 -0
- package/docs/api/openSearch.md +297 -0
- package/docs/api/ops.d.ts +299 -0
- package/docs/api/ops.md +339 -0
- package/docs/api/orgGovernance.d.ts +393 -0
- package/docs/api/orgGovernance.md +623 -0
- package/docs/api/orgVideos.d.ts +184 -0
- package/docs/api/orgVideos.md +252 -0
- package/docs/api/organizationSettings.d.ts +626 -0
- package/docs/api/organizationSettings.md +911 -0
- package/docs/api/phoneNumbers.d.ts +484 -0
- package/docs/api/phoneNumbers.md +777 -0
- package/docs/api/profile.d.ts +329 -0
- package/docs/api/profile.md +540 -0
- package/docs/api/programmaticPages.d.ts +400 -0
- package/docs/api/programmaticPages.md +626 -0
- package/docs/api/providerDomains.d.ts +866 -0
- package/docs/api/providerDomains.md +1446 -0
- package/docs/api/providerUsage.d.ts +129 -0
- package/docs/api/providerUsage.md +186 -0
- package/docs/api/public.d.ts +69 -0
- package/docs/api/public.md +78 -0
- package/docs/api/publicCopilot.d.ts +67 -0
- package/docs/api/publicCopilot.md +80 -0
- package/docs/api/publicSignals.d.ts +66 -0
- package/docs/api/publicSignals.md +71 -0
- package/docs/api/publicVisitors.d.ts +97 -0
- package/docs/api/publicVisitors.md +118 -0
- package/docs/api/quotes.d.ts +1564 -0
- package/docs/api/quotes.md +2553 -0
- package/docs/api/radar.d.ts +808 -0
- package/docs/api/radar.md +1431 -0
- package/docs/api/radarReports.d.ts +208 -0
- package/docs/api/radarReports.md +306 -0
- package/docs/api/recordRoles.d.ts +143 -0
- package/docs/api/recordRoles.md +175 -0
- package/docs/api/repos.d.ts +146 -0
- package/docs/api/repos.md +211 -0
- package/docs/api/research.d.ts +295 -0
- package/docs/api/research.md +534 -0
- package/docs/api/revenue.d.ts +402 -0
- package/docs/api/revenue.md +608 -0
- package/docs/api/revenueAnalytics.d.ts +147 -0
- package/docs/api/revenueAnalytics.md +212 -0
- package/docs/api/revenueLifecycle.d.ts +207 -0
- package/docs/api/revenueLifecycle.md +274 -0
- package/docs/api/revenueRecords.d.ts +372 -0
- package/docs/api/revenueRecords.md +563 -0
- package/docs/api/roles.d.ts +431 -0
- package/docs/api/roles.md +812 -0
- package/docs/api/salesCoach.d.ts +877 -0
- package/docs/api/salesCoach.md +1540 -0
- package/docs/api/sandbox.d.ts +210 -0
- package/docs/api/sandbox.md +380 -0
- package/docs/api/scans.d.ts +104 -0
- package/docs/api/scans.md +136 -0
- package/docs/api/scheduleBuy.d.ts +293 -0
- package/docs/api/scheduleBuy.md +431 -0
- package/docs/api/scraping.d.ts +266 -0
- package/docs/api/scraping.md +383 -0
- package/docs/api/sdrAnalytics.d.ts +138 -0
- package/docs/api/sdrAnalytics.md +246 -0
- package/docs/api/search.d.ts +598 -0
- package/docs/api/search.md +866 -0
- package/docs/api/seo.d.ts +447 -0
- package/docs/api/seo.md +660 -0
- package/docs/api/sequenceLifecycle.d.ts +439 -0
- package/docs/api/sequenceLifecycle.md +513 -0
- package/docs/api/sequences.d.ts +1936 -0
- package/docs/api/sequences.md +3232 -0
- package/docs/api/settings.d.ts +448 -0
- package/docs/api/settings.md +731 -0
- package/docs/api/signals.d.ts +1441 -0
- package/docs/api/signals.md +2526 -0
- package/docs/api/signatures.d.ts +719 -0
- package/docs/api/signatures.md +1247 -0
- package/docs/api/skills.d.ts +230 -0
- package/docs/api/skills.md +466 -0
- package/docs/api/snippet.d.ts +85 -0
- package/docs/api/snippet.md +106 -0
- package/docs/api/socialPublishing.d.ts +824 -0
- package/docs/api/socialPublishing.md +1245 -0
- package/docs/api/studioDocuments.d.ts +244 -0
- package/docs/api/studioDocuments.md +348 -0
- package/docs/api/support.d.ts +90 -0
- package/docs/api/support.md +76 -0
- package/docs/api/suppressions.d.ts +241 -0
- package/docs/api/suppressions.md +343 -0
- package/docs/api/surveys.d.ts +847 -0
- package/docs/api/surveys.md +1223 -0
- package/docs/api/tasks.d.ts +813 -0
- package/docs/api/tasks.md +1344 -0
- package/docs/api/teamMembers.d.ts +668 -0
- package/docs/api/teamMembers.md +1040 -0
- package/docs/api/teams.d.ts +784 -0
- package/docs/api/teams.md +1395 -0
- package/docs/api/usage.d.ts +277 -0
- package/docs/api/usage.md +389 -0
- package/docs/api/visitors.d.ts +690 -0
- package/docs/api/visitors.md +1075 -0
- package/docs/api/voice.d.ts +4661 -0
- package/docs/api/voice.md +7905 -0
- package/docs/api/webAnalytics.d.ts +964 -0
- package/docs/api/webAnalytics.md +1452 -0
- package/docs/api/webChat.d.ts +1704 -0
- package/docs/api/webChat.md +2048 -0
- package/docs/api/webhooks.d.ts +251 -0
- package/docs/api/webhooks.md +386 -0
- package/docs/api/websiteEditor.d.ts +324 -0
- package/docs/api/websiteEditor.md +517 -0
- package/docs/api/work.d.ts +2298 -0
- package/docs/api/work.md +3096 -0
- package/docs/api/workbench.d.ts +2962 -0
- package/docs/api/workbench.md +4884 -0
- package/docs/api/workflows.d.ts +1218 -0
- package/docs/api/workflows.md +2302 -0
- package/docs/sdk-clients.md +4339 -0
- package/package.json +10 -3
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Known graph8 webhook event types.
|
|
3
|
+
*
|
|
4
|
+
* Source of truth is the backend ``WEBHOOK_EVENTS`` catalog
|
|
5
|
+
* (campaign_builder/services/webhook_service.py). Keep in sync when the backend
|
|
6
|
+
* adds events. ``WebhookEvent`` also accepts any string so a newly-added
|
|
7
|
+
* backend event never breaks a client that hasn't upgraded.
|
|
8
|
+
*/
|
|
9
|
+
export declare const KNOWN_WEBHOOK_EVENTS: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
|
|
10
|
+
export type WebhookEvent = (typeof KNOWN_WEBHOOK_EVENTS)[number] | (string & {});
|
|
11
|
+
/** The decoded body graph8 delivers to a webhook endpoint. */
|
|
12
|
+
export interface WebhookEventPayload {
|
|
13
|
+
event: WebhookEvent;
|
|
14
|
+
timestamp: string;
|
|
15
|
+
data: Record<string, unknown>;
|
|
16
|
+
org_id: string;
|
|
17
|
+
/** Stable event ID for consumer deduplication; delivery ID is in X-Studio-Delivery-Id. */
|
|
18
|
+
id?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ConstructEventOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Reject events whose ``X-Studio-Timestamp`` is older (or newer) than this
|
|
23
|
+
* many seconds — replay protection. Disabled when 0/undefined.
|
|
24
|
+
*/
|
|
25
|
+
toleranceSeconds?: number;
|
|
26
|
+
}
|
|
27
|
+
/** Thrown by {@link constructEvent} when a webhook cannot be verified. */
|
|
28
|
+
export declare class WebhookSignatureError extends Error {
|
|
29
|
+
constructor(message: string);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Verify the HMAC-SHA256 signature of an incoming graph8 webhook and return the
|
|
33
|
+
* parsed event. Server-side only (needs the per-endpoint signing secret).
|
|
34
|
+
*
|
|
35
|
+
* Mirrors the backend signing scheme exactly: the signature is
|
|
36
|
+
* ``HMAC_SHA256(secret, `${timestamp}.${rawBody}`)`` hex-encoded, delivered in
|
|
37
|
+
* the ``X-Studio-Signature`` header alongside the unix ``X-Studio-Timestamp``.
|
|
38
|
+
*
|
|
39
|
+
* @param payload The RAW request body string (verify before JSON.parse — re-serializing changes bytes).
|
|
40
|
+
* @param signature The ``X-Studio-Signature`` header (an optional ``sha256=`` prefix is tolerated).
|
|
41
|
+
* @param timestamp The ``X-Studio-Timestamp`` header (unix seconds).
|
|
42
|
+
* @param secret The endpoint's signing secret.
|
|
43
|
+
* @throws {WebhookSignatureError} on a missing/invalid signature, stale timestamp, or bad JSON.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* app.post("/webhooks/graph8", (req, res) => {
|
|
47
|
+
* const event = g8.webhooks.constructEvent(
|
|
48
|
+
* req.rawBody,
|
|
49
|
+
* req.header("X-Studio-Signature"),
|
|
50
|
+
* req.header("X-Studio-Timestamp"),
|
|
51
|
+
* process.env.G8_WEBHOOK_SECRET,
|
|
52
|
+
* { toleranceSeconds: 300 },
|
|
53
|
+
* );
|
|
54
|
+
* if (event.event === "meeting.booked") { ... }
|
|
55
|
+
* res.sendStatus(200);
|
|
56
|
+
* });
|
|
57
|
+
*/
|
|
58
|
+
export declare function constructEvent(payload: string, signature: string, timestamp: string | number, secret: string, opts?: ConstructEventOptions): WebhookEventPayload;
|
|
59
|
+
/**
|
|
60
|
+
* Webhooks client (server-side). graph8 webhooks are PUSH — graph8 POSTs to your
|
|
61
|
+
* endpoint; you verify each delivery with {@link constructEvent}. (The previous
|
|
62
|
+
* polling implementation hit a feed endpoint that never existed and is removed.)
|
|
63
|
+
*/
|
|
64
|
+
export declare const createWebhooksClient: (_apiKey: string, apiUrl?: string) => {
|
|
65
|
+
/** Base URL the webhook subscription API lives under. */
|
|
66
|
+
baseUrl: string;
|
|
67
|
+
/** Known event types (for autocomplete / validation). */
|
|
68
|
+
knownEvents: readonly ["campaign.created", "campaign.updated", "campaign.deleted", "campaign.launched", "campaign.paused", "campaign.completed", "campaign.status_changed", "campaign.content_ready", "document.generated", "document.failed", "intelligence.completed", "intelligence.failed", "company.enriched", "company_intelligence.completed", "audience.ready", "audience.failed", "sequence.draft_created", "sequence.started", "sequence.paused", "sequence.completed", "engagement.email_sent", "engagement.email_replied", "engagement.email_bounced", "engagement.email_skipped", "engagement.call_dispatched", "engagement.call_connected", "engagement.call_graded", "engagement.sms_sent", "engagement.sms_replied", "engagement.whatsapp_sent", "engagement.linkedin_connection_sent", "engagement.linkedin_message_sent", "engagement.linkedin_inmail_sent", "engagement.linkedin_reply_received", "engagement.linkedin_connection_accepted", "meeting.booked", "meeting.cancelled", "meeting.rescheduled", "deal.won", "crm.record.created", "crm.record.updated", "crm.record.archived", "crm.record.restored", "sequence.contact_enrolled", "sequence.contact_removed", "sequence.step_completed", "sequence.step_failed", "engagement.contact_unsubscribed", "engagement.sms_delivered", "engagement.sms_failed", "engagement.whatsapp_delivered", "engagement.whatsapp_failed", "engagement.call_started", "engagement.call_completed", "engagement.call_disposition_set", "engagement.voicemail_detected", "engagement.voicemail_left", "engagement.email_clicked", "engagement.link_clicked", "engagement.call_recording_ready", "meeting.no_show", "voice_ai.call_started", "voice_ai.call_completed", "voice_ai.voicemail_left", "deal.created", "deal.updated", "deal.stage_changed", "deal.deleted", "quote.created", "quote.updated", "quote.sent", "quote.resent", "quote.resend_failed", "quote.link_generated", "quote.viewed", "quote.accepted", "quote.declined", "quote.expired", "quote.voided", "quote.superseded", "quote.archived", "quote.unarchived", "quote.payment_received", "quote.payment_failed", "quote.subscription_canceled", "quote.provisioned", "form.submitted", "visitor.identified", "intent.signal", "task.created", "task.updated", "task.completed", "task.deleted", "enrichment.job_completed", "enrichment.job_failed", "workflow.execution_completed", "workflow.execution_failed"];
|
|
69
|
+
/** Verify an incoming webhook's HMAC signature and return the parsed event. */
|
|
70
|
+
constructEvent(payload: string, signature: string, timestamp: string | number, secret: string, opts?: ConstructEventOptions): WebhookEventPayload;
|
|
71
|
+
};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
export interface WorkflowNode {
|
|
2
|
+
id: string;
|
|
3
|
+
type: string;
|
|
4
|
+
config: Record<string, unknown>;
|
|
5
|
+
position?: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
/** Mapping from this node's output to the next node's input. */
|
|
10
|
+
input_mappings?: Record<string, string>;
|
|
11
|
+
}
|
|
12
|
+
export interface WorkflowConnection {
|
|
13
|
+
from_node_id: string;
|
|
14
|
+
to_node_id: string;
|
|
15
|
+
condition?: string | null;
|
|
16
|
+
}
|
|
17
|
+
export interface WorkflowConfig {
|
|
18
|
+
nodes: WorkflowNode[];
|
|
19
|
+
connections: WorkflowConnection[];
|
|
20
|
+
trigger?: Record<string, unknown> | null;
|
|
21
|
+
}
|
|
22
|
+
export interface Workflow {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description: string | null;
|
|
26
|
+
config: WorkflowConfig;
|
|
27
|
+
trigger_config: Record<string, unknown> | null;
|
|
28
|
+
is_active: boolean;
|
|
29
|
+
created_at: string | null;
|
|
30
|
+
updated_at: string | null;
|
|
31
|
+
}
|
|
32
|
+
export interface WorkflowCreateParams {
|
|
33
|
+
name: string;
|
|
34
|
+
description?: string;
|
|
35
|
+
config?: WorkflowConfig;
|
|
36
|
+
trigger_config?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
export interface WorkflowUpdateParams {
|
|
39
|
+
name?: string;
|
|
40
|
+
description?: string;
|
|
41
|
+
config?: WorkflowConfig;
|
|
42
|
+
trigger_config?: Record<string, unknown>;
|
|
43
|
+
is_active?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface WorkflowExecution {
|
|
46
|
+
id: string;
|
|
47
|
+
workflow_id: string;
|
|
48
|
+
status: "pending" | "running" | "paused" | "completed" | "failed" | "stopped";
|
|
49
|
+
trigger_payload: Record<string, unknown>;
|
|
50
|
+
outputs: Record<string, unknown>;
|
|
51
|
+
error: string | null;
|
|
52
|
+
started_at: string | null;
|
|
53
|
+
ended_at: string | null;
|
|
54
|
+
}
|
|
55
|
+
export interface NodeTypeSchema {
|
|
56
|
+
type: string;
|
|
57
|
+
label: string;
|
|
58
|
+
description: string;
|
|
59
|
+
config_schema: Record<string, unknown>;
|
|
60
|
+
output_schema: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
export interface WorkflowListParams {
|
|
63
|
+
page?: number;
|
|
64
|
+
limit?: number;
|
|
65
|
+
is_active?: boolean;
|
|
66
|
+
search?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Workflows API - automation workflows with nodes, connections, and execution lifecycle.
|
|
70
|
+
* Requires API key (server-side). On the hardened HTTP core: throws a typed
|
|
71
|
+
* `G8Error` on failure and retries transient errors.
|
|
72
|
+
*
|
|
73
|
+
* The graph8 workflow surface treats the whole workflow definition as a single
|
|
74
|
+
* record updated via `update()` — there are no per-node CRUD endpoints. To edit
|
|
75
|
+
* nodes or connections, fetch the workflow, mutate `config.nodes` / `config.connections`,
|
|
76
|
+
* and PUT it back.
|
|
77
|
+
*
|
|
78
|
+
* Backed by:
|
|
79
|
+
* GET /api/v1/workflows
|
|
80
|
+
* GET /api/v1/workflows/{id}
|
|
81
|
+
* POST /api/v1/workflows
|
|
82
|
+
* PUT /api/v1/workflows/{id}
|
|
83
|
+
* DELETE /api/v1/workflows/{id}
|
|
84
|
+
* POST /api/v1/workflows/validate
|
|
85
|
+
* POST /api/v1/workflows/{id}/execute
|
|
86
|
+
* GET /api/v1/workflows/executions/{exec_id}
|
|
87
|
+
* POST /api/v1/workflows/executions/{exec_id}/pause
|
|
88
|
+
* POST /api/v1/workflows/executions/{exec_id}/resume
|
|
89
|
+
* POST /api/v1/workflows/executions/{exec_id}/stop
|
|
90
|
+
* GET /api/v1/workflows/{id}/trigger-status
|
|
91
|
+
* POST /api/v1/workflows/{id}/trigger-reset
|
|
92
|
+
* GET /api/v1/workflows/node-types/schema
|
|
93
|
+
* GET /api/v1/workflows/integrations/slack/users|channels
|
|
94
|
+
* GET /api/v1/workflows/integrations/roam/users|groups
|
|
95
|
+
* GET /api/v1/workflows/mcp-servers
|
|
96
|
+
* GET /api/v1/workflows/dispositions
|
|
97
|
+
* GET /api/v1/workflows/forms/{form_id}/fields
|
|
98
|
+
*/
|
|
99
|
+
export declare const createWorkflowsClient: (apiKey: string, apiUrl?: string) => {
|
|
100
|
+
/** List workflows org-wide. */
|
|
101
|
+
list(params?: WorkflowListParams): Promise<{
|
|
102
|
+
data: Workflow[];
|
|
103
|
+
}>;
|
|
104
|
+
/** Get full workflow definition (nodes, connections, trigger, execution state). */
|
|
105
|
+
get(workflowId: string): Promise<Workflow>;
|
|
106
|
+
/** Create a new workflow. */
|
|
107
|
+
create(params: WorkflowCreateParams): Promise<Workflow>;
|
|
108
|
+
/**
|
|
109
|
+
* Update a workflow. Pass the full `config` (nodes + connections) to edit
|
|
110
|
+
* the graph — node-level CRUD is performed client-side by mutating the
|
|
111
|
+
* config and submitting the updated record.
|
|
112
|
+
*/
|
|
113
|
+
update(workflowId: string, fields: WorkflowUpdateParams): Promise<Workflow>;
|
|
114
|
+
/** Delete a workflow. */
|
|
115
|
+
delete(workflowId: string): Promise<{
|
|
116
|
+
data: {
|
|
117
|
+
deleted: boolean;
|
|
118
|
+
};
|
|
119
|
+
}>;
|
|
120
|
+
/** Validate a workflow definition (orphans, dangling connections, required fields). */
|
|
121
|
+
validate(workflow: {
|
|
122
|
+
config: WorkflowConfig;
|
|
123
|
+
trigger_config?: Record<string, unknown>;
|
|
124
|
+
}): Promise<{
|
|
125
|
+
data: {
|
|
126
|
+
valid: boolean;
|
|
127
|
+
errors: Array<{
|
|
128
|
+
node_id?: string;
|
|
129
|
+
field?: string;
|
|
130
|
+
message: string;
|
|
131
|
+
}>;
|
|
132
|
+
};
|
|
133
|
+
}>;
|
|
134
|
+
/** Execute a workflow immediately with a trigger payload. */
|
|
135
|
+
execute(workflowId: string, triggerPayload?: Record<string, unknown>): Promise<WorkflowExecution>;
|
|
136
|
+
/** Get the status + outputs of a single execution. */
|
|
137
|
+
getExecution(executionId: string): Promise<WorkflowExecution>;
|
|
138
|
+
/** Pause a running execution. */
|
|
139
|
+
pauseExecution(executionId: string): Promise<{
|
|
140
|
+
data: {
|
|
141
|
+
paused: boolean;
|
|
142
|
+
};
|
|
143
|
+
}>;
|
|
144
|
+
/** Resume a paused execution. */
|
|
145
|
+
resumeExecution(executionId: string): Promise<{
|
|
146
|
+
data: {
|
|
147
|
+
resumed: boolean;
|
|
148
|
+
};
|
|
149
|
+
}>;
|
|
150
|
+
/** Stop an execution. */
|
|
151
|
+
stopExecution(executionId: string): Promise<{
|
|
152
|
+
data: {
|
|
153
|
+
stopped: boolean;
|
|
154
|
+
};
|
|
155
|
+
}>;
|
|
156
|
+
/** Get the trigger status (e.g. schedule / webhook wiring) for a workflow. */
|
|
157
|
+
getTriggerStatus(workflowId: string): Promise<{
|
|
158
|
+
data: {
|
|
159
|
+
status: string;
|
|
160
|
+
details: Record<string, unknown>;
|
|
161
|
+
};
|
|
162
|
+
}>;
|
|
163
|
+
/** Reset a workflow's trigger cursor / state. */
|
|
164
|
+
resetTrigger(workflowId: string): Promise<{
|
|
165
|
+
data: {
|
|
166
|
+
reset: boolean;
|
|
167
|
+
};
|
|
168
|
+
}>;
|
|
169
|
+
/** Catalog of available workflow node types with config + output schemas. */
|
|
170
|
+
nodeTypes(params?: {
|
|
171
|
+
type?: string;
|
|
172
|
+
}): Promise<{
|
|
173
|
+
data: NodeTypeSchema[];
|
|
174
|
+
}>;
|
|
175
|
+
/** Slack users available to workflow nodes. */
|
|
176
|
+
listSlackUsers(): Promise<{
|
|
177
|
+
data: Array<{
|
|
178
|
+
id: string;
|
|
179
|
+
name: string;
|
|
180
|
+
email: string | null;
|
|
181
|
+
}>;
|
|
182
|
+
}>;
|
|
183
|
+
/** Slack channels available to workflow nodes. */
|
|
184
|
+
listSlackChannels(): Promise<{
|
|
185
|
+
data: Array<{
|
|
186
|
+
id: string;
|
|
187
|
+
name: string;
|
|
188
|
+
is_private: boolean;
|
|
189
|
+
}>;
|
|
190
|
+
}>;
|
|
191
|
+
/** Roam users available to workflow nodes. */
|
|
192
|
+
listRoamUsers(): Promise<{
|
|
193
|
+
data: Array<{
|
|
194
|
+
id: string;
|
|
195
|
+
name: string;
|
|
196
|
+
email: string | null;
|
|
197
|
+
}>;
|
|
198
|
+
}>;
|
|
199
|
+
/** Roam groups available to workflow nodes. */
|
|
200
|
+
listRoamGroups(): Promise<{
|
|
201
|
+
data: Array<{
|
|
202
|
+
id: string;
|
|
203
|
+
name: string;
|
|
204
|
+
}>;
|
|
205
|
+
}>;
|
|
206
|
+
/** MCP servers available to workflow nodes. */
|
|
207
|
+
listMcpServers(): Promise<{
|
|
208
|
+
data: Array<{
|
|
209
|
+
id: string;
|
|
210
|
+
name: string;
|
|
211
|
+
url: string;
|
|
212
|
+
}>;
|
|
213
|
+
}>;
|
|
214
|
+
/** Disposition options available to workflow nodes. */
|
|
215
|
+
listDispositions(): Promise<{
|
|
216
|
+
data: Array<{
|
|
217
|
+
id: string;
|
|
218
|
+
label: string;
|
|
219
|
+
}>;
|
|
220
|
+
}>;
|
|
221
|
+
/** Form field definitions for a given form (used by form-trigger nodes). */
|
|
222
|
+
listFormFields(formId: string): Promise<{
|
|
223
|
+
data: Array<{
|
|
224
|
+
name: string;
|
|
225
|
+
type: string;
|
|
226
|
+
required: boolean;
|
|
227
|
+
}>;
|
|
228
|
+
}>;
|
|
229
|
+
};
|