Skip to main content

Connecting CompanyCam to Salesforce

Learn how to prepare your Salesforce org, install the CompanyCam package, connect your account, and add CompanyCam to your Account or custom object records.

Salesforce is a customer relationship management (CRM) platform used to track leads, opportunities, and customer records. Connecting CompanyCam to Salesforce installs a package that brings your Project photos and files onto your Salesforce records, so your sales and ops teams can see job site documentation without leaving Salesforce.
​

This article covers preparing your Salesforce org, installing the package, connecting your CompanyCam account, and adding CompanyCam to your records.

This integration is only available on the web app.


How the integration works

Once you're connected, each Salesforce record you set up gets a matching Project in CompanyCam. That can be an Account or a custom object like a Job.

Here's what moves in each direction:

  • Salesforce to CompanyCam: the record's name and address create the Project and fill in its details.

  • CompanyCam to Salesforce: photos and files from that Project show up on the record, so your office can see the job without switching platforms.

A Project is created when someone opens a record with Auto Create Project turned on, or when someone clicks Create as Project in CompanyCam on the record.

Note: Documents, Checklists, and Reports aren't available in the photo viewer yet. Files from the Project still reach Salesforce as a clickable PDF link.


Preparing your Salesforce org

Note: You need Admin or Manager permissions in CompanyCam and System Administrator access in Salesforce to set up this integration. See Permission Roles Explained.

The CompanyCam package needs the Orders object turned on and at least one Order Record Type before it installs.

  1. In Salesforce, click the gear icon in the top-right, then click Setup.

  2. In the Quick Find box, search for Order Settings.

  3. Check Enable Orders, then click Save.

  4. Click the Object Manager tab, search for Order, then click it.

  5. Click Record Types in the left-hand menu, then click New.

  6. Leave Existing Record Type set to Master, then enter a Record Type Label, like Roof Replacement. The Record Type Name fills in automatically.

  7. Leave Active checked, then click Next.

  8. Choose Apply one layout to all profiles, then click Save.


Installing the CompanyCam package

  1. While logged in to Salesforce, open the Package Install Link.

  2. Select Install for All Users.

  3. Check the box to acknowledge you're installing a non-Salesforce application, then click Install.

  4. If you're asked to approve third-party access, check Yes, grant access to these third-party web sites, then click Continue.

  5. When you see Installation Complete, click Done.

Note: To install into a sandbox instead, append /packaging/installPackage.apexp?p0=04tKg0000000S9L to your sandbox domain. Your sandbox connects separately from your production org.


Requesting access and adding your credentials

Before your org can connect, our team adds it to our allowlist and sends you a Client ID and Client Secret.

  1. In Salesforce Setup, search Auth. Providers in the Quick Find box.

  2. Click the Doorkeeper auth provider that the package installed.

  3. Copy the Callback URL near the bottom of the page.

  4. Email the Callback URL to [email protected] and let us know you're connecting Salesforce. We'll add your org to our allowlist and reply with your Client ID and Client Secret.

  5. Once you have them, go back to the Doorkeeper auth provider, then click Edit.

  6. Paste the Client ID into Consumer Key and the Client Secret into Consumer Secret, then click Save.

Note: Setting up a sandbox too? Send us the sandbox's Callback URL as well. Each sandbox is added to the allowlist separately.


Connecting your CompanyCam account

  1. In Salesforce Setup, search Named Credentials in the Quick Find box.

  2. Click CompanyCam. Its Authentication Status shows Pending.

  3. Click Edit, then click Save without changing anything.

  4. Log in to CompanyCam when prompted, then click Authorize.

  5. Back on the Named Credential, confirm the Authentication Status now shows Authenticated.

Note: The integration acts as the CompanyCam User who authorizes it, and Projects are created in that User's company. Use an Admin account that will stay with your company. If you remove that user later, the connection stops working until someone authorizes it again.


Adding CompanyCam to your records

These steps add CompanyCam to the Account page. Using a custom object instead? Skip to Using a custom object.

Important: Drag the component named CompanyCam onto the page, not CompanyCamLightningComponent. The wrong one leaves a blank section or a broken page icon on every record.

  1. Click the App Launcher, the grid of dots in the top-left, search for Accounts, then open any Account.

  2. Click the gear icon in the top-right, then click Edit Page.

  3. In the Components list on the left, scroll to Custom - Managed and find CompanyCam.

  4. Drag CompanyCam onto the page.

  5. Click the component to open its settings on the right, then uncheck Auto Create Project for now.

  6. Fill in the settings using the table below. Project Id Field starts out as Account Description, so be sure to change it to CompanyCam Project ID.

  7. Check Auto Create Project if you want Projects created automatically, then click Save.

  8. Click Activation, choose Assign as Org Default, select Desktop and phone, then click Next.

  9. Click the back arrow to return to the Account.

Setting

What to choose

Project Id Field

CompanyCam Project ID

Project Name Field

Account Name

Street 1 Field

Billing Street

Street 2 Field

None

City Field

Billing City

State Field

Billing State/Province

Postal Code

Billing Zip/Postal Code

Auto Create Project

Creates a Project when someone opens the record

Enable Photo References

Shows photos as links, so no Salesforce storage is used

CompanyCam Connection

CompanyCam Default Connection

Note: Map the individual address fields, like Billing Street and Billing City, not the combined Billing Address field.


Giving your team access

Users won't see CompanyCam on a record until they have the permission set.

  1. In Salesforce Setup, search Permission Sets in the Quick Find box.

  2. Click CompanyCam User, then click Manage Assignments.

  3. Click Add Assignment, check the Users who need CompanyCam, click Next, then click Assign.


Testing the connection

  1. Open an Account and click Create as Project in CompanyCam, or open it with Auto Create Project turned on.

  2. Confirm the CompanyCam section shows the Project name and address with an Open in CompanyCam button, and that the Project appears in CompanyCam.

  3. Take or upload a photo to that Project in CompanyCam.

  4. Refresh the Account in Salesforce. Your photos show under Photos, and files show under Documents.


Using a custom object

CompanyCam can create Projects from a custom object, like a Job, instead of an Account. Work through every section above, up to and including Connecting your CompanyCam account, before you start here.

Note: A custom object needs its own CompanyCam Project ID field and separate text fields for the address. The package only adds the Project ID field to Accounts.

Adding the fields

  1. In Object Manager, open your custom object, then click Fields & Relationships. (Only if you're creating a brand new object and it's tab)

  2. Click New, choose Text, then create a field named CompanyCam Project ID with a length of 50.

  3. Create separate text fields for Street, City, State, and Zip if your object doesn't have them already.

Giving your team access

  1. In Setup, search Permission Sets, click CompanyCam User, then click Clone. Name it something like CompanyCam User - Jobs, then click Save.

  2. Click Object Settings, choose your object, then click Edit.

  3. Set the tab to Visible, check Read, Create, and Edit, give Read and Edit access to each field, especially CompanyCam Project ID, then click Save.

  4. Click Manage Assignments and assign the new permission set to your Users.

Adding CompanyCam to the record page

  1. Open a record on your custom object, click the gear icon, then click Edit Page.

  2. Drag CompanyCam onto the page, then uncheck Auto Create Project for now.

  3. Fill in the settings using the table below, then check Auto Create Project if you want it.

  4. Click Save, then click Activation, Assign as Org Default, and Save.

  5. Open the record. Once the Project is created, the CompanyCam Project ID field fills in automatically, and your photos show on the record.

Setting

What to choose

Project Id Field

CompanyCam Project ID

Project Name Field

Your record's name field, for example, Job Name

Street 1 Field

Street

Street 2 Field

None

City Field

City

State Field

State

Postal Code

Zip


Common setup errors

Authentication fails with a redirect URI error

Your org hasn't been added to our allowlist yet. Send the Callback URL from your Doorkeeper auth provider to [email protected], as described in Requesting access and adding your credentials.
​

The Named Credential still says Pending

Check that the Client ID and Client Secret are saved on the Doorkeeper auth provider. Then open the CompanyCam Named Credential, click Edit, and click Save to authorize again.
​

The CompanyCam section is blank or shows a broken page icon

CompanyCamLightningComponent was added instead of CompanyCam. Edit the page, remove that component, then add CompanyCam.
​

Installation error related to the Orders object

Enable the Orders object and create a Record Type, as described in Preparing your Salesforce org.
​

A Visualforce page or link suddenly returns an error

This is usually caused by a Salesforce Hyperforce update affecting page URLs. Update any formula references to your Visualforce pages to this format: INSERT_YOUR_DOMAIN_HERE.vf.force.com/apex/Companycam_Project_[object]?id=. Contact Support if that doesn't resolve it.


FAQs

Why is a Project only created when someone opens the record?

Auto Create Project creates the Project when a record is opened, not when it's saved. To create Projects as soon as a record is saved, your Salesforce admin can set up a record-triggered Flow using the CompanyCam Create Project action.

Can this be installed in a sandbox?

This package can be installed in a Salesforce sandbox. Append /packaging/installPackage.apexp?p0=04tKg0000000S9L to your sandbox domain to install it, then send us the sandbox's Callback URL so we can add it to our allowlist.

Can this integrate with Custom Objects or FSL?

This integration can be installed on any object, including Custom Objects and Field Service Lightning (FSL). See Using a custom object above.

Can multiple CompanyCam accounts connect to one Salesforce org?

Multiple CompanyCam accounts can connect to a single Salesforce org. This is supported in Lightning using custom metadata records, plus some automation in your org to set the record's value. See Adding a second (or more) CompanyCam Connection for setup details.

How do I set this up in Salesforce Classic?

Salesforce Classic and improveit360 without Lightning follow a different path. Watch the Classic Setup Video. The steps in this article are for Lightning.

Will Documents, Checklists, and Reports sync to Salesforce?

Files from the Project reach Salesforce as a clickable PDF link. Documents, Checklists, and Reports aren't currently available in the Salesforce photo viewer. We'll share updates here as this changes.

Why am I seeing duplicate Projects?

Duplicate Projects usually mean the Project Id Field isn't mapped to CompanyCam Project ID. That field is how Salesforce remembers which Project belongs to the record, so if it's blank or pointing somewhere else, opening the record creates another Project. Edit the page, check the mapping, then clear the duplicates in CompanyCam.


💡 Need more help?
​Contact our Support team — we're here Monday through Friday.

The CompanyCam Community has real job-site examples, templates, and tips from crews using this every day. Jump in with a question or just browse.

Did this answer your question?