> For the complete documentation index, see [llms.txt](https://docs.distro.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.distro.so/workflows/crm-steps.md).

# CRM workflow steps

Use CRM steps to find the right record, preserve ownership, and write back the result of routing or booking.

Connect your CRM and review member identities first. See [CRM connections](/data-and-integrations/crm.md).

## Match before creating

Add **Match HubSpot Record** or **Match Salesforce Record**. Choose the object, connection, and matching values.

Use **Match** for an existing record and **No match** when the lookup finds nothing. Connect **Error** separately.

For a contact flow:

```
Match contact by email
  Match → Update existing contact
  No match → Create contact
  Error → Alert the team
```

Do not create a new record merely because the lookup failed. Use the match step's actual no-match outcome.

## Create or update records

Use the provider's **Create Record** step for a new record. Use **Update Record** with the record ID from an earlier match or create step.

Choose fields from the connected CRM's property catalog. Review required fields, data types, permissions, and the connection selected for each step.

A workflow value must match the destination type. Map CRM owner fields using the provider-specific owner value supported by the field picker.

## Update the owner at the right time

For a record-only flow, update the owner after **Assign from Queue → Assigned** or **Apply Rulebook → Resolved**.

For flexible queue scheduling, update the owner after **Show Scheduler → Booked**, when the final host is known. Writing the owner earlier can assign the record to someone other than the booked host.

Use connected identities when converting between a Distro member and a CRM owner.

## Log the meeting

Put meeting activities on **Booked** so they use the confirmed meeting's time, guest, and host.

HubSpot offers engagement and association steps. Salesforce offers record operations; the Task and Event shortcuts prefill the appropriate object. Complete the remaining fields for your CRM.

**Convert Salesforce Lead** has its own required choices. Use it only when your process calls for conversion, rather than as a generic owner-update action.

## Test with controlled records

Use simulation samples to check branches. Then use a sandbox or agreed test record for a live acceptance test.

Check the workflow step's delivery details and the CRM record itself. A completed routing step does not prove the CRM write succeeded.

Avoid duplicate logging when the event or booking link already syncs the same meeting activity through another configured integration.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.distro.so/workflows/crm-steps.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `build a script that syncs our docs to a CMS` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
