Our test emails keep landing in junk but Salesforce support says there is nothing wrong with the account
If you tested with Send to Individual Emails from the Testing tab, Salesforce's own documentation says those proofs are not multipart MIME messages: the HTML and plain text go out as two separate messages, and many email systems treat that as suspicious. Using a corporate address on both ends stacks a second failure on top, because the filter classifies mail between two addresses on your domain as internal and then sees it arriving from a third-party server outside your network. Salesforce states outright that email test proofs should not be used as a measurement for deliverability.
The fix
Stop testing with individual proofs. Have IT allowlist your Account Engagement sending IP, which you find in Account Engagement Settings under Account Information in the Sending IPs field, so internal tests stop tripping the internal-network rule. Then measure placement with a real list email to an outside seed address rather than to a colleague on your own domain, and read the headers on that send. Bear in mind that a run of individual proofs can get you graylisted, Microsoft especially, which makes the next real send look worse than it is.
The newsletter reaches the inbox but anything sent from a sales rep goes straight to spam
Campaigns set to Assigned User, Account Owner or a CRM user custom field take the From address from the user record, so the sending domain changes from prospect to prospect. Salesforce evaluates the sender hierarchy from the top at send time and uses the first address whose domain is verified, which means an unverified rep domain silently falls through to whatever comes next, and if nothing in the hierarchy is valid the send fails. Domains you never added in Domain Management have no DomainKey record, so those messages go out unsigned while your marketing domain is signed.
The fix
List every domain your users send from and add each one in Account Engagement Settings, Domain Management, with both the validation key and the DomainKey record published. Where reps sit on a domain you cannot authenticate, set the last entry in the sender hierarchy to a General User or Specific User on a verified domain, and put the human touch in the reply-to address instead of the From. Then send from each domain to a seed address and confirm the DKIM d= value matches before you trust it.
I added the DomainKey a week ago and Account Engagement still will not show DKIM as verified
The DomainKey record has to live at 200608._domainkey.yourdomain.com, and DNS providers that append the zone to whatever you type turn that into a doubled hostname that resolves nowhere. Salesforce calls out GoDaddy by name for this behavior. Signing also does not begin the moment the record resolves: the documentation asks for up to 24 hours after the record is in place. And if someone requested a 2048-bit key, Salesforce warns that the domain will not show DKIM as verified in the app at all, even with a correct record in DNS.
The fix
Query the record directly instead of trusting the app: look up 200608._domainkey.yourdomain.com and check you get back one TXT record matching the Expected DNS Entries value, with no doubled domain and no duplicate entry. If your provider appends the zone, enter only the host portion. Give signing a full 24 hours, then send to a seed address and read the d= value on the delivered message, which is the only check that reflects what mailbox providers see.
Our own IT team flagged the campaign as phishing because every link went to pardot.com
Account Engagement rewrites links and vanity URLs through the tracker domain, and when no tracker domain is chosen on the asset it uses the account's primary tracker domain. An account that never validated its own CNAME serves all of that from the default go.pardot.com domain, so the From line says your brand and every href says something else, which is exactly the shape a phishing filter is trained on. Salesforce recommends adding a custom domain and serving all Account Engagement content from it.
The fix
Add a tracker domain in Domain Management, point the CNAME at go.pardot.com for production or go.demo.pardot.com for a sandbox, publish the validation key as a TXT record on your root domain or upload the pardot_XXXXXX.txt validation file to your web root, then validate it and choose Set as Primary. That rewrites the URLs on your Account Engagement assets to the new domain. Pick a subdomain that is not your email sending domain, since Salesforce warns that reusing one domain for both causes authentication errors, and confirm on a seed send that no pardot.com link survives.
A chunk of our list quietly stopped receiving emails and nobody unsubscribed
Account Engagement marks a prospect Undeliverable after a single hard bounce, or after five soft bounces, and suppresses them from every send after that. The trap is inside Salesforce's own definition of a hard bounce: some mail servers hard-bounce an address when the message is suspected as spam. So a stretch of broken authentication does not only push you to the spam folder, it converts filtered recipients into permanently suppressed prospects, and the list keeps shrinking long after the underlying problem is fixed.
The fix
Fix the authentication first, then work backwards through the bounce records: Account Engagement lets you reset the hard bounce or soft bounce count on a prospect record once the cause is resolved. Line the bounce spike up against the dates you changed DNS or sender settings to separate a genuinely bad address from a filtered one. Going forward, keep bounce rates well below the 10% on a single mailing that Salesforce warns can damage your deliverability, hold complaints under the 0.3% Gmail enforces, and rebuild volume gradually if you have paused sending for more than a week.