Struggling with a simple ‘GET CONTACT from Keap CRM’ node. When run in test mode, all Keap contact custom fields returned are current. But when it runs in my workflow, data returned is not the current data. It seems to be old data?
Only occurring for custom fields in Keap CRM. I have included custom_fields as an option in the GET CONTACT node. It’s never been an issue previously.
I have replaced the node, reconnected to the relevant Keap CRM account, even cleared cache in browser. But still, when the node runs, it returns old data.
Image below shows the test data on the left (correct data), live run data on the right.
Hey! This is a tricky one — but I’ve seen something similar happen before with Keap’s API, especially when dealing with custom fields.
Here are a few things you might want to check:
Timing issue?
If your workflow updates a contact before calling GET CONTACT, it’s possible the update hasn’t fully propagated on Keap’s end when the GET runs. Their API sometimes lags a bit with custom fields specifically.
Try adding a short Wait node (e.g., 2-3 seconds) between any update and the GET — just to test if it’s a timing problem.
Is Keap caching your request?
It’s also possible Keap is returning a cached version of the contact when called via workflow execution. When you test a node manually, it’s a fresh call — but in workflows, sometimes their API behaves differently (I know, weird).
If that’s the case, try:
Appending a timestamp parameter to the GET request to bust cache (if Keap supports it).
Or re-structuring the call using an HTTP Request node to control headers or bypass SDK behavior.
Still stuck?
If you can export that node or share a public workflow snippet, I’d be happy to try and replicate the issue.