action posthog_marketing_analytics_data_sources_retrieve { label: "List marketing data sources" description: "Check the platform → data-warehouse side of every native marketing integration: connection state, sync recency, row counts, required-table status, and schema-mapping coverage. Read-only." provider: posthog method: GET path: "/api/projects/{project_id}/marketing_analytics/data_sources/" encoding: json input: { type: "object" properties: { source_type: { type: ["string", "null"] } } additionalProperties: false } output: { type: "object" required: ["has_any_data", "integrations", "issues_summary", "overall_status"] properties: { has_any_data: { type: "boolean" description: "True if any integration synced rows in the last 7 days" } integrations: { type: "array" description: "One health entry per native integration" items: { type: "object" required: ["connected", "diagnosis", "display_name", "fix_suggestion", "is_native", "last_error", "last_sync_at", "last_sync_status", "required_tables", "rows_last_24h", "rows_last_7d", "schema_columns_mapped", "schema_columns_required_missing", "schemas_url", "settings_url", "source_type", "sources_map_present"] properties: { connected: { type: "boolean" description: "Whether a live source of this type is connected" } diagnosis: { type: "string" description: "Human-readable diagnosis of this source's health" } display_name: { type: "string" description: "Human-readable integration name (e.g. 'Google Ads')" } fix_suggestion: { type: ["string", "null"] description: "Suggested fix when the source is unhealthy" } is_native: { type: "boolean" description: "Whether this is a native marketing integration" } last_error: { type: ["string", "null"] description: "Latest unresolved sync error message, if any" } last_sync_at: { type: ["string", "null"] format: "date-time" description: "When the source last completed a sync" } last_sync_status: { type: "string" description: "Sync status: ok/error/stale/tables_failed/not_connected/never" } required_tables: { type: "array" description: "Per-required-table sync status for this integration" items: { type: "object" required: ["last_synced_at", "present", "should_sync", "status", "table_name"] properties: { last_synced_at: { type: ["string", "null"] format: "date-time" description: "When this table last completed a sync" } present: { type: "boolean" description: "Whether the table exists as a schema on the connected source" } should_sync: { type: "boolean" description: "Whether the table is enabled for sync" } status: { type: ["string", "null"] description: "ExternalDataSchema status: Completed/Running/Failed/Paused/Cancelled, or null" } table_name: { type: "string" description: "Name of the required source table (e.g. 'campaign', 'campaign_stats')" } } } } rows_last_24h: { type: "integer" description: "Rows synced in the last 24 hours" } rows_last_7d: { type: "integer" description: "Rows synced in the last 7 days" } schema_columns_mapped: { type: "array" description: "Schema columns currently mapped for this source" items: { type: "string" } } schema_columns_required_missing: { type: "array" description: "Required schema columns that are not yet mapped" items: { type: "string" } } schemas_url: { type: ["string", "null"] description: "URL to the per-source Schemas tab, or null if not connected" } settings_url: { type: "string" description: "URL to the Marketing analytics global settings page" } source_type: { type: "string" description: "External data source type key (e.g. 'GoogleAds', 'MetaAds')" } sources_map_present: { type: "boolean" description: "Whether a column mapping exists for this source" } } } } issues_summary: { type: "array" description: "Short human-readable summary of detected issues" items: { type: "string" } } overall_status: { type: "string" description: "Overall: healthy/degraded/broken/no_sources" } } } }