Connect SmileReply to your CRM

SmileReply can send each new lead to your CRM as it arrives, and keep it up to date as the patient moves through their consultation. Your team works from the CRM they already use, and nobody has to copy details across by hand.

What gets sent

Each step of a patient's journey is sent as it happens. You choose which ones.

New submissionA patient sent their photos.
Consult sentYou sent them their consultation.
Consult viewedThey opened it.
Booking requestedThey asked to book, or opened your online booking page.
Outcome changedSomeone set an outcome, like booked or not interested.
Message receivedThey sent you a message.

Each one carries the patient's name, email and mobile, what they'd like to improve, and where they're up to. Once you've sent their consultation, it also includes the treatments you recommended, the price and time estimates, and links to their consultation.

What you need

Your CRM needs a way to receive data from another app. Look for an automation trigger called something like Inbound webhook, Incoming webhook or Catch hook. It gives you a web address to paste into SmileReply.

  • If your CRM has one: it connects directly.
  • If it doesn't: connect through a tool like Zapier, Make or n8n. It receives the lead from SmileReply and adds it to your CRM.

Connect your CRM

  1. In your CRM, create an automation that starts with an incoming webhook, and copy its web address.
  2. In SmileReply, go to Practice Settings and find Send leads to your CRM.
  3. Paste the address into Endpoint URL.
  4. Open Events and tick the steps you want sent.
  5. Press Save connection.
  6. Press Send test event. A test lead goes out within a minute, with made-up patient details.

Back in your CRM, use the test to set up what happens to each lead: create the contact, add it to a pipeline, or notify your team.

When you create the contact, set its source to SmileReply, so your team can see where every lead came from. You can type it straight into the source field. It doesn't need to come from SmileReply's data.

You can also tag each contact, for example smilereply. It's optional, but a tag makes your SmileReply leads easy to filter, and to use as the trigger for other automations.

Tip: Each lead says which step it is, in a field called event. Use it in your CRM to do something different for each step, like moving the lead along your pipeline.

Everything that's sent

Every step sends the same list of fields, so a mapping you build for one works for all of them. A field with nothing in it yet is sent empty, like the price before you've sent the consultation.

The patient

  • patient_first_name, patient_last_name and patient_name (the full name).
  • patient_email and patient_phone. The mobile is in international form, like +64271234567.
  • patient_concern: what they said they'd like to improve, in their own words.

Where they're up to

  • event: the step that just happened, like consult.sent.
  • stage: the furthest they've reached: new, sent, replied (you answered by text), viewed or booking_requested.
  • outcome: what your team set: booked, treatment_completed, not_interested or no_show. Empty until someone sets one.
  • submitted_at, sent_to_patient_at, viewed_at and booking_requested_at: when each happened.
  • booking_via: calendar when they went to your online booking page, empty when they used the booking form.
  • booking_preferred_time: the time they asked for on the booking form.

Their consultation

  • treatments (a list) and treatments_text (the same, as one line).
  • price_low and price_high as plain numbers, and price_text as the patient saw it, like "$7,500 – $9,500".
  • duration_text: the estimated treatment time, like "12 – 18 months".
  • consult_url and plan_url: the patient's own consultation and plan. Use these in messages to the patient, not for your team to click. Anyone who opens them without being signed in to SmileReply is treated as the patient, so it can mark the consultation viewed.
  • consult_preview_url and plan_preview_url: the same pages for your team. Opening these doesn't count as the patient viewing them.
  • dashboard_url: the patient in SmileReply, for your team to open.
  • photo_urls (a list) and photo_urls_csv (the same, comma separated): the patient's photos. These links stop working once the photos are deleted under your retention settings.

Other details

  • practice_name and practice_id: the location the patient chose. Useful in a group.
  • submission_id: SmileReply's number for this patient. It stays the same at every step, so you can use it to match updates to the right contact.
  • sent_at: when this update was sent.
  • has_records and record_count: whether the patient uploaded records from another clinic, like X-rays. The files themselves are never sent.

Check it's working

Open Delivery history on the card. It lists every lead sent and whether your CRM accepted it.

If your CRM is unavailable, SmileReply tries again five times over about nine hours. A lead your CRM never accepts stays in the history, so you can see what went wrong.

Groups

In a group, leads from every location go to the group's CRM, set up in Group Settings. A location can send its own leads somewhere else: on its Send leads to your CRM card, press Send this location's leads somewhere else, then connect it as above. See Group settings and location overrides.

Disconnect

Clear the Endpoint URL and press Save connection. Nothing more is sent.

For developers

Every request is signed, so whoever receives it can check it came from SmileReply. On the card, open For developers to see the signing secret and how to check the signature. Most CRMs can't check it and don't need it. If the secret is ever shared by mistake, press New secret.

Still stuck?

Message us from your dashboard and we’ll get back to you as soon as possible.

Contact support