The hardcoded test proves Attio is fine with the format. What’s breaking here is the templating, not the domain itself.
In the logs, Clay is sending the placeholders literally (ex: {{Clean Domain for Attio}}) instead of substituting the row value. That’s why Attio returns “Invalid Domain”.
So the fix is: don’t use #{{ }} in the HTTP API body. Use Clay column references instead.