# CompanyCam: what the assistant can do

> Everything the assistant can do in CompanyCam by text: 10 actions, with example texts, the CompanyCam API call behind each one, and which ones ask first or can be undone.

Source: https://asktack.com/docs/actions/companycam/

In CompanyCam, the assistant can find a project, create a project, add photos, add a comment, see recent photos, add a checklist, tag a project or photos, update a project, add a to-do and list projects. You ask by text, in your own words.

**Status:** Built, not open yet. How to connect, permissions and limits: [CompanyCam](https://asktack.com/docs/integrations/companycam/).

| What it does | Asks first? | Undo |
|---|---|---|
| Find a project | No | – |
| Create a project | If unsure | 10 minutes |
| Add photos | If unsure | 10 minutes |
| Add a comment | If unsure | No |
| See recent photos | No | – |
| Add a checklist | If unsure | No |
| Tag a project or photos | If unsure | 10 minutes |
| Update a project | If unsure | 10 minutes |
| Add a to-do | If unsure | 10 minutes |
| List projects | No | – |

Asking first and undo follow the same rules for every tool: see [Confirmations and undo](https://asktack.com/docs/confirmations-and-undo/).

## Find a project

Looks up a project by name or jobsite address and replies with its address, photo count and link.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **CompanyCam API call:** `GET /public_api/v1/projects/search`
- **Action name:** `companycam.find_project`

**Example texts:**

- "do we have a CompanyCam project for the Hendersons?"
- "find the Oak St job in CompanyCam"
- "what's the CompanyCam link for 4410 Ridge Rd"

## Create a project

Creates a project for a jobsite so the crew can add photos. If one with the same name and address exists, it uses that one.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **CompanyCam API call:** `POST /public_api/v1/projects`
- **Action name:** `companycam.create_project`

**Example texts:**

- "start a CompanyCam project for 4410 Ridge Rd, Austin TX 78745"
- "new project Henderson roof at 12 Oak St Round Rock"
- "make a project in CompanyCam for the Lopez kitchen, 801 W 5th St, Austin"

## Add photos

Uploads the photos you text to a project, with an optional caption or tags.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **CompanyCam API call:** `POST /public_api/v1/projects/{id}/photos`
- **Action name:** `companycam.add_photos`

**Example texts:**

- "[3 photos] these are for the Henderson job"
- "[photo] add to 12 Oak St in CompanyCam"
- "[2 photos] before pics for Miller roof, north side"

## Add a comment

Adds a comment to a project, or to its latest photo, for the team to see.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** No. Change or remove it in the tool itself.
- **CompanyCam API call:** `POST /public_api/v1/projects/{id}/comments`
- **Action name:** `companycam.add_comment`

**Example texts:**

- "note on the Henderson project: gate code 4512"
- "comment on 12 Oak St: homeowner wants the old shingles hauled"
- "on that last photo: crack runs the whole length of the beam"

## See recent photos

Shows the latest photos on a project (or across all projects) with who took them, when, and a link.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **CompanyCam API call:** `GET /public_api/v1/projects/{id}/photos`
- **Action name:** `companycam.list_recent_photos`

**Example texts:**

- "what are the latest photos on the Henderson job?"
- "did Mike upload pics for 12 Oak St today"
- "show me the last 3 photos in CompanyCam"

## Add a checklist

Adds a checklist to a project, from one of your checklist templates or as a new blank list with a title.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** No. Change or remove it in the tool itself.
- **CompanyCam API call:** `POST /public_api/v1/projects/{id}/conditional_checklists`
- **Action name:** `companycam.create_checklist`

**Example texts:**

- "add the roof inspection checklist to the Henderson project"
- "start a final walkthrough checklist on 12 Oak St"
- "put a punch list checklist on Miller roof"

## Tag a project or photos

Tags a project, or its latest photos, like 'storm damage' or 'insurance'. Project tags can be undone; photo tags can't.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **CompanyCam API call:** `POST /projects/{project_id}/labels`
- **Action name:** `companycam.add_tags`

**Example texts:**

- "tag the Henderson project insurance claim"
- "label Miller roof storm damage and priority"
- "tag the last 3 photos on 12 Oak St before"

## Update a project

Renames a project, changes its jobsite address, or archives it (or brings it back from the archive).

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **CompanyCam API call:** `PATCH /projects/{id}`
- **Action name:** `companycam.update_project`

**Example texts:**

- "rename the Henderson project to Henderson Roof 2026"
- "the Miller job address is actually 4412 Ridge Rd"
- "archive the 12 Oak St project, we're done there"

## Add a to-do

Adds a to-do to a project's task list for the crew.

- **Asks before doing it?** Usually not. It asks first if it isn't sure what you meant, a name only roughly matches, or the request covers more than 5 records.
- **Can be undone?** Yes. Text "undo" within 10 minutes.
- **CompanyCam API call:** `POST /projects/{project_id}/project_tasks`
- **Action name:** `companycam.create_task`

**Example texts:**

- "add a to-do on the Henderson job: replace the cracked flashing"
- "todo for Miller roof - haul the dumpster Friday"
- "put 'touch up paint in the hallway' on the Lopez kitchen task list"

## List projects

Lists the projects in a city, street or ZIP, or the ones with the most recent photos.

- **Asks before doing it?** No. It only looks things up.
- **Can be undone?** Nothing to undo: it doesn't change anything.
- **CompanyCam API call:** `GET /projects`
- **Action name:** `companycam.list_projects`

**Example texts:**

- "what projects do we have in Round Rock?"
- "list our CompanyCam jobs on Ridge Rd"
- "which projects are active right now"

---

*This list is generated from the code that runs each action, so it's always current.*
