API invite returns 200 but contact is not enrolled in the right campain when it already exists from a CSV import
Hi Mannie,
Here is a bug report following the Loom I recorded. This is on organization 149 (S Code Coiffeur), location 195.
Summary
When a contact already exists in an organization because it was imported through a CSV into a reactivation campaign, an API invite to a different campaign returns a 200 "Invites sent successfully" with the existing contact's UUID, but the contact is never enrolled in the target campaign. It stays on its reactivation schedule. No error is returned, so our automation records the invite as sent.
Setup
Campaign 224 "Campagne réactivation" (923431c2-17d4-4b5e-9f12-d0b7247cd016): 2,710 contacts imported from a CSV on October 1, drip sending every 20 minutes, email only.
Campaign 222 "Campagne d'avis après rendez-vous" (fe228f9f-2ff6-46b3-82d1-42c2f258bfd4): post-appointment invitations sent via API from our n8n workflow, SMS first.
Both campaigns appear to use the same contact list (contact_list_id 171).
Duplicate filter set to 1 day on both campaigns.
Steps to reproduce
Import a CSV of existing clients into campaign 224.
After the import, send an API invite to campaign 222 for a contact whose email is already in the CSV.
The API returns 200 "Invites sent successfully" with the existing contact UUID.
The contact does not appear in campaign 222 and receives nothing from it. Its next scheduled message remains the one from campaign 224.
Evidence
October 3, 13:20 UTC: Valentin (vpl29@outlook.fr), not in the CSV. The API returned contact 43498325-1e5b-…, created and enrolled in campaign 222 as expected. SMS sent 3 hours later.
October 5, 14:20 UTC: Gwen (gwenfily29@gmail.com) and Guillaume (guiguicabon@hotmail.fr), both in the CSV. The API returned 200 with UUIDs b6daff6f-… and e8eb014f-…. Neither was enrolled in campaign 222.
Across all 7 post-appointment invites since October 2, the 6 contacts present in the CSV were not enrolled. The only contact not in the CSV was.
Adding one of these contacts manually to campaign 222 from the dashboard (jllemoigne78@gmail.com) works immediately. The issue seems specific to the API path.
Impact
30 of the 31 clients with upcoming appointments at this salon are in the CSV. As things stand, almost none of them will receive the post-appointment SMS, which is our main source of reviews
Expected behavior
An API invite to a given campaign ID should enroll the contact in that campaign, even if it already exists through another campaign or list. If the system decides not to enroll it, the API should return an explicit error or status explaining why, rather than a 200 success. The contact activity log should show that decision too.
Log in to comment and vote
No comments yet
Be the first to share your thoughts.