opencode-knowledge-work 0.0.0-stage → 0.1.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/LICENSE +212 -0
- package/README.md +124 -2
- package/content/bio-research/.mcp.json +48 -0
- package/content/bio-research/CONNECTORS.md +23 -0
- package/content/bio-research/LICENSE +202 -0
- package/content/bio-research/README.md +83 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/SKILL.md +280 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/asm_schema_overview.md +226 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/field_classification_guide.md +503 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/flattening_guide.md +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/references/supported_instruments.md +151 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/requirements.txt +26 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/convert_to_asm.py +543 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/export_parser.py +481 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/flatten_asm.py +254 -0
- package/content/bio-research/skills/bio-research-instrument-data-to-allotrope/scripts/validate_asm.py +1102 -0
- package/content/bio-research/skills/bio-research-nextflow-development/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-nextflow-development/SKILL.md +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/geo-sra-acquisition.md +416 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/installation.md +96 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/atacseq.md +138 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/rnaseq.md +118 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/pipelines/sarek.md +145 -0
- package/content/bio-research/skills/bio-research-nextflow-development/references/troubleshooting.md +137 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/check_environment.py +452 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/genomes.yaml +148 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/atacseq.yaml +187 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/rnaseq.yaml +147 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/config/pipelines/sarek.yaml +233 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/detect_data_type.py +300 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/generate_samplesheet.py +455 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/manage_genomes.py +521 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/sra_geo_fetch.py +732 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/__init__.py +69 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/file_discovery.py +189 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/ncbi_utils.py +808 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/sample_inference.py +290 -0
- package/content/bio-research/skills/bio-research-nextflow-development/scripts/utils/validators.py +256 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/SKILL.md +269 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/01-intuition-pumps.md +264 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/02-risk-assessment.md +323 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/03-optimization-function.md +481 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/04-parameter-strategy.md +396 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/05-decision-tree.md +85 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/06-adversity-planning.md +123 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/07-problem-inversion.md +152 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/08-integration-synthesis.md +173 -0
- package/content/bio-research/skills/bio-research-scientific-problem-selection/references/09-meta-framework.md +504 -0
- package/content/bio-research/skills/bio-research-scvi-tools/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-scvi-tools/SKILL.md +155 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/atac_peakvi.md +398 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/batch_correction_sysvi.md +417 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/citeseq_totalvi.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/data_preparation.md +286 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/environment_setup.md +254 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/label_transfer.md +373 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/multiome_multivi.md +384 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/rna_velocity_velovi.md +410 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scarches_mapping.md +401 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/scrna_integration.md +429 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/spatial_deconvolution.md +438 -0
- package/content/bio-research/skills/bio-research-scvi-tools/references/troubleshooting.md +420 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/cluster_embed.py +212 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/differential_expression.py +220 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/integrate_datasets.py +237 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/model_utils.py +634 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/prepare_data.py +169 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/train_model.py +370 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/transfer_labels.py +224 -0
- package/content/bio-research/skills/bio-research-scvi-tools/scripts/validate_adata.py +397 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/LICENSE.txt +201 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/SKILL.md +175 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/references/scverse_qc_guidelines.md +186 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_analysis.py +232 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_core.py +233 -0
- package/content/bio-research/skills/bio-research-single-cell-rna-qc/scripts/qc_plotting.py +235 -0
- package/content/bio-research/skills/bio-research-start/SKILL.md +79 -0
- package/content/customer-support/.mcp.json +40 -0
- package/content/customer-support/CONNECTORS.md +19 -0
- package/content/customer-support/LICENSE +202 -0
- package/content/customer-support/README.md +140 -0
- package/content/customer-support/skills/customer-support-customer-escalation/SKILL.md +248 -0
- package/content/customer-support/skills/customer-support-customer-research/SKILL.md +252 -0
- package/content/customer-support/skills/customer-support-draft-response/SKILL.md +418 -0
- package/content/customer-support/skills/customer-support-kb-article/SKILL.md +351 -0
- package/content/customer-support/skills/customer-support-ticket-triage/SKILL.md +275 -0
- package/content/data/.mcp.json +36 -0
- package/content/data/CONNECTORS.md +18 -0
- package/content/data/LICENSE +202 -0
- package/content/data/README.md +121 -0
- package/content/data/skills/data-analyze/SKILL.md +119 -0
- package/content/data/skills/data-build-dashboard/SKILL.md +924 -0
- package/content/data/skills/data-create-viz/SKILL.md +154 -0
- package/content/data/skills/data-data-context-extractor/SKILL.md +227 -0
- package/content/data/skills/data-data-context-extractor/references/domain-template.md +147 -0
- package/content/data/skills/data-data-context-extractor/references/example-output.md +198 -0
- package/content/data/skills/data-data-context-extractor/references/skill-template.md +148 -0
- package/content/data/skills/data-data-context-extractor/references/sql-dialects.md +121 -0
- package/content/data/skills/data-data-context-extractor/scripts/package_data_skill.py +126 -0
- package/content/data/skills/data-data-visualization/SKILL.md +305 -0
- package/content/data/skills/data-explore-data/SKILL.md +325 -0
- package/content/data/skills/data-sql-queries/SKILL.md +428 -0
- package/content/data/skills/data-statistical-analysis/SKILL.md +245 -0
- package/content/data/skills/data-validate-data/SKILL.md +383 -0
- package/content/data/skills/data-write-query/SKILL.md +122 -0
- package/content/design/.mcp.json +44 -0
- package/content/design/CONNECTORS.md +18 -0
- package/content/design/README.md +117 -0
- package/content/design/skills/design-accessibility-review/SKILL.md +128 -0
- package/content/design/skills/design-design-critique/SKILL.md +118 -0
- package/content/design/skills/design-design-handoff/SKILL.md +131 -0
- package/content/design/skills/design-design-system/SKILL.md +190 -0
- package/content/design/skills/design-research-synthesis/SKILL.md +92 -0
- package/content/design/skills/design-user-research/SKILL.md +41 -0
- package/content/design/skills/design-ux-copy/SKILL.md +107 -0
- package/content/engineering/.mcp.json +48 -0
- package/content/engineering/CONNECTORS.md +19 -0
- package/content/engineering/README.md +136 -0
- package/content/engineering/skills/engineering-architecture/SKILL.md +85 -0
- package/content/engineering/skills/engineering-code-review/SKILL.md +118 -0
- package/content/engineering/skills/engineering-debug/SKILL.md +95 -0
- package/content/engineering/skills/engineering-deploy-checklist/SKILL.md +78 -0
- package/content/engineering/skills/engineering-documentation/SKILL.md +49 -0
- package/content/engineering/skills/engineering-incident-response/SKILL.md +158 -0
- package/content/engineering/skills/engineering-standup/SKILL.md +75 -0
- package/content/engineering/skills/engineering-system-design/SKILL.md +42 -0
- package/content/engineering/skills/engineering-tech-debt/SKILL.md +32 -0
- package/content/engineering/skills/engineering-testing-strategy/SKILL.md +33 -0
- package/content/enterprise-search/.mcp.json +36 -0
- package/content/enterprise-search/CONNECTORS.md +21 -0
- package/content/enterprise-search/LICENSE +202 -0
- package/content/enterprise-search/README.md +157 -0
- package/content/enterprise-search/skills/enterprise-search-digest/SKILL.md +173 -0
- package/content/enterprise-search/skills/enterprise-search-knowledge-synthesis/SKILL.md +258 -0
- package/content/enterprise-search/skills/enterprise-search-search/SKILL.md +178 -0
- package/content/enterprise-search/skills/enterprise-search-search-strategy/SKILL.md +222 -0
- package/content/enterprise-search/skills/enterprise-search-source-management/SKILL.md +173 -0
- package/content/finance/.mcp.json +32 -0
- package/content/finance/CONNECTORS.md +20 -0
- package/content/finance/LICENSE +202 -0
- package/content/finance/README.md +92 -0
- package/content/finance/skills/finance-audit-support/SKILL.md +374 -0
- package/content/finance/skills/finance-close-management/SKILL.md +221 -0
- package/content/finance/skills/finance-financial-statements/SKILL.md +335 -0
- package/content/finance/skills/finance-journal-entry/SKILL.md +131 -0
- package/content/finance/skills/finance-journal-entry-prep/SKILL.md +186 -0
- package/content/finance/skills/finance-reconciliation/SKILL.md +175 -0
- package/content/finance/skills/finance-sox-testing/SKILL.md +218 -0
- package/content/finance/skills/finance-variance-analysis/SKILL.md +266 -0
- package/content/human-resources/.mcp.json +28 -0
- package/content/human-resources/CONNECTORS.md +19 -0
- package/content/human-resources/README.md +138 -0
- package/content/human-resources/skills/human-resources-comp-analysis/SKILL.md +92 -0
- package/content/human-resources/skills/human-resources-draft-offer/SKILL.md +82 -0
- package/content/human-resources/skills/human-resources-interview-prep/SKILL.md +37 -0
- package/content/human-resources/skills/human-resources-onboarding/SKILL.md +104 -0
- package/content/human-resources/skills/human-resources-org-planning/SKILL.md +28 -0
- package/content/human-resources/skills/human-resources-people-report/SKILL.md +99 -0
- package/content/human-resources/skills/human-resources-performance-review/SKILL.md +149 -0
- package/content/human-resources/skills/human-resources-policy-lookup/SKILL.md +94 -0
- package/content/human-resources/skills/human-resources-recruiting-pipeline/SKILL.md +31 -0
- package/content/legal/.mcp.json +36 -0
- package/content/legal/CONNECTORS.md +21 -0
- package/content/legal/LICENSE +202 -0
- package/content/legal/README.md +234 -0
- package/content/legal/skills/legal-brief/SKILL.md +208 -0
- package/content/legal/skills/legal-compliance-check/SKILL.md +274 -0
- package/content/legal/skills/legal-legal-response/SKILL.md +457 -0
- package/content/legal/skills/legal-legal-risk-assessment/SKILL.md +265 -0
- package/content/legal/skills/legal-meeting-briefing/SKILL.md +220 -0
- package/content/legal/skills/legal-review-contract/SKILL.md +358 -0
- package/content/legal/skills/legal-signature-request/SKILL.md +104 -0
- package/content/legal/skills/legal-triage-nda/SKILL.md +262 -0
- package/content/legal/skills/legal-vendor-check/SKILL.md +159 -0
- package/content/manifest.json +86 -0
- package/content/marketing/.mcp.json +60 -0
- package/content/marketing/CONNECTORS.md +20 -0
- package/content/marketing/LICENSE +202 -0
- package/content/marketing/README.md +90 -0
- package/content/marketing/skills/marketing-brand-review/SKILL.md +276 -0
- package/content/marketing/skills/marketing-campaign-plan/SKILL.md +308 -0
- package/content/marketing/skills/marketing-competitive-brief/SKILL.md +331 -0
- package/content/marketing/skills/marketing-content-creation/SKILL.md +157 -0
- package/content/marketing/skills/marketing-draft-content/SKILL.md +117 -0
- package/content/marketing/skills/marketing-email-sequence/SKILL.md +220 -0
- package/content/marketing/skills/marketing-performance-report/SKILL.md +392 -0
- package/content/marketing/skills/marketing-seo-audit/SKILL.md +190 -0
- package/content/operations/.mcp.json +32 -0
- package/content/operations/CONNECTORS.md +20 -0
- package/content/operations/README.md +135 -0
- package/content/operations/skills/operations-capacity-plan/SKILL.md +113 -0
- package/content/operations/skills/operations-change-request/SKILL.md +121 -0
- package/content/operations/skills/operations-compliance-tracking/SKILL.md +44 -0
- package/content/operations/skills/operations-process-doc/SKILL.md +82 -0
- package/content/operations/skills/operations-process-optimization/SKILL.md +39 -0
- package/content/operations/skills/operations-risk-assessment/SKILL.md +40 -0
- package/content/operations/skills/operations-runbook/SKILL.md +87 -0
- package/content/operations/skills/operations-status-report/SKILL.md +77 -0
- package/content/operations/skills/operations-vendor-review/SKILL.md +104 -0
- package/content/pdf-viewer/.mcp.json +8 -0
- package/content/pdf-viewer/CONNECTORS.md +15 -0
- package/content/pdf-viewer/LICENSE +202 -0
- package/content/pdf-viewer/README.md +57 -0
- package/content/pdf-viewer/commands/annotate.md +51 -0
- package/content/pdf-viewer/commands/fill-form.md +73 -0
- package/content/pdf-viewer/commands/open.md +34 -0
- package/content/pdf-viewer/commands/sign.md +54 -0
- package/content/pdf-viewer/skills/pdf-viewer-view-pdf/SKILL.md +147 -0
- package/content/product-management/.mcp.json +72 -0
- package/content/product-management/CONNECTORS.md +22 -0
- package/content/product-management/LICENSE +202 -0
- package/content/product-management/README.md +118 -0
- package/content/product-management/commands/brainstorm.md +120 -0
- package/content/product-management/skills/product-management-competitive-brief/SKILL.md +302 -0
- package/content/product-management/skills/product-management-metrics-review/SKILL.md +388 -0
- package/content/product-management/skills/product-management-product-brainstorming/SKILL.md +273 -0
- package/content/product-management/skills/product-management-roadmap-update/SKILL.md +266 -0
- package/content/product-management/skills/product-management-sprint-planning/SKILL.md +94 -0
- package/content/product-management/skills/product-management-stakeholder-update/SKILL.md +352 -0
- package/content/product-management/skills/product-management-synthesize-research/SKILL.md +312 -0
- package/content/product-management/skills/product-management-write-spec/SKILL.md +250 -0
- package/content/productivity/.mcp.json +44 -0
- package/content/productivity/CONNECTORS.md +18 -0
- package/content/productivity/LICENSE +202 -0
- package/content/productivity/README.md +97 -0
- package/content/productivity/skills/dashboard.html +3111 -0
- package/content/productivity/skills/productivity-memory-management/SKILL.md +323 -0
- package/content/productivity/skills/productivity-start/SKILL.md +158 -0
- package/content/productivity/skills/productivity-task-management/SKILL.md +91 -0
- package/content/productivity/skills/productivity-update/SKILL.md +168 -0
- package/content/sales/.mcp.json +100 -0
- package/content/sales/CONNECTORS.md +36 -0
- package/content/sales/LICENSE +202 -0
- package/content/sales/README.md +148 -0
- package/content/sales/skills/sales-account-context/SKILL.md +94 -0
- package/content/sales/skills/sales-account-plan/SKILL.md +95 -0
- package/content/sales/skills/sales-account-research/SKILL.md +99 -0
- package/content/sales/skills/sales-account-tiering/SKILL.md +101 -0
- package/content/sales/skills/sales-call-prep/SKILL.md +111 -0
- package/content/sales/skills/sales-call-summary/SKILL.md +111 -0
- package/content/sales/skills/sales-close-plan/SKILL.md +106 -0
- package/content/sales/skills/sales-competitive-intelligence/SKILL.md +102 -0
- package/content/sales/skills/sales-create-an-asset/SKILL.md +105 -0
- package/content/sales/skills/sales-crm-hygiene-check/SKILL.md +103 -0
- package/content/sales/skills/sales-customer-health/SKILL.md +108 -0
- package/content/sales/skills/sales-customer-voice/SKILL.md +94 -0
- package/content/sales/skills/sales-daily-briefing/SKILL.md +61 -0
- package/content/sales/skills/sales-deal-advance-gap/SKILL.md +102 -0
- package/content/sales/skills/sales-deal-review/SKILL.md +105 -0
- package/content/sales/skills/sales-deal-signals/SKILL.md +96 -0
- package/content/sales/skills/sales-deal-slip-scenario/SKILL.md +101 -0
- package/content/sales/skills/sales-draft-outreach/SKILL.md +116 -0
- package/content/sales/skills/sales-end-of-day/SKILL.md +114 -0
- package/content/sales/skills/sales-expansion-whitespace/SKILL.md +97 -0
- package/content/sales/skills/sales-forecast/SKILL.md +100 -0
- package/content/sales/skills/sales-handle-objection/SKILL.md +93 -0
- package/content/sales/skills/sales-inbox-sweep/SKILL.md +114 -0
- package/content/sales/skills/sales-lead-triage/SKILL.md +105 -0
- package/content/sales/skills/sales-log-activity/SKILL.md +111 -0
- package/content/sales/skills/sales-pipeline-review/SKILL.md +97 -0
- package/content/sales/skills/sales-renewal-radar/SKILL.md +95 -0
- package/content/sales/skills/sales-rep-context/SKILL.md +90 -0
- package/content/sales/skills/sales-route-lead/SKILL.md +111 -0
- package/content/sales/skills/sales-schedule-meeting/SKILL.md +99 -0
- package/content/sales/skills/sales-setup/SKILL.md +195 -0
- package/content/sales/skills/sales-stakeholder-map/SKILL.md +107 -0
- package/content/sales/skills/sales-team-pipeline/SKILL.md +105 -0
- package/content/sales/skills/sales-update-opportunity/SKILL.md +111 -0
- package/content/sales/skills/sales-weekly-wrap/SKILL.md +90 -0
- package/content/sales/skills/sales-win-loss-review/SKILL.md +88 -0
- package/content/small-business/.mcp.json +148 -0
- package/content/small-business/README.md +117 -0
- package/content/small-business/skills/small-business-ad-manager/SKILL.md +128 -0
- package/content/small-business/skills/small-business-ad-manager/reference/ad_copy.md +112 -0
- package/content/small-business/skills/small-business-ad-manager/reference/change_playbook.md +127 -0
- package/content/small-business/skills/small-business-ad-manager/reference/data_sources.md +100 -0
- package/content/small-business/skills/small-business-ad-manager/reference/diagnostics.md +89 -0
- package/content/small-business/skills/small-business-ad-manager/reference/gotchas.md +181 -0
- package/content/small-business/skills/small-business-ap-processor/SKILL.md +158 -0
- package/content/small-business/skills/small-business-ap-processor/reference/coding_rules.md +70 -0
- package/content/small-business/skills/small-business-ap-processor/reference/gotchas.md +131 -0
- package/content/small-business/skills/small-business-ap-processor/reference/intake_and_extraction.md +82 -0
- package/content/small-business/skills/small-business-ap-processor/reference/matching_and_exceptions.md +80 -0
- package/content/small-business/skills/small-business-ap-processor/reference/payment_run.md +77 -0
- package/content/small-business/skills/small-business-brand-style/SKILL.md +106 -0
- package/content/small-business/skills/small-business-build-agent/SKILL.md +105 -0
- package/content/small-business/skills/small-business-build-agent/reference/capture.md +133 -0
- package/content/small-business/skills/small-business-build-agent/reference/gotchas.md +204 -0
- package/content/small-business/skills/small-business-build-agent/reference/skill_authoring.md +165 -0
- package/content/small-business/skills/small-business-build-connector/SKILL.md +102 -0
- package/content/small-business/skills/small-business-build-connector/reference/discovery.md +120 -0
- package/content/small-business/skills/small-business-build-connector/reference/gotchas.md +237 -0
- package/content/small-business/skills/small-business-build-connector/reference/paths.md +106 -0
- package/content/small-business/skills/small-business-build-connector/reference/use-zapier.md +128 -0
- package/content/small-business/skills/small-business-business-pulse/SKILL.md +181 -0
- package/content/small-business/skills/small-business-business-pulse/reference/data_sources.md +173 -0
- package/content/small-business/skills/small-business-business-pulse/reference/gotchas.md +103 -0
- package/content/small-business/skills/small-business-business-pulse/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-business-pulse/reference/thresholds.md +71 -0
- package/content/small-business/skills/small-business-business-pulse/reference/v2_sources.md +63 -0
- package/content/small-business/skills/small-business-call-list/SKILL.md +82 -0
- package/content/small-business/skills/small-business-canva-creator/SKILL.md +448 -0
- package/content/small-business/skills/small-business-canva-creator/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-canva-creator/reference/examples/boutique-brief-campaign.md +181 -0
- package/content/small-business/skills/small-business-canva-creator/reference/gotchas.md +380 -0
- package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md +137 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/SKILL.md +251 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/examples/worked-example.md +92 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/gotchas.md +62 -0
- package/content/small-business/skills/small-business-cash-flow-snapshot/reference/v2_sources.md +84 -0
- package/content/small-business/skills/small-business-close-month/SKILL.md +86 -0
- package/content/small-business/skills/small-business-content-strategy/SKILL.md +152 -0
- package/content/small-business/skills/small-business-content-strategy/reference/examples/retail-boutique-example.md +71 -0
- package/content/small-business/skills/small-business-content-strategy/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-content-strategy/reference/v2_sources.md +40 -0
- package/content/small-business/skills/small-business-contract-review/SKILL.md +158 -0
- package/content/small-business/skills/small-business-contract-review/reference/docusign-fetch.md +32 -0
- package/content/small-business/skills/small-business-contract-review/reference/examples/flagged-summary-saas.md +97 -0
- package/content/small-business/skills/small-business-contract-review/reference/gmail-fetch.md +30 -0
- package/content/small-business/skills/small-business-contract-review/reference/gotchas.md +105 -0
- package/content/small-business/skills/small-business-contract-review/reference/m365-fetch.md +60 -0
- package/content/small-business/skills/small-business-crm-autopilot/SKILL.md +162 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/cleanup-checklist.md +82 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/cleanup-deal.md +83 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-call-happy-path.md +68 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/examples/log-email-happy-path.md +50 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/gotchas.md +110 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/hubspot-fields.md +62 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/lightweight_crm.md +125 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/salesforce-fields.md +122 -0
- package/content/small-business/skills/small-business-crm-autopilot/reference/standing_mode.md +144 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/SKILL.md +162 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/drafting.md +129 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/go_no_go.md +125 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/gotchas.md +180 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/opportunity_sources.md +90 -0
- package/content/small-business/skills/small-business-grant-rfp-writer/reference/org_profile.md +81 -0
- package/content/small-business/skills/small-business-grow-pipeline/SKILL.md +92 -0
- package/content/small-business/skills/small-business-growth-pulse/SKILL.md +143 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/data_sources.md +113 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/gotchas.md +175 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/output_template.md +122 -0
- package/content/small-business/skills/small-business-growth-pulse/reference/thresholds.md +110 -0
- package/content/small-business/skills/small-business-hiring-screener/SKILL.md +137 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/candidate_comms.md +132 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/fair_screening.md +103 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/gotchas.md +183 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/onboarding.md +82 -0
- package/content/small-business/skills/small-business-hiring-screener/reference/rubric.md +122 -0
- package/content/small-business/skills/small-business-inbox-manager/SKILL.md +130 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/digest_format.md +110 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/gotchas.md +220 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/handoffs.md +77 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/reply_drafting.md +116 -0
- package/content/small-business/skills/small-business-inbox-manager/reference/triage_rules.md +72 -0
- package/content/small-business/skills/small-business-inventory-planner/SKILL.md +126 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/data_sources.md +94 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/po_drafting.md +92 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/seasonality.md +112 -0
- package/content/small-business/skills/small-business-inventory-planner/reference/velocity_and_reorder.md +154 -0
- package/content/small-business/skills/small-business-invoice-chase/SKILL.md +131 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/firm-reminder.md +28 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/examples/gentle-reminder.md +27 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/gotchas.md +75 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/tone-matching.md +44 -0
- package/content/small-business/skills/small-business-invoice-chase/reference/v2_sources.md +78 -0
- package/content/small-business/skills/small-business-job-post-builder/SKILL.md +204 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/docusign-routing.md +63 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/examples/worked-example.md +110 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/existing-document-merge.md +58 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/gotchas.md +68 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/interview-guide-structure.md +93 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/job-post-structure.md +62 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/offer-letter-template.md +145 -0
- package/content/small-business/skills/small-business-job-post-builder/reference/role-intake.md +73 -0
- package/content/small-business/skills/small-business-lead-finder/SKILL.md +119 -0
- package/content/small-business/skills/small-business-lead-finder/reference/gotchas.md +152 -0
- package/content/small-business/skills/small-business-lead-finder/reference/icp_method.md +97 -0
- package/content/small-business/skills/small-business-lead-finder/reference/output_template.md +124 -0
- package/content/small-business/skills/small-business-lead-finder/reference/scoring.md +92 -0
- package/content/small-business/skills/small-business-lead-finder/reference/sourcing.md +78 -0
- package/content/small-business/skills/small-business-lead-triage/SKILL.md +81 -0
- package/content/small-business/skills/small-business-lead-triage/reference/examples/happy-path-triage.md +68 -0
- package/content/small-business/skills/small-business-lead-triage/reference/gotchas.md +76 -0
- package/content/small-business/skills/small-business-lead-triage/reference/hubspot-scoring.md +169 -0
- package/content/small-business/skills/small-business-marketing-monday/SKILL.md +108 -0
- package/content/small-business/skills/small-business-monday-brief/SKILL.md +97 -0
- package/content/small-business/skills/small-business-month-end-prep/SKILL.md +331 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/close-packet-format.md +127 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/examples/pl-narrative.md +52 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/gotchas.md +113 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/paypal-settlements.md +110 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/quickbooks-reconcile.md +71 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/v2_sources.md +125 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/xero-reconcile.md +175 -0
- package/content/small-business/skills/small-business-month-end-prep/reference/zoho-books-reconcile.md +168 -0
- package/content/small-business/skills/small-business-outreach-composer/SKILL.md +144 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/gotchas.md +213 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/output_template.md +147 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/sequence_patterns.md +99 -0
- package/content/small-business/skills/small-business-outreach-composer/reference/slop_test.md +164 -0
- package/content/small-business/skills/small-business-pay-the-bills/SKILL.md +101 -0
- package/content/small-business/skills/small-business-payroll-prep/SKILL.md +139 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/anomaly_rules.md +99 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/books_sync.md +72 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/gotchas.md +153 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/run_sheet_format.md +90 -0
- package/content/small-business/skills/small-business-payroll-prep/reference/timesheet_intake.md +118 -0
- package/content/small-business/skills/small-business-plan-payroll/SKILL.md +88 -0
- package/content/small-business/skills/small-business-proposal-builder/SKILL.md +168 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/discovery_extraction.md +138 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/gotchas.md +184 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/output_template.md +128 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/pricing_method.md +125 -0
- package/content/small-business/skills/small-business-proposal-builder/reference/proposal_structure.md +120 -0
- package/content/small-business/skills/small-business-reactivate/SKILL.md +109 -0
- package/content/small-business/skills/small-business-report-builder/SKILL.md +142 -0
- package/content/small-business/skills/small-business-report-builder/reference/data_sources.md +168 -0
- package/content/small-business/skills/small-business-report-builder/reference/gotchas.md +155 -0
- package/content/small-business/skills/small-business-report-builder/reference/output_template.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/report_spec.md +109 -0
- package/content/small-business/skills/small-business-report-builder/reference/saved_reports.md +50 -0
- package/content/small-business/skills/small-business-report-pack/SKILL.md +83 -0
- package/content/small-business/skills/small-business-restock/SKILL.md +88 -0
- package/content/small-business/skills/small-business-review-reputation/SKILL.md +130 -0
- package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md +110 -0
- package/content/small-business/skills/small-business-review-reputation/reference/examples/example-report.md +150 -0
- package/content/small-business/skills/small-business-review-reputation/reference/gotchas.md +164 -0
- package/content/small-business/skills/small-business-review-reputation/reference/response-patterns.md +123 -0
- package/content/small-business/skills/small-business-review-reputation/reference/sources.md +116 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/SKILL.md +143 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/ai_visibility.md +173 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/audit_checklist.md +134 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/catalog_refresh.md +126 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/content_rewrite.md +113 -0
- package/content/small-business/skills/small-business-seo-ai-visibility/reference/gotchas.md +211 -0
- package/content/small-business/skills/small-business-smb-onboard/SKILL.md +82 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/examples/happy-path.md +190 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/gotchas.md +111 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/onboard-checklist.md +99 -0
- package/content/small-business/skills/small-business-smb-onboard/reference/website-research.md +82 -0
- package/content/small-business/skills/small-business-smb-router/SKILL.md +216 -0
- package/content/small-business/skills/small-business-smb-router/reference/connector-map.md +96 -0
- package/content/small-business/skills/small-business-social-content-engine/SKILL.md +162 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/calendar.md +116 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/canva-api.md +208 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/examples/okonkwo-campaign.md +190 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/gotchas.md +447 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/publishing.md +166 -0
- package/content/small-business/skills/small-business-social-content-engine/reference/shopify-assets.md +77 -0
- package/content/small-business/skills/small-business-speed-to-lead/SKILL.md +172 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/approval.md +61 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/gotchas.md +167 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/qualification.md +153 -0
- package/content/small-business/skills/small-business-speed-to-lead/reference/response_patterns.md +184 -0
- package/content/small-business/skills/small-business-tax-prep/SKILL.md +85 -0
- package/content/small-business/skills/small-business-tax-season-organizer/SKILL.md +210 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/calculation-assumptions.md +177 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/connector-queries.md +267 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/quarterly-estimate.md +92 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/examples/year-end-1099.md +102 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/gotchas.md +104 -0
- package/content/small-business/skills/small-business-tax-season-organizer/reference/output-formats.md +68 -0
- package/content/small-business/skills/small-business-ticket-deflector/SKILL.md +164 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/deny-refund-request.md +98 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/examples/respond-refund-request.md +77 -0
- package/content/small-business/skills/small-business-ticket-deflector/reference/gotchas.md +57 -0
- package/index.ts +84 -0
- package/package.json +30 -3
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Worked Example: Retail Boutique Brief → Campaign
|
|
2
|
+
|
|
3
|
+
**Business:** Bloom & Thread — women's clothing boutique, Charleston SC
|
|
4
|
+
**Canva tier:** Teams (no Enterprise)
|
|
5
|
+
**HubSpot tier:** Marketing Hub Professional
|
|
6
|
+
**Brief source:** content-strategy skill output (approved by owner)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Input: Approved brief (summary)
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
Push hard: Linen summer dresses (top seller, trending +22% MoM)
|
|
14
|
+
Hold steady: Accessories
|
|
15
|
+
Seasonal opportunity: Back-to-school transition (Aug 15 pivot)
|
|
16
|
+
Offer: Buy 2 dresses, get 1 accessory free (runs June 1–July 31)
|
|
17
|
+
Channels: Instagram feed, Instagram story, Facebook feed
|
|
18
|
+
Cadence: 3× per week, Mon/Wed/Fri, 10 AM ET
|
|
19
|
+
Voice: Warm, conversational, light humor. No corporate copy.
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Stage 1: Posting calendar (presented for approval)
|
|
25
|
+
|
|
26
|
+
| Date | Channel | Theme | Asset type | Caption angle |
|
|
27
|
+
|------|---------|-------|------------|---------------|
|
|
28
|
+
| Jun 2 | Instagram feed | Linen dresses launch | Square post | Product intro — "finally, a dress you can wear to both places" |
|
|
29
|
+
| Jun 4 | Facebook feed | Linen dresses | Landscape post | Social proof — "our most-reached-for item this spring" |
|
|
30
|
+
| Jun 6 | Instagram story | Buy 2 get 1 offer | Story (16:9) | Offer urgency — swipe up |
|
|
31
|
+
| Jun 9 | Instagram feed | Linen styling tip | Square post | Education — "3 ways to style the linen midi" |
|
|
32
|
+
| Jun 11 | Facebook feed | Behind the scenes | Landscape post | Brand story — how they're made |
|
|
33
|
+
| Jun 13 | Instagram story | Weekend outfit inspo | Story (16:9) | Lifestyle — "your Saturday, sorted" |
|
|
34
|
+
| … | … | … | … | … |
|
|
35
|
+
|
|
36
|
+
*Owner approved — "move Jun 11 to Jun 12, I'm posting about the sale that day. Otherwise great."*
|
|
37
|
+
*(Calendar updated; proceeding to Stage 2.)*
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Stage 2: Canva asset generation (Pro/Teams path)
|
|
42
|
+
|
|
43
|
+
**Template selection exchange:**
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
Claude: I found 3 square-post templates in your Canva library:
|
|
47
|
+
1. Boutique Square - Cream (last edited Apr 2026)
|
|
48
|
+
2. Summer Promo - Sand (last edited Mar 2026)
|
|
49
|
+
3. Product Feature Bold (last edited Feb 2026)
|
|
50
|
+
Which should I use for the feed posts?
|
|
51
|
+
|
|
52
|
+
Owner: The cream one, #1.
|
|
53
|
+
|
|
54
|
+
Claude: Got it. I'll use "Boutique Square - Cream" for all feed posts.
|
|
55
|
+
Creating design shells now — I'll give you the links to fill in
|
|
56
|
+
the product photos and text in Canva, then come back so I can export.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
*[Designs created; owner fills in Canva; returns design IDs]*
|
|
60
|
+
|
|
61
|
+
**Export output:**
|
|
62
|
+
```
|
|
63
|
+
Exporting previews...
|
|
64
|
+
✓ Jun 2 feed post → https://canva.com/export/abc123.png
|
|
65
|
+
✓ Jun 4 Facebook → https://canva.com/export/def456.png
|
|
66
|
+
✓ Jun 6 story → https://canva.com/export/ghi789.png
|
|
67
|
+
[…]
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
*Owner: "These look great. Go ahead."*
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Stage 3: Caption drafts
|
|
75
|
+
|
|
76
|
+
**Jun 2 — Instagram feed (linen dresses launch)**
|
|
77
|
+
```
|
|
78
|
+
Finally, a dress you can wear to the farmer's market *and* to dinner. 🌿
|
|
79
|
+
|
|
80
|
+
Our linen midi just landed and it's already our most-requested piece this
|
|
81
|
+
summer. Breathable, effortless, and yes — it has pockets.
|
|
82
|
+
|
|
83
|
+
Grab yours before the sizes go → link in bio.
|
|
84
|
+
|
|
85
|
+
#LinenDress #CharlestonStyle #SummerFashion #BloomAndThread
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Jun 4 — Facebook feed (social proof)**
|
|
89
|
+
```
|
|
90
|
+
"I've worn it four times this week and I'm not even sorry."
|
|
91
|
+
|
|
92
|
+
That's a real review from a real customer about our linen midi. Between
|
|
93
|
+
you and us, we're not surprised. Shop the collection at the link below.
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**Jun 6 — Instagram story (offer)**
|
|
97
|
+
```
|
|
98
|
+
👗 Buy 2 dresses → get 1 accessory FREE
|
|
99
|
+
|
|
100
|
+
Offer runs June 1–July 31. Don't sleep on it.
|
|
101
|
+
|
|
102
|
+
Swipe up to shop →
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
*Owner approved with one change: "Jun 4 caption — add the price at the end. 'USD 88, link below.'"*
|
|
106
|
+
*Caption updated.*
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Stage 4: HubSpot staging
|
|
111
|
+
|
|
112
|
+
**Campaign created:**
|
|
113
|
+
```
|
|
114
|
+
Campaign: "Bloom & Thread — Summer Linen 2026"
|
|
115
|
+
Start: Jun 2, 2026 | End: Jul 31, 2026
|
|
116
|
+
Campaign ID: 8a72c1f4...
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Scheduled queue (first 3):**
|
|
120
|
+
|
|
121
|
+
| Scheduled | Channel | Caption preview | Status |
|
|
122
|
+
|-----------|---------|-----------------|--------|
|
|
123
|
+
| Jun 2, 10:00 AM ET | Instagram | "Finally, a dress you can wear…" | SCHEDULED |
|
|
124
|
+
| Jun 4, 10:00 AM ET | Facebook | '"I've worn it four times…"' | SCHEDULED |
|
|
125
|
+
| Jun 6, 10:00 AM ET | Instagram Story | "Buy 2 dresses → get 1 accessory FREE…" | SCHEDULED |
|
|
126
|
+
|
|
127
|
+
**Final message to owner:**
|
|
128
|
+
```
|
|
129
|
+
Your campaign is staged in HubSpot:
|
|
130
|
+
https://app.hubspot.com/content/12345/social/campaigns/8a72c1f4
|
|
131
|
+
|
|
132
|
+
Posts will publish automatically on schedule. You can cancel or edit
|
|
133
|
+
any post in HubSpot before it goes out. Anything to change before we're done?
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Email content example (text-only — no Canva)
|
|
139
|
+
|
|
140
|
+
Email rows skip Canva entirely. Claude writes the email subject, preheader,
|
|
141
|
+
and body as plain prose in Stage 3, and the owner copies the content into
|
|
142
|
+
their email tool when they're ready to send.
|
|
143
|
+
|
|
144
|
+
**Calendar row:**
|
|
145
|
+
|
|
146
|
+
| Date | Channel | Theme | Asset type | Angle |
|
|
147
|
+
|------|---------|-------|------------|-------|
|
|
148
|
+
| Jun 5 | Email | Summer linen launch | Email (text) | Hero customer benefit + offer |
|
|
149
|
+
|
|
150
|
+
**Stage 3 output (inline, no Canva involved):**
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Subject: Linen that actually breathes
|
|
154
|
+
Preheader: New summer styles in — plus a small gift if you grab two.
|
|
155
|
+
|
|
156
|
+
The first batch of linen midis just hit the floor. They're the kind of
|
|
157
|
+
dress you can wear to brunch, to a wedding, or to the school pickup line
|
|
158
|
+
without feeling like you've made a wardrobe decision.
|
|
159
|
+
|
|
160
|
+
A few things worth knowing:
|
|
161
|
+
• Sizes XS–XL, four colorways
|
|
162
|
+
• Pockets (real ones)
|
|
163
|
+
• Buy 2 dresses through July 31 and we'll throw in a free accessory
|
|
164
|
+
|
|
165
|
+
Stop by 412 King Street this weekend, or shop online below.
|
|
166
|
+
|
|
167
|
+
Shop the linen collection →
|
|
168
|
+
|
|
169
|
+
— Maya
|
|
170
|
+
Bloom & Thread
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
**Stage 4 handoff:**
|
|
174
|
+
|
|
175
|
+
```
|
|
176
|
+
Your social posts are scheduled in HubSpot: [link]
|
|
177
|
+
|
|
178
|
+
Email content for June 5 is drafted above — copy it into your email tool
|
|
179
|
+
when you're ready to send. We don't stage emails directly; that lets you
|
|
180
|
+
preview the formatting in your sending platform first.
|
|
181
|
+
```
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
# Gotchas
|
|
2
|
+
|
|
3
|
+
Common failure modes for the canva-creator skill.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Gotcha: Generating ANY Canva design for an email row
|
|
8
|
+
|
|
9
|
+
**Why it matters:** Canva is out of scope for the email path entirely.
|
|
10
|
+
Canva email-template autofill produces placeholder graphics (stock
|
|
11
|
+
landscapes, blank rectangles) in service-grid tiles, and variation
|
|
12
|
+
thumbnails fail to render in chat. Emails are text-only
|
|
13
|
+
from this skill, period. Generating a Canva email design — even one —
|
|
14
|
+
breaks that rule.
|
|
15
|
+
|
|
16
|
+
### ✗ Bad
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Calendar has 6 social rows + 2 email rows.
|
|
20
|
+
→ Stage 2 generates 6 social designs + 2 email designs.
|
|
21
|
+
→ Email designs ship with placeholder service tiles.
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Or any variation: "I'll generate the email template just to give you a
|
|
25
|
+
visual reference," "I found an email template that might work, want to
|
|
26
|
+
preview it?", "Here's a Canva design for the Jun 5 email…" — all
|
|
27
|
+
forbidden.
|
|
28
|
+
|
|
29
|
+
### ✓ Good
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Stage 1: Calendar built with Path column.
|
|
33
|
+
- 6 rows tagged Canva (social)
|
|
34
|
+
- 2 rows tagged Text-only (no Canva)
|
|
35
|
+
Stage 2: Generates exactly 6 Canva designs. Email rows are not passed
|
|
36
|
+
to any Canva endpoint.
|
|
37
|
+
Stage 3: Drafts 6 social captions + 2 full emails (subject + preheader +
|
|
38
|
+
body) as plain text.
|
|
39
|
+
Stage 4: Stages 6 social posts in HubSpot. Surfaces 2 emails inline for
|
|
40
|
+
owner to copy into their email tool.
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
If the owner explicitly asks for a Canva email design ("can you make me
|
|
44
|
+
a Canva version of the Jun 5 email?"), redirect: "This skill keeps emails
|
|
45
|
+
as text-only because the Canva email path produces placeholder graphics.
|
|
46
|
+
If you want a Canva-designed email, build it directly in Canva and I can
|
|
47
|
+
help you write the copy here."
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Gotcha: Generating without a budget plan
|
|
52
|
+
|
|
53
|
+
**Why it matters:** Canva caps API usage at 100 requests/minute per token,
|
|
54
|
+
and each design costs ~5 calls (autofill + export + polling). A 10-row
|
|
55
|
+
campaign with 4 candidates per row generates 40 designs and ~200 API
|
|
56
|
+
calls — and the math gets worse with parallelism. Without a pre-flight
|
|
57
|
+
budget, the owner hits quota mid-campaign with no clear recovery path
|
|
58
|
+
and four already-generated posts sitting unused.
|
|
59
|
+
|
|
60
|
+
### ✗ Bad
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Calendar approved → immediately fire 4 candidates × 8 rows in parallel
|
|
64
|
+
→ ~160 API calls in 90 seconds → RATE_LIMIT_EXCEEDED on post 5 → loop
|
|
65
|
+
on retry → owner blocked.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### ✓ Good
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
Pre-flight: "8 Canva rows × 3 candidates = 24 designs, ~120 API calls.
|
|
72
|
+
Proceed at default 3 candidates per row?"
|
|
73
|
+
|
|
74
|
+
Stage 3: row 1's 3 candidates fire in parallel → 30s pause → row 2 →
|
|
75
|
+
30s pause → row 3 → … finishes at ~12 designs/minute, well under the
|
|
76
|
+
quota.
|
|
77
|
+
|
|
78
|
+
If quota does hit anyway: stop, surface progress, ask the owner
|
|
79
|
+
whether to drop to single candidates, pause an hour, or move to
|
|
80
|
+
captions with what's done.
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Gotcha: Skipping Checkpoint 1 (calendar approval) before generating assets
|
|
86
|
+
|
|
87
|
+
**Why it matters:** Generating 10+ Canva designs takes API calls, time, and
|
|
88
|
+
user attention. If the calendar has the wrong dates, wrong channels, or the
|
|
89
|
+
owner changes their mind about a theme, all that work is discarded. The
|
|
90
|
+
calendar checkpoint is the cheapest place to catch misalignment.
|
|
91
|
+
|
|
92
|
+
### ✗ Bad
|
|
93
|
+
|
|
94
|
+
Receive the brief → immediately start calling `POST /autofills` for all 12
|
|
95
|
+
posts → present designs before the owner has agreed on the schedule.
|
|
96
|
+
|
|
97
|
+
Owner: "Oh wait, I didn't want any posts the week of the 15th, I'm traveling."
|
|
98
|
+
|
|
99
|
+
### ✓ Good
|
|
100
|
+
|
|
101
|
+
Present the calendar table first. Wait for explicit "looks good" before opening
|
|
102
|
+
a single Canva API call.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Gotcha: Template has more image slots than the brief provides photos for
|
|
107
|
+
|
|
108
|
+
**Why it matters:** Multi-image social templates (Instagram carousels,
|
|
109
|
+
product grids) can have 3+ image slots. When the brief gives you 1 photo
|
|
110
|
+
and the template demands 3, the unfilled slots silently render Canva's
|
|
111
|
+
stock landscape graphic — generic clouds and green hills where product
|
|
112
|
+
photos should be. The design looks "complete" until the owner opens it.
|
|
113
|
+
|
|
114
|
+
(Note: email rows skip Canva entirely in this skill — see SKILL.md Stage 3.
|
|
115
|
+
This gotcha applies only to social templates with multiple image slots.)
|
|
116
|
+
|
|
117
|
+
### ✗ Bad
|
|
118
|
+
|
|
119
|
+
Build manifest with one row per design ("Carousel — needs Hero_Image").
|
|
120
|
+
Upload the one photo. Generate. Carousel ships with slide 1 populated
|
|
121
|
+
and slides 2-3 both showing identical generic landscapes.
|
|
122
|
+
|
|
123
|
+
### ✓ Good
|
|
124
|
+
|
|
125
|
+
Build manifest slot-by-slot. Surface the gap explicitly:
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
The "3-product carousel" template has 3 image slots. The brief gave me
|
|
129
|
+
1 photo. How should I fill the other 2?
|
|
130
|
+
|
|
131
|
+
1. Reuse the same photo across all 3 slots
|
|
132
|
+
2. I'll send you 2 more photos
|
|
133
|
+
3. Pick a single-image template
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Wait for the owner's choice before generating. Don't let placeholder
|
|
137
|
+
graphics ship.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Gotcha: Trusting `status: success` without exporting and visually verifying
|
|
142
|
+
|
|
143
|
+
**Why it matters:** A successful autofill job means Canva accepted the
|
|
144
|
+
request and produced a design — not that the design contains the right
|
|
145
|
+
images. If an `asset_id` was empty, stale, or wrong-typed, the job still
|
|
146
|
+
returns `status: success` and the design renders with default placeholder
|
|
147
|
+
graphics. The only way to know is to look at the rendered output.
|
|
148
|
+
|
|
149
|
+
### ✗ Bad
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
Job status: success ✓
|
|
153
|
+
result.design.id: present ✓
|
|
154
|
+
→ Present to owner
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Result: owner opens the carousel and sees stock landscape graphics in 3 of
|
|
158
|
+
4 designs.
|
|
159
|
+
|
|
160
|
+
### ✓ Good
|
|
161
|
+
|
|
162
|
+
After the job succeeds, export each design to a permanent PNG via
|
|
163
|
+
`POST /exports` (or `export-design` MCP). Look at each PNG and confirm it
|
|
164
|
+
contains real assets — not Canva's default landscape, not gray rectangles,
|
|
165
|
+
not lorem-ipsum text. Only present to the owner after visual verification
|
|
166
|
+
passes.
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Gotcha: One design in a batch fails to render
|
|
171
|
+
|
|
172
|
+
**Why it matters:** When 1 of 4 designs in a batch fails (job error, expired
|
|
173
|
+
preview URL, placeholder rendered) and you present the partial carousel
|
|
174
|
+
anyway, the owner sees three real designs and one "Show Image" gray
|
|
175
|
+
rectangle. They lose trust in the rest of the carousel even though it's
|
|
176
|
+
fine.
|
|
177
|
+
|
|
178
|
+
### ✗ Bad
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
Week 1 designs are ready:
|
|
182
|
+
[Option A — real preview]
|
|
183
|
+
[Option B — real preview]
|
|
184
|
+
[Option C — real preview]
|
|
185
|
+
[Option D — Show Image placeholder]
|
|
186
|
+
Which one should I use?
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### ✓ Good
|
|
190
|
+
|
|
191
|
+
When you detect the broken design at Step 6 verification, regenerate just
|
|
192
|
+
that one design with the correct asset_id. Re-export, re-verify. Only
|
|
193
|
+
present once all four designs in the batch have permanent, verified
|
|
194
|
+
previews. If the second attempt also fails, ask the owner whether to skip,
|
|
195
|
+
swap template, or try a different photo.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Gotcha: Generating assets without confirming all autofill fields have values
|
|
200
|
+
|
|
201
|
+
**Why it matters:** Canva autofill silently renders empty placeholders when a
|
|
202
|
+
field value is missing or the referenced `asset_id` doesn't exist. The result
|
|
203
|
+
is a professional-looking template with blank white rectangles where the
|
|
204
|
+
product photo and headline should be.
|
|
205
|
+
|
|
206
|
+
### ✗ Bad
|
|
207
|
+
|
|
208
|
+
Build calendar → immediately fire all `POST /autofills` in parallel → half
|
|
209
|
+
the designs come back with empty image placeholders because product photos
|
|
210
|
+
weren't uploaded first.
|
|
211
|
+
|
|
212
|
+
### ✓ Good
|
|
213
|
+
|
|
214
|
+
Build calendar → inventory every autofill field slot-by-slot → upload missing
|
|
215
|
+
product images → confirm all field values with owner → then generate designs
|
|
216
|
+
in parallel, with every field pre-populated.
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Gotcha: Passing invalid values to image autofill fields
|
|
221
|
+
|
|
222
|
+
**Why it matters:** When an autofill image field receives an empty string, a
|
|
223
|
+
file path, a URL, or a stale/invalid `asset_id`, Canva does not error — it
|
|
224
|
+
silently renders the template's default placeholder graphic (e.g., a generic
|
|
225
|
+
landscape with clouds and hills). The design looks "finished" but the hero
|
|
226
|
+
image is stock art, not the owner's product photo.
|
|
227
|
+
|
|
228
|
+
### ✗ Bad
|
|
229
|
+
|
|
230
|
+
Upload product photo → don't wait for the upload job to complete → pass the
|
|
231
|
+
`job_id` (not the `asset.id`) into the autofill data → design renders with
|
|
232
|
+
a placeholder landscape instead of the product photo.
|
|
233
|
+
|
|
234
|
+
### ✓ Good
|
|
235
|
+
|
|
236
|
+
Upload product photo via `POST /v1/asset-uploads` → poll
|
|
237
|
+
`GET /v1/asset-uploads/{job_id}` until `status == "success"` → extract
|
|
238
|
+
`asset.id` from the response → pass that exact ID into the autofill image
|
|
239
|
+
field. Verify every image field has a confirmed `asset.id` before calling
|
|
240
|
+
`POST /autofills`.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Gotcha: Embedding Canva CDN thumbnail URLs in markdown
|
|
245
|
+
|
|
246
|
+
**Why it matters:** Canva's autofill response returns short-lived,
|
|
247
|
+
authenticated CDN URLs from `design.canva.ai`. These expire within minutes.
|
|
248
|
+
If Claude embeds them as markdown images (``), they
|
|
249
|
+
render as broken "Show Image" placeholders by the time the message is shown.
|
|
250
|
+
|
|
251
|
+
### ✗ Bad
|
|
252
|
+
|
|
253
|
+
Generate 8 designs → manually embed each CDN thumbnail URL in the response
|
|
254
|
+
as `` → all images show as broken
|
|
255
|
+
gray placeholders because the URLs expired before render.
|
|
256
|
+
|
|
257
|
+
### ✓ Good
|
|
258
|
+
|
|
259
|
+
Either let the native Cowork carousel render the tool result automatically,
|
|
260
|
+
or export each design via `POST /exports` and embed the **permanent** export
|
|
261
|
+
URL. As a final fallback, link to the design's permanent edit URL
|
|
262
|
+
(`https://www.canva.com/d/{design_id}`). Never re-embed `design.canva.ai`
|
|
263
|
+
URLs.
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Gotcha: Listing designs one-by-one as individual image blocks
|
|
268
|
+
|
|
269
|
+
**Why it matters:** When Claude lists each design as a separate block
|
|
270
|
+
("Hero 1 / [image] / Hero 2 / [image]"), the images render as broken
|
|
271
|
+
gray "Show Image" placeholders. Presenting all designs together in a
|
|
272
|
+
single grouped batch triggers Cowork's side-by-side carousel, which
|
|
273
|
+
renders correctly.
|
|
274
|
+
|
|
275
|
+
### ✗ Bad
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
Hero 1 — Multi-property portfolio
|
|
279
|
+
[Show Image]
|
|
280
|
+
View in Canva: https://canva.com/d/xxx
|
|
281
|
+
|
|
282
|
+
Hero 2 — Coastal market case study
|
|
283
|
+
[Show Image]
|
|
284
|
+
View in Canva: https://canva.com/d/yyy
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### ✓ Good
|
|
288
|
+
|
|
289
|
+
Present all designs in one grouped response so they render as a
|
|
290
|
+
side-by-side carousel. Below the carousel, add a single prompt:
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
Here are 4 hero designs for Week 1. Scroll through the carousel
|
|
294
|
+
above and let me know which one to keep.
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
## Gotcha: Generating designs sequentially instead of in parallel
|
|
300
|
+
|
|
301
|
+
**Why it matters:** Generating designs one at a time means the owner waits
|
|
302
|
+
through N round trips instead of one. Fire all generation requests within a
|
|
303
|
+
batch at once and present selection after all jobs complete.
|
|
304
|
+
|
|
305
|
+
### ✗ Bad
|
|
306
|
+
|
|
307
|
+
Generate design 1 → wait → show it → generate design 2 → wait → show it →
|
|
308
|
+
… × 8 designs. Owner watches a slow drip for 10 minutes.
|
|
309
|
+
|
|
310
|
+
### ✓ Good
|
|
311
|
+
|
|
312
|
+
Fire all designs in the current batch at once → poll all jobs concurrently →
|
|
313
|
+
once all complete, export each → verify visually → then present.
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## Gotcha: Auto-selecting a brand template for Pro/Teams users
|
|
318
|
+
|
|
319
|
+
**Why it matters:** Pro/Teams users have no brand-template API access. If
|
|
320
|
+
Claude guesses a template by name and generates with the wrong one, the owner
|
|
321
|
+
gets designs in the wrong colors/fonts and has to redo the work in Canva
|
|
322
|
+
manually.
|
|
323
|
+
|
|
324
|
+
### ✗ Bad
|
|
325
|
+
|
|
326
|
+
```
|
|
327
|
+
Found template "Square Post - Blue". Using this for all feed posts.
|
|
328
|
+
```
|
|
329
|
+
…followed by 8 designs in blue when the brand is green.
|
|
330
|
+
|
|
331
|
+
### ✓ Good
|
|
332
|
+
|
|
333
|
+
```
|
|
334
|
+
I found 3 templates in your Canva library that could work for feed posts:
|
|
335
|
+
1. Square Post - Blue (last edited March 2026)
|
|
336
|
+
2. Summer Promo - Green (last edited April 2026)
|
|
337
|
+
3. Product Feature Card (last edited Jan 2026)
|
|
338
|
+
|
|
339
|
+
Which one should I use?
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Gotcha: Caption voice drift across a long calendar
|
|
345
|
+
|
|
346
|
+
**Why it matters:** When drafting 12–20 captions in one pass, the tone tends
|
|
347
|
+
to drift — early captions follow the brief's voice markers, later ones slip
|
|
348
|
+
into generic marketing copy. Owners notice immediately.
|
|
349
|
+
|
|
350
|
+
### ✗ Bad
|
|
351
|
+
|
|
352
|
+
Post 1: "Our handmade candles are the perfect summer gift 🌿" (matches brief: "warm, conversational")
|
|
353
|
+
Post 10: "Elevate your ambiance with our artisanal fragrance collection." (corporate drift)
|
|
354
|
+
|
|
355
|
+
### ✓ Good
|
|
356
|
+
|
|
357
|
+
Before drafting, anchor on 2–3 voice markers from the brief (e.g., "casual,
|
|
358
|
+
friendly, uses light humor"). Re-read the first draft caption before writing
|
|
359
|
+
each new one. If the owner flags a voice mismatch on any caption, re-read that
|
|
360
|
+
caption and flag it as the recalibration point for the remaining drafts.
|
|
361
|
+
|
|
362
|
+
---
|
|
363
|
+
|
|
364
|
+
## Gotcha: Staging HubSpot posts without verifying `scheduledAt` is in the future
|
|
365
|
+
|
|
366
|
+
**Why it matters:** HubSpot rejects posts with `scheduledAt` in the past with
|
|
367
|
+
a validation error. If the calendar was built on an earlier date and the
|
|
368
|
+
owner is only now staging, some dates may have passed.
|
|
369
|
+
|
|
370
|
+
### ✗ Bad
|
|
371
|
+
|
|
372
|
+
Build calendar on April 1st for June posts → owner approves May 15th → try to
|
|
373
|
+
stage without checking → post for "April 30th 10:00 AM" returns 400.
|
|
374
|
+
|
|
375
|
+
### ✓ Good
|
|
376
|
+
|
|
377
|
+
Before calling `POST /social/posts`, compare each `scheduledAt` against the
|
|
378
|
+
current UTC time. If any post date has passed, surface it: "The post scheduled
|
|
379
|
+
for April 30th has already passed. Should I skip it, or reschedule it to next
|
|
380
|
+
week?"
|
package/content/small-business/skills/small-business-canva-creator/reference/hubspot-staging.md
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# HubSpot Campaign Staging Reference
|
|
2
|
+
|
|
3
|
+
Requires: **HubSpot Marketing Hub Professional** (or higher).
|
|
4
|
+
Base URL: `https://api.hubapi.com`
|
|
5
|
+
Auth: Bearer token (OAuth 2.0 or private app token).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Table of contents
|
|
10
|
+
|
|
11
|
+
1. [Tier check](#tier-check)
|
|
12
|
+
2. [Create a campaign](#create-a-campaign)
|
|
13
|
+
3. [Create a social post](#create-a-social-post)
|
|
14
|
+
4. [Verify the scheduled queue](#verify-the-scheduled-queue)
|
|
15
|
+
5. [CSV fallback (non-Professional users)](#csv-fallback-non-professional-users)
|
|
16
|
+
6. [Field reference](#field-reference)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Tier check
|
|
21
|
+
|
|
22
|
+
If you're unsure whether the user has Marketing Hub Professional:
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
GET /crm/v3/objects/companies?limit=1
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Check the `subscriptionType` on the account. If the API returns a 403 on
|
|
29
|
+
social endpoints, tell the user: "HubSpot campaign staging requires Marketing
|
|
30
|
+
Hub Professional. Your current plan doesn't include it. I can export a
|
|
31
|
+
scheduling CSV instead — would that work?"
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Create a campaign
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
POST /marketing/v3/campaigns
|
|
39
|
+
{
|
|
40
|
+
"name": "Summer Sale 2026 — Social",
|
|
41
|
+
"startDate": "2026-06-01",
|
|
42
|
+
"endDate": "2026-06-30",
|
|
43
|
+
"currencyCode": "<Currency from the Business context block, e.g. AUD>",
|
|
44
|
+
"utm": {
|
|
45
|
+
"source": "social",
|
|
46
|
+
"medium": "owned",
|
|
47
|
+
"campaign": "summer-sale-2026"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Response: `{ "id": "<campaign_id>", ... }` — save this for social post association.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Create a social post
|
|
57
|
+
|
|
58
|
+
One call per calendar row. Stage as `SCHEDULED`, never `PUBLISHED`.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
POST /marketing/v3/social/posts
|
|
62
|
+
{
|
|
63
|
+
"campaignId": "<campaign_id>",
|
|
64
|
+
"channelId": "<hubspot_channel_id>",
|
|
65
|
+
"content": {
|
|
66
|
+
"body": "<approved caption text>"
|
|
67
|
+
},
|
|
68
|
+
"scheduledAt": "2026-06-03T10:00:00Z",
|
|
69
|
+
"attachments": [
|
|
70
|
+
{
|
|
71
|
+
"url": "<canva_export_png_url>"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"status": "SCHEDULED"
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**`channelId`** — the HubSpot Social account ID (not the platform name).
|
|
79
|
+
Retrieve connected accounts:
|
|
80
|
+
```
|
|
81
|
+
GET /marketing/v3/social/channels
|
|
82
|
+
```
|
|
83
|
+
Match by `type` (`INSTAGRAM`, `FACEBOOK`, `TWITTER`, `LINKEDIN`) and use the `id` field.
|
|
84
|
+
|
|
85
|
+
**`scheduledAt`** — must be in the future (relative to the time of the API
|
|
86
|
+
call). Use noon local time for the owner's timezone unless they specify
|
|
87
|
+
otherwise.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Verify the scheduled queue
|
|
92
|
+
|
|
93
|
+
After staging all posts:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
GET /marketing/v3/social/posts?status=SCHEDULED&campaignId=<campaign_id>
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Surface results in a table: date, channel, first 60 chars of caption, status.
|
|
100
|
+
Provide the direct HubSpot campaign URL:
|
|
101
|
+
`https://app.hubspot.com/content/{portalId}/social/campaigns/{campaign_id}`
|
|
102
|
+
|
|
103
|
+
Tell the user: "Posts are scheduled and will publish automatically. You can
|
|
104
|
+
cancel or edit any post in HubSpot before the send time."
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## CSV fallback (non-Professional users)
|
|
109
|
+
|
|
110
|
+
When HubSpot staging is not available, export a CSV the user can import into
|
|
111
|
+
Buffer, Later, or their scheduler of choice.
|
|
112
|
+
|
|
113
|
+
Column headers:
|
|
114
|
+
```
|
|
115
|
+
Date,Time,Channel,Caption,ImageURL,Status
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Example row:
|
|
119
|
+
```
|
|
120
|
+
2026-06-03,10:00 AM CDT,Instagram,"Summer Sale: 30% off candles ☀️ ...",https://canva.com/export/...,Scheduled
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Tell the user: "I've prepared a scheduling CSV since your HubSpot plan doesn't
|
|
124
|
+
include social staging. You can import this into Buffer or Later. [file path]"
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Field reference
|
|
129
|
+
|
|
130
|
+
| Field | Type | Notes |
|
|
131
|
+
|-------|------|-------|
|
|
132
|
+
| `campaignId` | string | UUID from campaign creation |
|
|
133
|
+
| `channelId` | string | From `GET /social/channels` |
|
|
134
|
+
| `content.body` | string | Caption text; max 2,000 chars |
|
|
135
|
+
| `scheduledAt` | ISO 8601 | Must be future time; include timezone offset |
|
|
136
|
+
| `attachments[].url` | string | Public URL (Canva export URL works) |
|
|
137
|
+
| `status` | enum | Always `"SCHEDULED"` — never `"PUBLISHED"` |
|