# Salesforce Bubble Integration Tutorial

**URL:** <https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792>\
**Category:** Showcase\
**Created:** [July 12, 2024, 6:34pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792 "2024-07-12T18:34:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![justinwillsyt](https://avatars.discourse-cdn.com/v4/letter/j/ba9def/32.png) [@justinwillsyt](https://forum.bubble.io/u/justinwillsyt)\
**Post date:** [July 12, 2024, 6:34pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792/1 "2024-07-12T18:34:41Z")

</div>

I spent a lot of time struggling to build a plugin to integrate Salesforce and bubble. That’s why I made a full tutorial to showcase how to:

- Create Bubble Plugins
- Integrate Third-party systems like Salesforce
- Use Keys to authenticate with Salesforce
- Use backend workflows to automate business logic
- Publish Bubble Plugins

If you’re interested in learning how to do this, check out my video here: [https://youtu.be/JoRyGbgKcJE](https://youtu.be/JoRyGbgKcJE)

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [July 12, 2024, 7:23pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792/2 "2024-07-12T19:23:47Z")

</div>

Why building a plugin when you can do everything in SF API with API connector?

More than that you are showing the auth using password auth when there’s an option to use client\_credentials that is way better mostly because SF administrator could request you to change password often.

---

<div class="post-metadata">

**Author:** ![justinwillsyt](https://avatars.discourse-cdn.com/v4/letter/j/ba9def/32.png) [@justinwillsyt](https://forum.bubble.io/u/justinwillsyt)\
**Post date:** [July 12, 2024, 7:28pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792/3 "2024-07-12T19:28:31Z")

</div>

Doing complex mapping for field values.

The basic auth is done through an integration user, which is a free Salesforce license for this exact scenario. You can specify password policies per profile.

---

<div class="post-metadata">

**Author:** ![Jici](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jici/32/30722_2.png) [@Jici](https://forum.bubble.io/u/Jici)\
**Post date:** [July 12, 2024, 7:29pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792/4 "2024-07-12T19:29:35Z")

</div>

> [@justinwillsyt](#):
>
> Doing complex mapping for field values

Can you give an example? For me, this can all be done with Bubble native functions

---

<div class="post-metadata">

**Author:** ![justinwillsyt](https://avatars.discourse-cdn.com/v4/letter/j/ba9def/32.png) [@justinwillsyt](https://forum.bubble.io/u/justinwillsyt)\
**Post date:** [July 12, 2024, 7:40pm UTC](https://forum.bubble.io/t/salesforce-bubble-integration-tutorial/330792/5 "2024-07-12T19:40:26Z")

</div>

I had built the plugin in part because I needed to:

- Check existing records based on email address
- Convert the lead to a contact
- Select the external id based on previous values

I am a Salesforce developer by trade, but I’m sure many of the functionality showcased in this video can be done with the API connector. After the research I did, it seemed like the path I took seemed like the best solution for the requirements.
