opencode-knowledge-work 0.0.0-stage → 0.1.1
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 +83 -0
- package/package.json +28 -3
package/content/small-business/skills/small-business-review-reputation/reference/churn-signals.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Quiet customers and win-backs
|
|
2
|
+
|
|
3
|
+
Most customers do not complain before they leave. They just stop. Finding them
|
|
4
|
+
is a data job, not a sentiment job.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Set the rhythm per customer, not per business
|
|
9
|
+
|
|
10
|
+
A customer is quiet when their gap has stretched well past *their own* normal
|
|
11
|
+
interval. Comparing everyone to a single company-wide average produces a list
|
|
12
|
+
full of annual customers who are perfectly happy.
|
|
13
|
+
|
|
14
|
+
For each customer with three or more orders or jobs:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
their normal interval = median gap between their own orders
|
|
18
|
+
quiet = current gap > 2× their normal interval
|
|
19
|
+
gone = current gap > 3× their normal interval
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
With fewer than three orders there is no rhythm to measure. Compare those to
|
|
23
|
+
the business's median instead, and label them as an estimate in the report.
|
|
24
|
+
|
|
25
|
+
| Customer | Normal interval | Current gap | Read |
|
|
26
|
+
|---|---|---|---|
|
|
27
|
+
| Dana R. | 3 months | 7 months | Quiet — worth a call |
|
|
28
|
+
| Kirby St. LLC | 12 months | 13 months | Normal — leave alone |
|
|
29
|
+
| M. Alvarez | 6 weeks | 5 months | Gone — win-back |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Rank by what the relationship was worth
|
|
34
|
+
|
|
35
|
+
Sort the quiet list by past value, not by length of silence. The owner has
|
|
36
|
+
time for fifteen conversations, not two hundred, and the fifteen should be the
|
|
37
|
+
ones that mattered.
|
|
38
|
+
|
|
39
|
+
Value in order of usefulness: lifetime spend, then order frequency, then most
|
|
40
|
+
recent order size. Use whatever the connected data actually supports and say
|
|
41
|
+
which one you used.
|
|
42
|
+
|
|
43
|
+
**The strongest signal is a pairing:** a customer who left a negative review
|
|
44
|
+
and then stopped ordering. Flag those at the top regardless of value. They
|
|
45
|
+
told the business exactly what was wrong and then left anyway, and they are
|
|
46
|
+
the most winnable because the fix is already known.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Shopify order patterns as sentiment
|
|
51
|
+
|
|
52
|
+
Behavior leads reviews by weeks. Reading it early is the only chance to fix
|
|
53
|
+
something before it becomes public.
|
|
54
|
+
|
|
55
|
+
Worth surfacing:
|
|
56
|
+
|
|
57
|
+
- **Fulfillment time drifting up** across a period. Compare the window to the
|
|
58
|
+
prior one and report both numbers.
|
|
59
|
+
- **Repeat refunds against one product** or one date range. Three refunds on
|
|
60
|
+
the same SKU is a product problem, not three unhappy people.
|
|
61
|
+
- **Partial or split shipments** rising. These generate "where is the rest of
|
|
62
|
+
my order" contacts a week or two later.
|
|
63
|
+
- **First-order customers who never came back,** as a share of the window.
|
|
64
|
+
|
|
65
|
+
Report what the data shows and nothing beyond it. If refund reasons are not
|
|
66
|
+
recorded in the data, say they are unavailable rather than inferring why
|
|
67
|
+
people asked for money back.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Designing the win-back
|
|
72
|
+
|
|
73
|
+
One message per customer, referencing something real: what they bought, what
|
|
74
|
+
was fixed, the season their equipment gets serviced. Generic "we miss you"
|
|
75
|
+
mail is exactly what they already delete.
|
|
76
|
+
|
|
77
|
+
Confirm what the owner can actually honor before drafting. Never invent a
|
|
78
|
+
discount, credit, free service, or priority slot. Ask:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
Before I draft these — what's actually on the table for a win-back?
|
|
82
|
+
|
|
83
|
+
Something like a discount or a free check-up
|
|
84
|
+
A straight personal note with no offer
|
|
85
|
+
A call from you rather than an email
|
|
86
|
+
|
|
87
|
+
For the four highest-value names I'd suggest the call. An email to someone
|
|
88
|
+
who spent USD 9,000 with you reads as a mailing list.
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Offer strength by segment:**
|
|
92
|
+
|
|
93
|
+
| Segment | What usually works |
|
|
94
|
+
|---|---|
|
|
95
|
+
| High value, left a bad review | A personal call. No offer up front — the apology is the offer |
|
|
96
|
+
| High value, no complaint | A note from the owner, naming the last job |
|
|
97
|
+
| Mid value, seasonal business | A timely reminder, no discount needed |
|
|
98
|
+
| Low value, one-time buyer | A single low-cost offer, then stop |
|
|
99
|
+
|
|
100
|
+
**Stop after one.** A second and third win-back attempt to someone who has not
|
|
101
|
+
replied damages the brand and, for email, damages deliverability for everyone
|
|
102
|
+
else. One good message, then leave them alone.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Approval
|
|
107
|
+
|
|
108
|
+
Every win-back is drafted for approval and sent one at a time. The owner
|
|
109
|
+
approves the message and the offer inside it. An offer that goes out before
|
|
110
|
+
the owner has agreed to honor it turns a churn problem into a refund problem.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Worked example — Okonkwo Mechanical
|
|
2
|
+
|
|
3
|
+
Ray Okonkwo asks: *"What are people saying about us? Our Google rating dropped
|
|
4
|
+
and I don't know why."*
|
|
5
|
+
|
|
6
|
+
HubSpot and PayPal are connected. Gmail is connected. No Shopify.
|
|
7
|
+
Google reviews came from an export Ray downloaded; Yelp was read from the web.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Review and Reputation — Apr 28 to Jul 27, 2026
|
|
12
|
+
|
|
13
|
+
**Google rating: 4.3 (34 reviews), down from 4.6 in the prior 90 days.**
|
|
14
|
+
Yelp shows 4.0 across 11 visible reviews. These are separate populations and
|
|
15
|
+
are not averaged together.
|
|
16
|
+
|
|
17
|
+
### Sources pulled
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Google reviews (export) 14 in window
|
|
21
|
+
Yelp (web, partial) 6 — page shows most recent only
|
|
22
|
+
PayPal disputes 2
|
|
23
|
+
HubSpot tickets 9
|
|
24
|
+
Gmail threads 11
|
|
25
|
+
Shopify orders — not connected
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Yelp is partial: the public page paginates and older reviews were not
|
|
29
|
+
readable. The Google export is complete for the window.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Themes
|
|
34
|
+
|
|
35
|
+
**1. Parts waits with no updates (11 signals)**
|
|
36
|
+
|
|
37
|
+
> "Waited nine days for a part and had to call three times to get an update."
|
|
38
|
+
> — [Google, 1★, Jul 12]
|
|
39
|
+
|
|
40
|
+
> "Nobody told us the part was backordered. We found out when we called."
|
|
41
|
+
> — [HubSpot ticket, Jun 30]
|
|
42
|
+
|
|
43
|
+
> "Still no word on the blower. Third week." — [Gmail, Jul 3]
|
|
44
|
+
|
|
45
|
+
**2. Scheduling double-bookings (6 signals)**
|
|
46
|
+
|
|
47
|
+
> "They booked us Thursday, then called Thursday morning to move it."
|
|
48
|
+
> — [Google, 3★, Jun 18]
|
|
49
|
+
|
|
50
|
+
> "Great install, terrible scheduling. Two reschedules." — [Yelp, 3★, Jul 2]
|
|
51
|
+
|
|
52
|
+
**3. The techs themselves, consistently praised (9 signals)**
|
|
53
|
+
|
|
54
|
+
> "Marcus went into a crawlspace I wouldn't send anyone into. Runs perfect."
|
|
55
|
+
> — [Google, 5★, Jul 20]
|
|
56
|
+
|
|
57
|
+
> "Whoever came out actually explained what was wrong. Rare." — [Gmail, Jun 12]
|
|
58
|
+
|
|
59
|
+
The rating drop is not about the work. Every low review in the window is about
|
|
60
|
+
waiting or scheduling; the work itself is what people compliment.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### Reviews needing a response
|
|
65
|
+
|
|
66
|
+
Three unanswered, oldest first.
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
★★★☆☆ Google · Jun 18 · T. Whitfield
|
|
70
|
+
"They booked us Thursday, then called Thursday morning to move it."
|
|
71
|
+
|
|
72
|
+
Draft reply:
|
|
73
|
+
Moving a Thursday job on Thursday morning isn't good enough, and that
|
|
74
|
+
one's on us. We've gone to confirmation calls the day before so it
|
|
75
|
+
doesn't happen again. Thanks for the honest note. — Ray
|
|
76
|
+
|
|
77
|
+
Post this, edit it, or skip it?
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
★☆☆☆☆ Google · Jul 12 · Dana R.
|
|
82
|
+
"Waited nine days for a part and had to call three times to get an update."
|
|
83
|
+
|
|
84
|
+
Draft reply:
|
|
85
|
+
Nine days for a blower motor is too long, and you shouldn't have had to
|
|
86
|
+
chase us for updates. We've changed how we order parts so this doesn't
|
|
87
|
+
repeat. Call me at 555-0142 and I'll make the wait right. — Ray
|
|
88
|
+
|
|
89
|
+
Post this, edit it, or skip it?
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
★★★★★ Google · Jul 20 · L. Okafor
|
|
94
|
+
"Marcus went into a crawlspace I wouldn't send anyone into. Runs perfect."
|
|
95
|
+
|
|
96
|
+
Draft reply:
|
|
97
|
+
Thanks — I'll pass that to Marcus. He mentioned that crawlspace. Give us
|
|
98
|
+
a shout when it's time for the fall check. — Ray
|
|
99
|
+
|
|
100
|
+
Post this, edit it, or skip it?
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Ray approves all three, one at a time. The Jul 12 reply is edited first: he
|
|
104
|
+
changes "we've changed how we order parts" to "we now order the part before
|
|
105
|
+
the tech leaves," because that is what actually changed. That correction goes
|
|
106
|
+
into the voice profile notes.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Quiet customers
|
|
111
|
+
|
|
112
|
+
Ranked by lifetime spend. Rhythm is each customer's own median gap between
|
|
113
|
+
jobs, so annual customers are not on this list.
|
|
114
|
+
|
|
115
|
+
| Customer | Normal | Current gap | Lifetime | Note |
|
|
116
|
+
|---|---|---|---|---|
|
|
117
|
+
| Dana R. | 3 months | 7 months | USD 9,140 | Left the Jul 12 one-star |
|
|
118
|
+
| M. Alvarez | 6 weeks | 5 months | USD 4,300 | Last job was a reschedule |
|
|
119
|
+
| Bellhaven Apts | 4 months | 9 months | USD 3,880 | No complaint on file |
|
|
120
|
+
|
|
121
|
+
Dana is first regardless of value: she told the business what was wrong and
|
|
122
|
+
then stopped. That pairing is the clearest churn signal in the data.
|
|
123
|
+
|
|
124
|
+
Before drafting anything:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
What's on the table for a win-back?
|
|
128
|
+
|
|
129
|
+
Something like a discount or a free check-up
|
|
130
|
+
A straight personal note with no offer
|
|
131
|
+
A call from you
|
|
132
|
+
|
|
133
|
+
For Dana I'd suggest the call rather than an email. She spent USD 9,000 with
|
|
134
|
+
you and just left a one-star — an email reads as a mailing list.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Ray picks the call for Dana, a note for the other two, and authorizes a free
|
|
138
|
+
fall check-up for Bellhaven. Nothing is drafted until he says so, and nothing
|
|
139
|
+
sends until he approves each message.
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
### Do these three things this week
|
|
144
|
+
|
|
145
|
+
1. **Call Dana R.** She is the highest-value quiet customer and the parts wait
|
|
146
|
+
is why. Her review is also the one dragging the Google average.
|
|
147
|
+
2. **Order parts before the tech leaves.** Eleven signals across three sources
|
|
148
|
+
trace to the same gap, and it is the whole reason the rating moved.
|
|
149
|
+
3. **Confirm every job the day before.** Six scheduling signals, all
|
|
150
|
+
preventable with one phone call per job.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Gotchas — review-reputation
|
|
2
|
+
|
|
3
|
+
## Gotcha: Posting a public response without approval
|
|
4
|
+
|
|
5
|
+
**Why it matters:** A review response is permanent, public, and attributed to
|
|
6
|
+
the owner by name. It is read by every future customer who finds the review.
|
|
7
|
+
There is no version of "we'll fix it next run" that undoes it.
|
|
8
|
+
|
|
9
|
+
### ✗ Bad
|
|
10
|
+
|
|
11
|
+
Draft eight responses, post them all, then show the owner what went out.
|
|
12
|
+
|
|
13
|
+
### ✓ Good
|
|
14
|
+
|
|
15
|
+
Present each draft next to the review it answers and get a yes on that one
|
|
16
|
+
before posting it. Approve one at a time — a batch approval on eight public
|
|
17
|
+
responses is how the wrong one goes live.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Gotcha: Blending rating averages across platforms
|
|
22
|
+
|
|
23
|
+
**Why it matters:** Google's 4.3 and Yelp's 4.0 describe different populations
|
|
24
|
+
of reviewers. An average of the two is a number that exists nowhere, and the
|
|
25
|
+
owner will repeat it to a customer or put it on a truck.
|
|
26
|
+
|
|
27
|
+
### ✗ Bad
|
|
28
|
+
|
|
29
|
+
> Your overall rating is 4.2 across 45 reviews.
|
|
30
|
+
|
|
31
|
+
### ✓ Good
|
|
32
|
+
|
|
33
|
+
> Google: 4.3 (34 reviews), down from 4.6 last quarter.
|
|
34
|
+
> Yelp: 4.0 (11 visible). Different reviewer pools — not averaged.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Gotcha: Treating a partial web scrape as a complete pull
|
|
39
|
+
|
|
40
|
+
**Why it matters:** Public review pages paginate, truncate, and reorder. A
|
|
41
|
+
report built on the first page reads as the whole picture, so the owner
|
|
42
|
+
concludes there are no new complaints when there are three on page two.
|
|
43
|
+
|
|
44
|
+
### ✗ Bad
|
|
45
|
+
|
|
46
|
+
> Yelp reviews: 6
|
|
47
|
+
|
|
48
|
+
### ✓ Good
|
|
49
|
+
|
|
50
|
+
> Yelp (web, partial): 6 — page shows most recent only
|
|
51
|
+
|
|
52
|
+
Then ask for an export once. It takes the owner two minutes and fixes every
|
|
53
|
+
run afterward.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Gotcha: Ranking quiet customers by silence alone
|
|
58
|
+
|
|
59
|
+
**Why it matters:** A list sorted by longest gap fills with annual customers
|
|
60
|
+
who are perfectly happy and one-time buyers who were never coming back. The
|
|
61
|
+
owner works the top of the list, finds it worthless, and stops using it.
|
|
62
|
+
|
|
63
|
+
### ✗ Bad
|
|
64
|
+
|
|
65
|
+
Sort every customer by days since last order and hand over 200 names.
|
|
66
|
+
|
|
67
|
+
### ✓ Good
|
|
68
|
+
|
|
69
|
+
Measure each customer against their own median interval, then rank by past
|
|
70
|
+
value. Fifteen names the owner will actually call beats two hundred they
|
|
71
|
+
won't. Put anyone who left a bad review and then went quiet at the top
|
|
72
|
+
regardless of value — they said what was wrong and left anyway.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Gotcha: Offering a discount the owner never authorized
|
|
77
|
+
|
|
78
|
+
**Why it matters:** A win-back message that promises 20% off is a commitment
|
|
79
|
+
the owner has to honor once it lands. Drafting it before asking turns a churn
|
|
80
|
+
problem into a margin problem, and the owner finds out when the customer
|
|
81
|
+
redeems it.
|
|
82
|
+
|
|
83
|
+
### ✗ Bad
|
|
84
|
+
|
|
85
|
+
> Hi Dana — we've missed you. Here's 20% off your next service.
|
|
86
|
+
|
|
87
|
+
Nobody agreed to 20%.
|
|
88
|
+
|
|
89
|
+
### ✓ Good
|
|
90
|
+
|
|
91
|
+
Ask what is on the table before drafting: an offer, a plain note, or a call
|
|
92
|
+
from the owner. Draft only inside that answer, and say plainly when a call
|
|
93
|
+
beats a coupon — an email to someone who spent USD 9,000 reads as a mailing list.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Gotcha: Arguing with a reviewer in public
|
|
98
|
+
|
|
99
|
+
**Why it matters:** The audience is not the reviewer. It is the next customer
|
|
100
|
+
reading the exchange, deciding how this business behaves when provoked. A
|
|
101
|
+
correct, well-evidenced rebuttal still loses that reader.
|
|
102
|
+
|
|
103
|
+
### ✗ Bad
|
|
104
|
+
|
|
105
|
+
> Our records show the technician arrived within the scheduled window and our
|
|
106
|
+
> policy clearly states parts orders take 5-7 business days.
|
|
107
|
+
|
|
108
|
+
### ✓ Good
|
|
109
|
+
|
|
110
|
+
Correct one factual point, offer a real contact route, and stop. Under 60
|
|
111
|
+
words. If the review breaks platform rules, explain the removal path to the
|
|
112
|
+
owner honestly — including that most requests are declined — rather than
|
|
113
|
+
promising it will come down.
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Gotcha: PayPal rate limits on dispute queries
|
|
118
|
+
|
|
119
|
+
**Why it matters:** PayPal's disputes API throttles aggressively on date windows with many disputes. Silent retries burn the user's time with no feedback.
|
|
120
|
+
|
|
121
|
+
### ✗ Bad
|
|
122
|
+
Retry 3× automatically with no feedback. User sees a spinner for 30+ seconds before an error.
|
|
123
|
+
|
|
124
|
+
### ✓ Good
|
|
125
|
+
On the first rate-limit error, skip PayPal, add `PayPal: rate-limited — not included` to the Sources section, and continue with the remaining connectors. Mention that the user can try again with a narrower date window.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Gotcha: Verbatim quotes paraphrased or summarized
|
|
130
|
+
|
|
131
|
+
**Why it matters:** The owner needs to see the actual customer words — not Claude's interpretation. Paraphrase destroys the credibility of the report.
|
|
132
|
+
|
|
133
|
+
### ✗ Bad
|
|
134
|
+
**Theme: Slow shipping** (8 signals)
|
|
135
|
+
> Customers reported that deliveries arrived later than expected.
|
|
136
|
+
|
|
137
|
+
### ✓ Good
|
|
138
|
+
**Theme: Slow shipping** (8 signals)
|
|
139
|
+
> "Ordered 2 weeks ago and still nothing — this is unacceptable." — [Gmail]
|
|
140
|
+
> "Package was 10 days late and support never responded." — [Zoho Desk]
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Gotcha: HubSpot returning 0 tickets treated as an error
|
|
145
|
+
|
|
146
|
+
**Why it matters:** Test portals and new accounts legitimately have 0 tickets. Surfacing a warning creates noise and erodes trust.
|
|
147
|
+
|
|
148
|
+
### ✗ Bad
|
|
149
|
+
> ⚠️ HubSpot returned 0 tickets. Check your connection or permissions.
|
|
150
|
+
|
|
151
|
+
### ✓ Good
|
|
152
|
+
Record `HubSpot tickets: 0` in the Sources section and continue. Only flag a connector issue if authentication itself fails.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Gotcha: Gmail keyword list too narrow
|
|
157
|
+
|
|
158
|
+
**Why it matters:** Customers don't use standard complaint keywords. A 1-star experience often surfaces as "took forever" or "never again," not "disappointed."
|
|
159
|
+
|
|
160
|
+
### ✗ Bad
|
|
161
|
+
Search only for: `refund cancel unhappy`
|
|
162
|
+
|
|
163
|
+
### ✓ Good
|
|
164
|
+
Use the full seed list in `sources.md`, which includes phrasings like "took forever" and "never again." Let theme extraction filter signal from noise — over-inclusion is cheaper than a missed theme.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Review responses
|
|
2
|
+
|
|
3
|
+
Every response is drafted for approval and posted only after the owner reads
|
|
4
|
+
it. A public response cannot be taken back.
|
|
5
|
+
|
|
6
|
+
Read `../../../shared/voice-profile.md` before drafting. These go out under the
|
|
7
|
+
owner's name, in public, permanently. A guessed voice is worse here than
|
|
8
|
+
anywhere else in the plugin.
|
|
9
|
+
|
|
10
|
+
**Under 60 words.** A long reply reads as arguing, whatever it says.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Negative review
|
|
15
|
+
|
|
16
|
+
Four parts, in order:
|
|
17
|
+
|
|
18
|
+
1. **Name the specific thing.** Not "we're sorry for your experience."
|
|
19
|
+
"You waited nine days for a part" — the reviewer needs to see they were
|
|
20
|
+
read.
|
|
21
|
+
2. **Say what changed,** if anything genuinely did. If nothing has, skip this
|
|
22
|
+
rather than inventing a policy.
|
|
23
|
+
3. **Move it offline with a real route.** A name and a number, not "please
|
|
24
|
+
contact us."
|
|
25
|
+
4. **Stop.** No policy explanation, no context about how busy the season was.
|
|
26
|
+
|
|
27
|
+
### ✗ Bad
|
|
28
|
+
|
|
29
|
+
> We're sorry you feel this way. Our records show the technician arrived
|
|
30
|
+
> within the scheduled window and our policy clearly states that parts
|
|
31
|
+
> orders can take 5-7 business days. We pride ourselves on customer service
|
|
32
|
+
> and hope you'll give us another chance.
|
|
33
|
+
|
|
34
|
+
Defensive, cites policy at someone who is upset, and reads as a rebuttal to
|
|
35
|
+
every future customer who finds it.
|
|
36
|
+
|
|
37
|
+
### ✓ Good
|
|
38
|
+
|
|
39
|
+
> Nine days for a blower motor is too long, and you shouldn't have had to
|
|
40
|
+
> chase us for updates. We've changed how we order parts so this doesn't
|
|
41
|
+
> repeat. Call me directly at 555-0142 and I'll make the wait right.
|
|
42
|
+
> — Ray
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Positive review
|
|
47
|
+
|
|
48
|
+
Short, specific, and clearly written by a person. Thank them for the thing
|
|
49
|
+
they actually mentioned. A copy-pasted "Thanks for the 5 stars!" under
|
|
50
|
+
fourteen reviews in a row tells every reader the responses are automated.
|
|
51
|
+
|
|
52
|
+
### ✓ Good
|
|
53
|
+
|
|
54
|
+
> Thanks Dana. Marcus said the crawlspace was a tight one — glad it's running
|
|
55
|
+
> right. Give us a shout when it's time for the fall check.
|
|
56
|
+
> — Ray
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Mixed review
|
|
61
|
+
|
|
62
|
+
Answer both halves honestly. Owners tend to reply only to the compliment,
|
|
63
|
+
which reads as ducking the complaint.
|
|
64
|
+
|
|
65
|
+
### ✓ Good
|
|
66
|
+
|
|
67
|
+
> Thanks for the kind words about the install. You're right about the
|
|
68
|
+
> scheduling — we double-booked that Thursday and you paid for it. We've
|
|
69
|
+
> moved to same-day confirmation calls since. — Ray
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Unfair or false review
|
|
74
|
+
|
|
75
|
+
Stay calm, correct the one factual point, and stop. The audience is not the
|
|
76
|
+
reviewer; it is the next customer reading the exchange, and they are watching
|
|
77
|
+
how the business behaves under provocation.
|
|
78
|
+
|
|
79
|
+
### ✓ Good
|
|
80
|
+
|
|
81
|
+
> We don't have a record of a service call at this address, so this may be a
|
|
82
|
+
> mix-up with another company. If we did work for you, call me at 555-0142
|
|
83
|
+
> and I'll sort it out. — Ray
|
|
84
|
+
|
|
85
|
+
**Escalation.** Removal is worth requesting only when a review clearly breaks
|
|
86
|
+
the platform's rules — wrong business, no actual transaction, personal
|
|
87
|
+
attacks, or an obvious conflict of interest. Explain to the owner what the
|
|
88
|
+
platform's bar actually is, that most requests are declined, and that a calm
|
|
89
|
+
public reply usually does more good than a removal fight. Never tell the owner
|
|
90
|
+
a review will be removed; the platform decides.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Approval flow
|
|
95
|
+
|
|
96
|
+
Present each draft with the review it answers, so the owner judges them
|
|
97
|
+
together:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
★☆☆☆☆ Google · Jul 12 · Dana R.
|
|
101
|
+
"Waited nine days for a part and had to call three times to get an update."
|
|
102
|
+
|
|
103
|
+
Draft reply:
|
|
104
|
+
Nine days for a blower motor is too long, and you shouldn't have had to
|
|
105
|
+
chase us for updates. We've changed how we order parts so this doesn't
|
|
106
|
+
repeat. Call me directly at 555-0142 and I'll make the wait right. — Ray
|
|
107
|
+
|
|
108
|
+
Post this, edit it, or skip it?
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Approve one at a time. A batch approval on eight public responses is how a
|
|
112
|
+
wrong one goes live.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Timing
|
|
117
|
+
|
|
118
|
+
Respond to negative reviews within a couple of days. A complaint answered
|
|
119
|
+
promptly reads as a business paying attention; the same words a month later
|
|
120
|
+
read as damage control.
|
|
121
|
+
|
|
122
|
+
Do not respond to a review the owner has already answered. Check for an
|
|
123
|
+
existing owner response before drafting anything.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Sources
|
|
2
|
+
|
|
3
|
+
One required backbone, everything else deepens it. The skill works on day one
|
|
4
|
+
with nothing connected at all.
|
|
5
|
+
|
|
6
|
+
| Source | Status | What it gives |
|
|
7
|
+
|---|---|---|
|
|
8
|
+
| A CRM (HubSpot, Monday.com, Salesforce, Zoho CRM), a payments connector (PayPal, Square, Stripe), **or** a storefront (Shopify, Square) | Required — one of any of the three categories | Tickets and feedback; disputes and refunds; or order history (who bought what and when) plus fulfillment and refund patterns |
|
|
9
|
+
| Support desk (Zoho Desk) | Optional | Tickets by customer, priority, and status — complaints in the customer's own words |
|
|
10
|
+
| Gmail | Optional | Complaint and praise language in threads |
|
|
11
|
+
| Web research | Always available | Publicly visible reviews on Google, Yelp, Facebook |
|
|
12
|
+
| Pasted or exported reviews | Always available | The best source there is, with dates and ratings |
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Public reviews
|
|
17
|
+
|
|
18
|
+
**Preferred: an export.** Google Business Profile and Yelp both let the owner
|
|
19
|
+
download their reviews. An export carries the rating, date, reviewer name, and
|
|
20
|
+
full text, and it includes reviews the public page paginates away. Ask for one
|
|
21
|
+
the first time this skill runs; it takes the owner two minutes and improves
|
|
22
|
+
every run afterward.
|
|
23
|
+
|
|
24
|
+
**Fallback: what is visible on the web.** Fetch the business's public review
|
|
25
|
+
pages and read what renders. This is genuinely useful and genuinely partial —
|
|
26
|
+
pages truncate, paginate, and reorder. Say so in the Sources section rather
|
|
27
|
+
than presenting a partial pull as a complete one.
|
|
28
|
+
|
|
29
|
+
**Also fine: pasted text.** The owner drops reviews into the chat. Tag them
|
|
30
|
+
`[Review]` like any other source and use them.
|
|
31
|
+
|
|
32
|
+
When counting, never total a rating average across sources. Google's average
|
|
33
|
+
and Yelp's average are different numbers about different populations, and an
|
|
34
|
+
owner who repeats a blended figure to a customer will be wrong.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Disputes and tickets
|
|
39
|
+
|
|
40
|
+
**PayPal disputes.** Fetch disputes opened in the window. PayPal throttles
|
|
41
|
+
aggressively on wide date windows. On the first rate-limit error, stop, record
|
|
42
|
+
`PayPal: rate-limited — not included` in Sources, and continue. Do not retry
|
|
43
|
+
silently; suggest a narrower window instead.
|
|
44
|
+
|
|
45
|
+
**Stripe disputes and refunds.** `GET /v1/disputes` created in the window
|
|
46
|
+
(via `stripe_api_read`), with `reason` and `status`; `GET /v1/refunds` for
|
|
47
|
+
the same window, since a run of refunds against one product is a theme
|
|
48
|
+
before it is a review. A dispute's `evidence_details.due_by` is a deadline —
|
|
49
|
+
surface any open one in the "do these three things" list.
|
|
50
|
+
|
|
51
|
+
**Square disputes.** The disputes endpoint through `make_api_request` for the
|
|
52
|
+
window. Same treatment as Stripe.
|
|
53
|
+
|
|
54
|
+
**HubSpot tickets and feedback.** Fetch open and recently closed tickets, plus
|
|
55
|
+
any feedback submissions. Zero tickets is a legitimate state for a new or
|
|
56
|
+
small portal — record `HubSpot tickets: 0` and move on. Only flag a connector
|
|
57
|
+
problem when authentication itself fails.
|
|
58
|
+
|
|
59
|
+
**Zoho Desk tickets.** `getTickets` for the window (`receivedInDays` 30 or
|
|
60
|
+
90 to match it; sort by `recentThread`), then `getThreads` on the ones whose
|
|
61
|
+
subject reads as a complaint, for the verbatim. `getTicketsMetrics` gives the
|
|
62
|
+
open, overdue, and on-hold counts for the header. Open tickets with priority
|
|
63
|
+
High belong in the Disputes and tickets count, not only in the theme list.
|
|
64
|
+
`getTickets` rejects an `include` parameter — ask for extra fields with
|
|
65
|
+
`fields`.
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Email
|
|
70
|
+
|
|
71
|
+
Search the window for threads containing complaint and praise language. Seed
|
|
72
|
+
list, deliberately wide:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
refund cancel unhappy issue problem disappointed frustrated broken
|
|
76
|
+
late slow wrong missing never again took forever thank you lifesaver
|
|
77
|
+
recommend great job
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Customers rarely use the word "disappointed." They write "took forever" and
|
|
81
|
+
"never again." Over-inclusion is cheap here because theme extraction filters
|
|
82
|
+
the noise; a narrow keyword list silently loses whole themes.
|
|
83
|
+
|
|
84
|
+
Pull the subject line and one or two sentences of the customer's own words —
|
|
85
|
+
enough to quote verbatim later.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Shopify
|
|
90
|
+
|
|
91
|
+
Covered in `churn-signals.md`. In short: orders, fulfillment times, and
|
|
92
|
+
refunds, read as behavior rather than opinion.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Reporting what you got
|
|
97
|
+
|
|
98
|
+
Every run ends with an honest Sources block. Counts, and named failures:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Sources pulled — Apr 28 to Jul 27
|
|
102
|
+
|
|
103
|
+
Google reviews (export) 14
|
|
104
|
+
Yelp (web, partial) 6 — page shows most recent only
|
|
105
|
+
Stripe disputes 3
|
|
106
|
+
Stripe refunds 7
|
|
107
|
+
HubSpot tickets 0
|
|
108
|
+
Zoho Desk tickets 12 — 2 open, priority High
|
|
109
|
+
Gmail threads 11
|
|
110
|
+
Shopify orders 182
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Name the connector that was actually read on each line (the example above is
|
|
114
|
+
a Stripe and Zoho Desk shop; a PayPal and HubSpot shop lists those). The dash
|
|
115
|
+
matters as much as the numbers. A source that is missing looks exactly like a
|
|
116
|
+
source with nothing bad in it unless it is named.
|