KeepinCRM Automation for an E-Commerce Store
Built a Go daemon that fully automates the CRM workflow of an online store: moves deals through the sales funnel based on Nova Poshta delivery statuses, generates fiscal receipts via Checkbox (Ukrainian ПРРО), and sends SMS notifications to customers via TurboSMS.
What was built:
- Automatic deal progression through a 7-stage sales funnel: Nova Poshta statuses mapped to KeepinCRM stages, with a CRM comment added on every transition.
- Fiscal receipt generation for COD and NovaPay payments: receipt issued when the parcel is picked up by the buyer (NP status 9), payment type — "Integrator payment NovaPay".
- WayForPay fiscalization without waiting for a tracking number: parallel agreement scan via GET /agreements — receipt issued immediately when the order appears in CRM, before a waybill is created.
- SMS notifications: #1 on waybill creation (tracking link), #2 on arrival at the branch, #3 after fiscalization (link to the public fiscal receipt).
- SQLite deduplication: every event (stage move, SMS, receipt) fires exactly once — no duplicates regardless of polling frequency.
- Deployed as a systemd unit on the client's VPS, running 24/7; watchdog cron + daily database backup.
Stack: Go 1.24+, SQLite, systemd, KeepinCRM API, Nova Poshta API, Checkbox ПРРО API, TurboSMS API
#golang #CRMAutomation #KeepinCRM #NovaPoshta #Checkbox #TurboSMS #WayForPay #ecommerce #fiscalization #systemd #sqlite
KeepinCRM Automation — Nova Poshta, Checkbox, TurboSMS
What was built:
- Automatic deal progression through a 7-stage sales funnel: Nova Poshta statuses mapped to KeepinCRM stages, with a CRM comment added on every transition.
- Fiscal receipt generation for COD and NovaPay payments: receipt issued when the parcel is picked up by the buyer (NP status 9), payment type — "Integrator payment NovaPay".
- WayForPay fiscalization without waiting for a tracking number: parallel agreement scan via GET /agreements — receipt issued immediately when the order appears in CRM, before a waybill is created.
- SMS notifications: #1 on waybill creation (tracking link), #2 on arrival at the branch, #3 after fiscalization (link to the public fiscal receipt).
- SQLite deduplication: every event (stage move, SMS, receipt) fires exactly once — no duplicates regardless of polling frequency.
- Deployed as a systemd unit on the client's VPS, running 24/7; watchdog cron + daily database backup.
Stack: Go 1.24+, SQLite, systemd, KeepinCRM API, Nova Poshta API, Checkbox ПРРО API, TurboSMS API
#golang #CRMAutomation #KeepinCRM #NovaPoshta #Checkbox #TurboSMS #WayForPay #ecommerce #fiscalization #systemd #sqlite
KeepinCRM Automation — Nova Poshta, Checkbox, TurboSMS