Appearance
Purpose
The Syncs page shows every sync event processed by NOMA Sync: Givebutter, Square, and Mailchimp. You can filter by source, status, and date, open a row for full details, resolve errors, and resync where supported.
What You See
- Table (or list): Rows for each sync with columns such as: time, source (Givebutter / Square / Mailchimp), status (success, failed, skipped, etc.), external_id, and optionally a summary.
- Filters: Source, status, date range (or date_from / date_to), search (e.g. by external_id or query).
- Pagination: Limit and page (e.g. 50 per page).
- Detail modal: Click a row to see full payload, error message, external_ids (e.g. Order, Customer, LGL constituent/gift IDs).
Statuses
| Status | Meaning |
|---|---|
| success | Sync completed; constituent/gift created or updated in LGL. |
| failed | Sync failed (e.g. LGL error, validation). Error message in detail. |
| skipped | Skipped (e.g. idempotent – already synced, or duplicate external_id in LGL). |
| retry | Will be or was retried. |
| recovered | Missed by webhook but picked up by polling. |
Actions (Admin+)
- Resolve – Mark a failed or problematic row as “resolved” (e.g. after fixing in LGL or deciding to ignore). PATCH
/api/syncs/:id/resolve. - Resync – For some sources (e.g. Square, Givebutter), trigger a manual resync from the detail view or row action. This re-runs the sync logic (e.g. Square resync: POST
/api/square/orders/:orderId/resync).
API
- GET /api/syncs – List syncs with query params: status, source, date_from, date_to, page, limit, sort, order, q (search).
- GET /api/syncs/:id – Single sync by UUID (for detail modal).
- PATCH /api/syncs/:id/resolve – Mark as resolved (admin/super_admin).
Tips
- Use source filter to see only Givebutter, Square, or Mailchimp.
- Use status: failed to find errors that need attention.
- Use external_id or search to find a specific transaction or order.

