# Turn CompanyCam service tags into Salesforce cases and Slack alerts

> Whenever the field crew tags a jobsite photo with a service alert, open a Salesforce case and ping the service team in Slack.

- Workflow type: agent
- Services: CompanyCam, Salesforce, Slack
- Categories: Operations, Customer Support
- Published: 2026-07-17

## What it does

- Watches CompanyCam for photos tagged with your service-alert keywords like warranty, callback, punch list, or damage found.
- Pulls the photo, the project address and contact, and any crew comments so the full story lands in one place.
- Finds the matching customer account in Salesforce and opens a new case with a summary of what the crew flagged.
- Posts the photo, project address, tag, and a link to the case in your service team Slack channel so a field manager can respond immediately.
- Skips over tags that are not on your alert list and refuses to open a second case for a photo that already has one.

## What you'll need

- A CompanyCam admin login on a Pro, Premium, or Elite plan so we can subscribe to jobsite photo events.
- A Salesforce login that can search accounts and create cases.
- A Slack workspace and the channel your service team watches for callbacks.
- Your list of service-alert tag words (for example warranty, callback, punch list, damage found) so the workflow knows which ones matter.

## Prompt

Whenever a photo in CompanyCam gets tagged with something that signals a service issue (tags like warranty, callback, punch list, or damage found), fire this workflow to open a Salesforce case and ping the service team in Slack so a field manager can respond right away.

The trigger is a CompanyCam webhook subscribed to the photo.tag_added event. First, inspect the added tag and only continue if it matches the configured service-alert tag list. Treat that list as a customization knob; default it to warranty, callback, punch list, damage found. If the tag is not on the list, exit quietly without creating anything.

For each qualifying event, run the following steps:

- Call CompanyCam Retrieve Photo to get the image URL and description for the tagged photo.
- Call CompanyCam Retrieve Project on the photo's project to pull the jobsite address and the homeowner or primary contact.
- Call CompanyCam List Photo Comments to gather any crew notes attached to the photo.
- Run a Salesforce SOQL Query on the Account object to find the account that matches the project address or the homeowner name. If multiple candidates come back, pick the closest by address and keep the second-best in mind for the Slack note.
- Before creating anything, run a second Salesforce SOQL Query on Case filtered by a stable reference to the CompanyCam photo id (for example a custom field or a token embedded in the case subject or description). If a case already exists for that photo, skip the create step and just refresh the Slack thread if one is already there.
- Call Salesforce Create Case with a subject naming the tag and address, a description drafted from the photo description plus the crew comments, the matched Account (leave blank when no confident match), and a priority derived from the tag (damage and warranty escalate; punch list stays normal).
- Call Slack Send a Message to the service team channel with the photo image or URL, the project address, the tag that fired, a one-line summary, and a deep link to the newly created Salesforce case.

Reasoning guidance for the agent: decide which tag values should escalate versus be ignored based on the configured list; anything not on it is a no-op. Draft the case summary in the crew's voice, for example 'Warranty callback flagged on the roof at 123 Elm St. Crew note: seam popped after the last storm.' If Retrieve Project comes back without an owner or address, still open the case and call out the missing info in Slack so the field manager can fill it in. Never open a duplicate case for the same photo id, even if multiple alert tags fire on the same photo.

## How to customize

- Change the list of tag words that count as a service alert so it matches how your crews actually tag photos.
- Route different regions or crews to different Slack channels if callbacks are split by team.
- Adjust the case priority per tag so damage and warranty escalate faster than a punch list item.

## FAQ

### Does this fire on every photo tag or only certain ones?

Only the tags you list as service alerts trigger the workflow. Every other tag your crew adds is ignored, so Salesforce and Slack stay quiet unless there is actually something to act on.

### What if the crew adds two alert tags to the same photo?

The workflow checks whether a case already exists for that photo before it creates another one, so you will not end up with duplicate tickets even if multiple tags fire on the same image.

### Do we need a specific Salesforce edition?

Any Salesforce edition that lets you search accounts and create cases works. Most Professional, Enterprise, and Unlimited orgs are covered.

### Can we point the Slack alert at a specific channel?

Yes. You choose the channel during setup and you can change it any time. Regional teams often use one channel per crew or service manager.

### What happens if the photo does not match an account in Salesforce?

The workflow still opens the case using the project address and homeowner name from CompanyCam, and the Slack alert makes it easy for the field manager to attach the right account manually.

Use this prompt in General Input: https://www.generalinput.com/prompts/turn-companycam-service-tags-into-salesforce-cases-and-slack-alerts