GoodInbound

Workflows, Analytics, and Files

All routes here need a project API key: Authorization: Bearer gi_live_.... See Authentication.

Workflows#

Manage workflow definitions and their ordered steps, inspect runs, and start manual or test runs. For what triggers and actions do, see Workflows and Webhooks.

Method Path Description
GET /api/projects/:projectId/workflows List workflows.
POST /api/projects/:projectId/workflows Create a workflow.
GET /api/projects/:projectId/workflows/:workflowId Get a workflow.
PUT /api/projects/:projectId/workflows/:workflowId Update a workflow.
DELETE /api/projects/:projectId/workflows/:workflowId Delete a workflow.
GET /api/projects/:projectId/workflows/:workflowId/steps List workflow steps.
POST /api/projects/:projectId/workflows/:workflowId/steps Create a workflow step.
PUT /api/projects/:projectId/workflows/:workflowId/steps/:stepId Update a workflow step.
DELETE /api/projects/:projectId/workflows/:workflowId/steps/:stepId Delete a workflow step.
PUT /api/projects/:projectId/workflows/:workflowId/steps/reorder Reorder workflow steps.
GET /api/projects/:projectId/workflows/:workflowId/runs List workflow runs with an optional limit.
GET /api/projects/:projectId/workflows/:workflowId/runs/:runId Get one run with step snapshots.
POST /api/projects/:projectId/workflows/:workflowId/trigger Start a manual workflow run.
POST /api/projects/:projectId/workflows/:workflowId/test Test a workflow against supplied context.
  • Create a workflow with name, trigger, and an optional triggerConfig. Steps use sortOrder, type, config, and an optional condition; updates are partial.
  • Triggers: form_submitted, booking_created, booking_cancelled, booking_pending, booking_confirmed, new_contact_created, tag_added, manual, and scheduled.
  • Step types: send_email, ai_research, add_tag, remove_tag, wait, condition, webhook, and update_contact.
  • A workflow can have at most 3 send_email steps. Creating a fourth, or changing another step to send_email, returns 400.

Analytics and recent activity#

Read project activity and unique-journey booking and form funnels, and configure the analytics providers your pages send events to.

Method Path Description
GET /api/projects/:projectId/activity/recent Get recent project activity.
GET /api/projects/:projectId/analytics/filters Get available analytics filter values.
GET /api/projects/:projectId/analytics/overview Get conversion and traffic overview metrics.
GET /api/projects/:projectId/analytics/bookings Get booking analytics.
GET /api/projects/:projectId/analytics/forms Get form analytics.
GET /api/projects/:projectId/analytics/integrations List GA4, Meta Pixel, and PostHog configuration.
PUT /api/projects/:projectId/analytics/integrations/:provider Configure one analytics provider.
  • Detailed analytics and provider configuration require Pro.
  • period is 7d, 30d, 90d, or custom. Custom needs both inclusive start and end ISO dates.
  • Filter by resourceSlug, UTM source, medium, and campaign, direct or widget source, and mobile, tablet, or desktop device.
  • Booking analytics also need an IANA timezone; dates, weekdays, and times are grouped in it.
  • Pick one event type or form for exact stages; without one you get a high-level summary across all of them.
  • Detailed reports count unique journeys and include availableSince, stage visitors, continuation and drop-off rates, conditional skips, journey sources, and visitor devices.
  • Booking reports add clicked weekdays, slot checks for selected dates, and booked weekday and time distributions. Every booking request counts once whatever its status, including rescheduled originals and replacements. Those booking distributions follow the period and event type filters only; traffic and device filters apply to visitor journeys.
  • Reports never return names, emails, raw answers, journey IDs, IP addresses, or raw errors.
  • Provider writes accept only public GA4 measurement IDs, numeric Meta Pixel IDs, and PostHog project keys with a US or EU host. Raw scripts and arbitrary URLs are rejected.

Files and project calendars#

Upload project files and list the calendars available through the project's connected Google accounts.

Method Path Description
POST /api/projects/:projectId/uploads Upload a project file.
DELETE /api/projects/:projectId/uploads/:key Delete a project upload.
GET /api/projects/:projectId/calendar/calendars List calendars available to the project.
  • Uploads use multipart/form-data and return an object key or URL for later use.
  • Deleting an upload needs the complete object key, including nested path segments.
  • Calendar listing is read-only. Connect or disconnect Google accounts in the dashboard, then pick calendars through the event type calendar endpoints.