hey y'all! i've built a Clay table to automatically add someone into an Outreach sequence. but, it first checks if that person (contact) exists in Salesforce, and if it does not, it'll Create the Contact in Salesforce and then add the person into the Outreach sequence. but, the problem is, there is a slight delay from a Salesforce Contact being Created and syncing back and creating a Prospect in Outreach. So, the Prospect does not exist in Outreach yet, so the Clay table won't work. How are people solving this today?
For the sync delay between Salesforce and Outreach, you can use Clay's Create Prospect action to create the prospect directly in Outreach instead of waiting for the sync. The workflow would be: 1. Check if contact exists in Salesforce 2. If not, create contact in Salesforce 3. Create prospect directly in Outreach using Clay's integration 4. Add to sequence using the prospect ID from the creation step When adding to sequence, make sure to use the prospect ID (not email) from the Create Prospect step to avoid "Relationship Resource Not Found" errors. You can reference the ID by typing '/id' and selecting it from the previous creation column.
i don't want to create a duplicate contact (in both Salesforce and Outreach). i want the point of creation to be Salesforce, not Outreach.
when the salesforce contact is created it will return an id - adding a conditional run formula in the outreach column to check if the id is present (i.e a contact was created) should work
You're absolutely right! That's the correct approach to avoid duplicates while keeping Salesforce as your source of truth. Set up a conditional run on your Outreach "Add to Sequence" action that only runs when the Salesforce contact creation returns an ID. This ensures the sequence enrollment only happens after successful contact creation in Salesforce. For the Outreach integration, you'll need to use "Lookup Prospect" first to get the prospect ID from Outreach (since the contact will sync from Salesforce), then use that ID in your "Add to Sequence" action. This workflow maintains Salesforce as your primary contact source while properly timing the Outreach sequence enrollment.
thanks kushagra t..
adding a conditional run formula in the outreach column to check if the id is present (i.e a contact was created) should work
does this refer to the Outreach (Person) ID?
(whoops, sorry - didn't mean to send to channel, and can't edit or delete)
Exactly! That's the perfect approach. You can set up a conditional run on your Outreach "Add to Sequence" action that only executes when the Salesforce contact creation returns an ID. In the Run Settings of your Outreach column, use the "Only run if" condition to check if the Salesforce contact ID is present. This ensures the sequence enrollment only happens after successful contact creation in Salesforce. This conditional logic prevents the action from running on rows where no contact was created, maintaining your workflow integrity while keeping Salesforce as your source of truth.
No, this refers to the Salesforce Contact ID that gets returned when you create a contact in Salesforce. You'd set up the conditional run to check if the Salesforce contact creation column returned an ID - meaning a contact was successfully created. Only then would your Outreach sequence enrollment action run. The Outreach Person ID would come later when you do the "Lookup Prospect" action to find the synced contact from Outreach.
here's a similar example Brendan S., i am creating a contact in hubspot and only when the contact is created i am also adding a row in sheets - if you see the only run if condition it checks if the id is empty or not
Perfect example! That's exactly the right approach for conditional runs. You're using the "only run if" condition to check whether the HubSpot contact creation returned an ID - meaning a contact was successfully created. This ensures your Google Sheets action only runs after successful contact creation, preventing unnecessary actions on failed rows. This same logic applies to your Salesforce-Outreach workflow - the conditional run on your Outreach sequence enrollment should check if the Salesforce contact ID is present before proceeding.
right, but in this case, i would need another column next to HubSpot Salesforce that is Outreach and it would say "Object Created ✅" and only then would it add that person (now in Outreach) into an Outreach sequence. is that right?
Not exactly. You don't need a separate "Object Created ✅" column for Outreach. Since you want Salesforce as your source of truth, use "Lookup Prospect" to find the synced contact in Outreach, then add to sequence. Your workflow would be: 1. Create contact in Salesforce (returns Salesforce ID) 2. Lookup Prospect in Outreach (finds synced contact, returns Outreach prospect ID) 3. Add to Sequence using the prospect ID Set conditional runs on steps 2 and 3 to only run when the previous step returns an ID. This maintains Salesforce as your contact creation source while properly timing the Outreach actions.
i see the issue now, the creation of prospect in outreach is happening via salesforce and not clay but a prospect is being added to the outreach sequence via clay?
