File contact sales form leads into Dynamics 365 without duplicates
Every contact sales form submission lands in Dynamics 365 as a clean lead, updating the record you already have instead of creating a second one.
Whenever someone submits our inbound contact sales form, I want this workflow to file the lead into Microsoft Dynamics 365 without ever creating a duplicate record. Trigger it by polling Google Forms for a new response on our contact sales form.
Start with the Google Forms Get Response operation to pull the full submission, and map the answers to first name, last name, email address, company name, phone number and the free text message the person wrote.
Before writing anything, check whether we already know this person. Run Dynamics 365 Query Records against the lead table with an OData filter matching the submitted email address, then run it again against the contact table with the same email filter. Run a third Query Records against the account table, filtering on the domain portion of the submitted email address, so we can tell whether the company is already a customer even when the individual is new to us.
If none of those lookups return a match, use Dynamics 365 Create Lead with the first name, last name, email, company and phone, and map the form's message into the description field.
If a lead or a contact already exists for that email address, do not create a second record. Use Dynamics 365 Update Record on the existing record instead. Refresh only the fields whose values actually changed, and append the new enquiry to the description field along with the submission date rather than overwriting what is already there.
When the account lookup matches an existing company, use Dynamics 365 Associate Records to link the new or updated lead to that account, so it routes to the territory owner who already manages that relationship.
Finish with the Slack Send a Message operation to post into our sales channel. The message should show the person's name and company, state clearly whether this was a brand new lead or an update to an existing record, note which account it was linked to when one matched, and list the answers they submitted.
Example output
What does this prompt do?
- Picks up every new submission to your contact sales form within minutes of someone pressing submit.
- Checks Dynamics 365 for an existing lead or contact with that email address before anything is written, so the same person is never filed twice.
- Creates a new lead when they are genuinely new, or refreshes the record you already have and adds their latest enquiry to the notes. If their company is already an account, the lead is linked to it so it lands in the right territory.
- Posts a message to your sales channel in Slack with the person's name, their company, whether they are new or already known, and the answers they submitted.
What do I need to use this?
- A Google account with access to the contact sales form you want to watch.
- A Microsoft Dynamics 365 account with permission to read and write leads, contacts and accounts.
- A Slack workspace and the channel where your sales team wants these alerts to land.
How can I customize it?
- Swap the form tool. The same workflow works with Fillout, Gravity Forms, Cognito Forms, WPForms or Squarespace Forms if you do not use Google Forms.
- Change which Slack channel gets the alert, or send it as a direct message to whoever owns inbound leads that week.
- Adjust which form answers map to which Dynamics 365 fields, and choose whether a repeat enquiry is appended to the existing notes or recorded separately.
- Turn off the company matching step if you would rather assign territory by hand.
FAQs
Will this create a duplicate if someone fills in the form twice?
What happens if the person is new but their company is already a customer?
Do I have to use Google Forms?
How quickly does a lead show up in Dynamics 365?
Can I control what the sales team sees in Slack?
Related templates
When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.
Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every Monday, rank the week's matches by expected demand, put the big ones on your venue calendar, and post a rota-ready summary to Slack.
Every Tuesday we pull your best new reviews, draft social captions, email testimonials and product page quotes, then stage them in Notion for approval.
Every weekday morning, unfulfilled orders get an address check: harmless typos fixed automatically, risky addresses held with a note to the customer.
Stop letting duplicate leads pile up in your CRM.
Capture every contact sales enquiry in Dynamics 365 as one clean record, linked to the right account, and tell your team the moment it lands.