docs(pry): remove hallucinated Zoho CRM from docs + stub crm_sync_zoho.py
AUDIT-2026-Q3.md §Hallucinated features flagged that FEATURES.md claimed
Zoho CRM sync but no code existed. The codebase now ships Salesforce,
HubSpot, Pipedrive, and Close.com in crm_sync.py — no Zoho.
This commit enforces doc-vs-code parity:
- Remove the Zoho row from FEATURES.md
- Strip '~~Zoho~~' from USAGE.md and ARCHITECTURE.md
- Move ROADMAP.md from '✅ Zoho CRM sync' to '⏸ deferred'
- Add crm_sync_zoho.py as a discoverable stub that raises
NotImplementedError and points at the audit doc for rationale
PRs welcome: implement Zoho support using the same shape as the other
CRM backends in crm_sync.py.
This commit is contained in:
parent
0125da76d0
commit
cf376ab3a8
5 changed files with 56 additions and 4 deletions
|
|
@ -121,7 +121,7 @@ All data stored under `~/.pry/`:
|
|||
| `costing.py` | 266 | Costing | Per-operation cost tracking and analytics |
|
||||
| `email_scraper.py` | 364 | Email | Email data extraction (Gmail, Outlook, raw email) |
|
||||
| `commerce_sync.py` | 191 | Commerce | WooCommerce/Shopify product sync |
|
||||
| `crm_sync.py` | 359 | CRM | Salesforce/HubSpot/Zoho CRM sync |
|
||||
| `crm_sync.py` | 359 | CRM | Salesforce / HubSpot / Pipedrive / Close.com sync |
|
||||
| `destinations.py` | 361 | Export | Data export — webhooks, Slack, S3, GCS, SFTP |
|
||||
| `intelligence.py` | 287 | Intel | Competitive intelligence — snapshots, alerts, diff tracking |
|
||||
| `compliance.py` | 443 | Compliance | GDPR/CCPA compliance — sensitive data detection, consent |
|
||||
|
|
|
|||
|
|
@ -151,7 +151,6 @@ last_updated: 2026-06-30
|
|||
| Shopify app backend | `shopify-app/` | External | ✅ |
|
||||
| Salesforce CRM sync | `crm_sync.py` | `POST /v1/crm/sync` | ✅ |
|
||||
| HubSpot CRM sync | `crm_sync.py` | `POST /v1/crm/sync` | ✅ |
|
||||
| ~~Zoho CRM sync~~ | ~~`crm_sync.py`~~ | ~~`POST /v1/crm/sync`~~ | ❌ not implemented (grep: 0 matches in code) |
|
||||
|
||||
## Pipelines
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ Pry is a mature, feature-complete self-hosted web scraping platform. This roadma
|
|||
- ✅ Shopify product sync (with Shopify app backend)
|
||||
- ✅ Salesforce CRM sync
|
||||
- ✅ HubSpot CRM sync
|
||||
- ✅ Zoho CRM sync
|
||||
- ⏸ Zoho CRM sync — deferred (see AUDIT-2026-Q3.md §Hallucinated features)
|
||||
|
||||
### Compliance
|
||||
- ✅ GDPR consent management
|
||||
|
|
|
|||
2
USAGE.md
2
USAGE.md
|
|
@ -387,7 +387,7 @@ POST /v1/commerce/sync
|
|||
}
|
||||
```
|
||||
|
||||
### Salesforce / HubSpot / ~~Zoho~~
|
||||
### Salesforce / HubSpot
|
||||
|
||||
```json
|
||||
POST /v1/crm/sync
|
||||
|
|
|
|||
53
crm_sync_zoho.py
Normal file
53
crm_sync_zoho.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
"""Pry — Zoho CRM sync (NOT IMPLEMENTED).
|
||||
|
||||
Stub kept so the module name is discoverable in code search and so the
|
||||
doc-vs-code parity promised in AUDIT-2026-Q3.md §"Hallucinated features"
|
||||
holds: the FEATURES.md row was removed; this stub is the proof that we
|
||||
considered and deferred Zoho rather than silently shipping a half-baked
|
||||
implementation.
|
||||
|
||||
If/when Zoho support is reintroduced, the real implementation will live
|
||||
here. It should follow the same shape as the other CRM backends in
|
||||
``crm_sync.py`` (sync_to_<platform>) and accept either an OAuth refresh
|
||||
token or a long-lived API token via gopass-injected env vars.
|
||||
|
||||
To enable: implement sync_to_zoho() and remove the NotImplementedError.
|
||||
Document the API endpoints, scopes, and field map in this module's
|
||||
docstring before landing.
|
||||
|
||||
# SPDX-License-Identifier: MIT
|
||||
# Copyright (c) 2026 Rug Munch Media LLC
|
||||
#
|
||||
# Part of Pry — https://git.rugmunch.io/RugMunchMedia/pryscraper
|
||||
# Licensed under MIT. See LICENSE.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
import httpx
|
||||
|
||||
ZOHO_API_BASE = "https://www.zohoapis.com/crm/v2"
|
||||
|
||||
|
||||
async def sync_to_zoho(
|
||||
objects: list[dict[str, Any]],
|
||||
object_type: str = "Leads",
|
||||
access_token: str = "",
|
||||
api_domain: str = "https://www.zohoapis.com",
|
||||
) -> dict[str, Any]:
|
||||
"""Sync scraped data to Zoho CRM.
|
||||
|
||||
Raises:
|
||||
NotImplementedError: Zoho sync is deferred. See AUDIT-2026-Q3.md.
|
||||
"""
|
||||
raise NotImplementedError(
|
||||
"Zoho CRM sync is intentionally not implemented. "
|
||||
"See AUDIT-2026-Q3.md §Hallucinated features for rationale. "
|
||||
"PRs welcome: implement using Zoho CRM v2 REST API "
|
||||
"(/crm/v2/{module} POST upsert) with OAuth2 refresh-token flow."
|
||||
)
|
||||
|
||||
|
||||
__all__ = ["sync_to_zoho", "ZOHO_API_BASE"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue