Bienvenue! Welcome!
My goal is to help you work faster.
I must speak and teach until I hear 10 people say, "That thing you taught me? I used it! And it saved me time!"
(Ahem ... although maybe blogging slower than I'd hoped. Ugh, coders' repetitive stress injury.)
So check out the tutorials. Play with code. Tell me about your triumphs.
Jitterbit: replace a non-breaking space
07 Oct 2022
Some visitor typed a non-breaking space into their address when filling out a form. 123 Sun St, New York, NY 10001
is just 30 characters long, but as I tried to data-load an address into an Oracle VARCHAR2(30)
-typed column (THE_ADDRESS
) with Jitterbit, Oracle complained: ORA-12899: value too large for column ... (actual: 31, maximum: 30)
. Jitterbit logs showed the actual address submitted in my flat-file source column “address
” as 123 Sun St, New York, NY 10001
.
“Allow truncation of character fields to avoid field length errors” was already checked on the database target side of the Jitterbit transformation … so what was this all about?
Continue ReadingCumulusCI Minimum Viable Build
26 Sep 2022
While the cci project init
command will throw a lot of useful empty files into a blank folder for you, and will create a fileset that supports launching a scratch org with the cci flow run dev_org
command, it generates a lot of files you don’t necessarily need right away. I’ve built a sample project and hosted it at GitHub to show off what I, personally, have found is actually necessary. You can download a copy and run cci flow run dev_org
within it to see what I mean (although be sure to read below and note the /.sfdx/sfdx-config.json
hand-edit you need to make).
Download your org schema with CumulusCI
16 Sep 2022
I made a new codebase that lets you use CumulusCI (CCI) to easily download the definition of every object and field in a Salesforce org (part of its “metadata”) onto your hard drive as a plain-text file formatted in the JSON punctuation standard.
Continue ReadingCompare Flow versions in VSCode for Salesforce
16 Sep 2022
Today I had to propose quickly hotfixing a Flow in production. It was terrifying – it’s production! I don’t work in Flow all the time!
Not only did I send screenshots to the org’s admins of my inactive-but-newer version … I needed to be really confident and proofread the difference between the underlying XML codebase between the two versions before I could swear I’d done the right thing.
So here’s what I did:
Continue ReadingMultiple Pardot accounts sending from the same domain
15 Sep 2022
If you, a Pardot administrator, visit Home > Administration > Domain Management (https://pi.pardot.com/domain
) and click the “Add New Domain” button under “Email Sending Domains,” enter a domain that’s already in use in by a different pardot (e.g. “example.com
“), and click the “Create domain” button, you’ll probably get an error:
Continue Reading“This sending domain is already in use. Choose another domain or contact the support team to add this one.”
Jitterbit: backfill Salesforce ID into a database
13 Sep 2022
Last year, I shared a great data-load pattern called “Insert, update, and delete from a database to Salesforce.”
If you implement it with Jitterbit, I’ve recently discovered some tricks you can do to combine steps that load data into Salesforce with steps that load the results of that operation back into your database, which keeps your project tidier.
Instead of writing Salesforce IDs resulting from a successful “upsert” or “delete” operation to CSV, and then reading from CSV to the database, you can write successfully upserted/deleted Salesforce IDs directly to the database as part of the Salesforce data-load operation itself.
Continue ReadingFind and replace Pardot PML with HML
08 Sep 2022
One of my colleagues needed to migrate dozens of e-mail templates from an older instance of Pardot to a newer one. The new Pardot kept complaining that old templates were in Pardot Merge Language (“PML”), e.g. %%first_name%%
, instead of Handlebars Merge Language (“HML”), e.g. {{first_name}}
. Here’s how I helped do the find-and-replace:
Save button missing in Pardot Marketing Data Sharing Rules
18 Aug 2022
So you paused syncing and tried to edit the “explicit criteria” in a Pardot Marketing Data Sharing Rule by changing the value of the Field picklist and your Save button is grayed out?
Continue ReadingFormula Fields work fine for Pardot Marketing Data Sharing Rules
18 Aug 2022
You might have seen documentation that you can’t use a formula field to filter Salesforce and Pardot object synchronization with Marketing Data Sharing Rules because, by its nature, you can’t set your Pardot Integration User to be able to edit a formula field.
Nonsense – it works fine.
Continue ReadingPardot Opportunities need Contact Roles to sync
18 Aug 2022
Think Marketing Data Sharing Rules are bullying you on Opportunity alone?
Like, all of your sharing rules work, except for Opportunity?
Continue Reading