The server is sending HTML instead of JSON to FluentCRM? Has anyone else seen this error and know how to fix this?
I am typing this while trying my absolute hardest not to smash my keyboard into pieces. My wife is literally staring at me with wide eyes right now because she can see how furious I am with this situation.
Here is the problem: The ElasticEmail integration is failing to unsubscribe contacts when a bounce occurs.
I have done all the troubleshooting myself. I checked my Nginx server logs. I verified that the webhook requests are successfully hitting the correct endpoint provided by FluentCRM. The connection is established, the data arrives at the server, everything is green on the network side.
But FluentCRM simply ignores the event. It receives the data and does absolutely nothing. The contact status remains "Subscribed" even after a bounce. This is critical for list hygiene, and it is just not working.
I opened a ticket providing detailed technical information, explaining that I already verified the logs and that the request is reaching the plugin. And what response do I get? A generic, copy-paste reply telling me to "read the documentation" and "test with webhook.site".
They clearly did not read a single word of what I wrote. It is insulting to provide technical information and get a "did you check the settings?" response.
I just replied to them demanding they actually read my ticket and escalate this to a developer, but I am at my wits' end.
Is anyone else dealing with this broken integration? Is there any way to get a real human to look at the code instead of these automated support bots?
Can you read this Shahjahan JewelΒ ?
Thanks
I'm fiddling with proper A/B split testing in campaigns. I think I can do it by setting up an automation that gets triggered when a tag is added to a subscriber. It would then split the list 50/50, and then send different campaigns to each group. I could trigger the send by bulk adding the tag to my entire list.
Would this be the best way to do this? Any caveats? Better ways to properly A/B split test two different emails? It's a bit clunky this way, but I think it would work?
May eventually try this on a list of 150k.
Hello everyone,
I have been following discussions about speed issues closely, and honestly, I am tired of seeing the same standard responses blaming SMTP providers or Cron configurations. I spent days fighting with FluentCRM support over this exact issue, and I need to expose what is really happening to save you all some time.
I run a beast of a dedicated server (128GB RAM, 16 CPU Cores, NVMe, 30 public IPs) and use Elastic Email via FluentSMTP. Theoretically, I should be flying. In practice? My sending was choked at ~200 emails per minute.
For a long time, support kept telling me to increase PHP max_execution_time, check the server Cron, or blame SMTP latency. Total BS.
The truth that support hides (until you back them into a corner, like I did) is that FluentCRM has HARDCODED LIMITERS.
The issue isn't the SMTP protocol or API. The issue is that the plugin was designed to cap the amount of data it fetches from the database at a timeβprobably to protect cheap shared hostingβbut this kills anyone with professional infrastructure who needs to scale.
After I audited the code myself and proved it to them, support finally admitted it and gave me the list of files where these handbrakes are hidden.
If you want real speed (above 10k/hour), forget about switching SMTPs for a moment. The bottleneck is HERE, inside the plugin folder:
- Slow Automations:
In /wp-content/plugins/fluent-crm/app/Services/Funnel/FunnelProcessor.php, there is a line with ->limit(200). The plugin only processes 200 contacts per automation cycle, no matter if your server can handle 10,000.
I made this change:
$jobs = FunnelSubscriber::whereIn('status', $statuses)
->whereHas('funnel', function ($q) {
return $q->where('status', 'published');
})
->where('next_execution_time', '<=', current_time('mysql'))
->whereNotNull('next_execution_time')
->orderBy('next_execution_time', 'ASC')
->limit(6000)// Increased to process 6000 records at a time
->get();
- Bulk Actions:
In /wp-content/plugins/fluent-crm/app/Http/Controllers/SubscriberController.php, there is a ->limit(400). Trying to tag 50k people? Sit down and wait, because it is going 400 by 400.
I made this change:
$subscribersModel = $subscribersModel->select(['id'])
->limit(3000) // Increased the batch size
->where('id', '>', $lastId)
->get();
- Email Sequences:
In /wp-content/plugins/fluentcampaign-pro/app/Hooks/Handlers/EmailScheduleHandler.php, the query for next sends is done via SequenceTracker::ofNextTrackers()->limit(XXX). The default limit is extremely low. I had to force change the code to ->limit(1000), otherwise it spoon-feeds the queue and the sending never finishes.
I made this change:
$processTrackers = SequenceTracker::ofNextTrackers()->limit(1000)->get();
What makes me angry:
They know this. In my ticket, after I sent a video proving my hardware was idling while the plugin was sleeping, the developer (Masiur) finally said: "You can adjust the values in these files to increase volume, but we don't support that."
In other words, they sell a marketing automation tool but hide the fact that it comes crippled out of the box. I had to manually edit the plugin core (which is terrible for future updates) just to utilize my server's power.
So, answering the general questions about speed: Amazon SES is great, use the API. But if you don't change these internal limits in the FluentCRM code, you could hire a NASA server and the sending will still be slow.
Honestly, I don't know if I caught all the throttles, as the code operates like a black box that the team refuses to document for the community. I still notice slowness in other areas, and I know the standard answer will be to blame my server, but tests prove the software is the brake.
You need to IMMEDIATELY document all these hidden limitations (hard limits) scattered throughout the codeβwhether in flows, timeouts, or processing batches (contacts processed per minute). Selling an "unlimited" tool that comes throttled out of the box is shameful.
Be warned: stop blaming the SMTP before looking at how the plugin queries the database or hands off emails to the SMTP.
As I was writing this reply, my wife asked me why I was banging on the keyboard so hard.
I hope Shahjahan JewelΒ reads this.
Best regards.
I would like to have a button on each contactβs profile in FluentCRM that opens a screen showing a visual customer journey. This should display all relevant touchpoints for that contact, such as:
- Link clicks
- Emails received and opened
- Submitted forms
- Automations entered
- Invoices
- Payments
- And any other interactions
This would greatly help in understanding each customerβs complete journey within the CRM.
Can this be done with FluentCRM?
https://wordpress.org/plugins/email-subscribers/
Sub title of the plugin:
Email Subscribers & Newsletters β Powerful Email Marketing, Post Notification & Newsletter Plugin for WordPress & WooCommerce
I use the plugin on a customer site. Making it possible for people to signup to receive an email every time a post within a specific category is published. It would be great if something like this could be done with FluentCRM.
We had an issue with automation tracking in the FluentCRM 2.9.85 (yesterday's update).
Please update to 2.9.86 (Free core version only).
The issue:Β We had a database query misconfiguration in yesterday's update, which created draft automation entries in the database.
Please note, this bug did not interrupt your automations. It was related to logging and reporting.
We strongly advise updating to the latest version (Core: 2.9.86)
Hello creators.
I am setting up a mail when =Order Paid (Payment/Subscription) = (invoice)
I want to use the merge tags for the product name but dont find it. I used ={{cart_order.type}}
but the outcome is= payment
Also {{cart_order.completed_at}} is the outcome= nothing....
For date i use now for the moment {{other.date.+0 days}}
Annybody the same isseau?
With the tools currently built into FluentCRM, it is pretty difficult and manual to be able to set up and run an AUTOMATED reenegagement campaign.
Right now, sure... you can manually search/filter your list and add them to an automation. But, ideally, this would just happen on automatic. But, a few things are missing that would be super helpful:
- No action in automations to unsubscribe a lead. Seems like a very simple thing to add.
- No automation triggers to go based on engagement, entry into a dynamic segment, etc. Which makes things tough to automate.
Some ideas I think would be useful might include...
- An automation trigger for link clicks - even clicking ANYTHING in any email. Right now, we have Smart Links, but that's one link at a time. A global option to trigger based on clicking ANY link in ANY email would be a major convenience. I had that option with Drip, and I kinda miss it.
- An automation trigger for a lead entering a dynamic segment. Might be tough to code, but I can dream. ;)
Better yet would be just a built-in function for this, similar to how Abandoned Cart works. Honestly, I think re-engagement campaigns would be more universally needed than Abandoned Cart anyway.
If there was some universal setup where one could choose which email sequence to use as a re-engagement campaign... then a global setting that would use the built-in open/click tracking FluentCRM already has and just apply it globally... this would be the meal ticket. The user could set their timing cut-off (say 90 days). And, then automatically, if the subscriber goes 90 days without clicking/opening.... it would auto-start the email sequence. And, if they click/open, it is not sent. If they're already in re-engagement and then they click, then they are removed automatically. If they then unengage again, it restarts the sequence.
Thoughts? Shahjahan JewelΒ
I am rebuilding my website on a new domain so am unable to add fluentcrm pro (due to the one-domain license thing), so i have a dumb question...
Can i sync fluentcrm pro with fluentcommunity so anyone added to the crm can be added to the community?

