Responding to Fake Reviews – Return of the Dentist

Earlier this month I ran an article 5 Tips for Responding (or Not) to “Fake” Reviews that described the terrible situation of a dentist whose personal life had become the subject of reviews. When we last left this saga, the dentist was not fairing well in the drama to clear his name. The post generated lots of comments and interestingly, the dentist that the post was about showed up and joined the discussion.

He took the discussion to heart, hired an extremely competent copywriter, removed his original response and came up with the following response to his reviewer:

Nov 14, 2010

Completely Unprofessional I had heard some good things about Dr. Anderson and decided to switch dentists. Biggest mistake I could have ever made. Not only did I have to wait 30 mins past my scheduled appointment, he walked past me in the lobby laughing with his front desk girls as if I wasn’t even there. His hygenist was mediocre at best. She smelled heavily of perfume and scratched my gums and just giggled about it. When Dr. Anderson finally graced me with his presents, I felt completely violated! He touched my shoulder enough times to make me feel uncomfortable. His line of questions about my personal life and what I like to do for fun was borderline indecent. All in all, if you want to be hit on and visually molested by your dentist, then this is the denist for you. Anyone else should walk way as fast as you can! Just a plain horrible experience.

4 out of 15 people found this review helpful. Was this review helpful? Yes – No – Flag as inappropriate

Response from the owner

All ethical dentists comply with the practice of ensuring that a female hygienist or assistant is always present during dental appointments, and that doors are kept wide open, precisely to prevent these kinds of situations and very damaging complaints. My practice upholds these standards to the letter. For several years running, I’ve had the honor of being voted Ashland’s Favorite Dentist, due to my patients’ appreciation of the excellent care they receive in my office, and in-coming patients may be 100% certain that they will receive ethical, professional, respectful care here. Due to the seriousness of the complaints in this review, my staff and I felt forced to attempt to inquire into the identity of this reviewer, and unfortunately, had to conclude that this very hurtful review is the result of a personal conflict. This is a shame, and we sincerely invite all potential in-coming patients to take a glance at the glowing reviews our office typically receives and also, to come into the office to see for themselves the professionalism and dignity of our practice and staff. We are ready to provide you with the exceptional dental care that has made us ‘Ashland’s Favorite’.

Flag as inappropriate

Jared R. Anderson DDS, PC – March 24, 2011

Verified owner

The standard advice in responding to negative reviews is to “own the problem”. However, if the review is fabricated that sometimes becomes next to impossible. Rather than alienating the reader with too much drama, the response calmly and cooly pointed out the Dentist’s standard policy. I thought this review response language did a masterful job of putting the responsibility in this situation back onto the reviewer without being a jerk nor divulging too much personal information. Yet it still managed to raise the very real possibility that the reviewer was motivated by a personal vendetta.

He has worked his way through the first issue. While there is no perfect response, he has made the absolute best of a situation over which he has no control. Now that he has honed his response he can move onto phase two of local reputation management…. review management.

What do you think? Think we can now convince the good dentist to embark a review management strategy to get some more reviews?

Related posts:

  1. 5 Tips for Responding (or Not) to “Fake” Reviews
  2. Responding to Negative Reviews – Your Prospects are the Real Audience
  3. Responding to Negative Reviews – Your Prospects are the Real Audience

Geospatial Revolution

If you are having any doubts that geography, geospatial technologies and all those spatial concepts developed throughout the centuries underpin almost every aspect of our everyday life, please have a look at this series of short videos. Produced and released by Pennsylvania State University under the banner of the Geospatial Revolution Project.

The mission of the Project is to expand public knowledge about the history, applications, related privacy and legal issues, and the potential future of location-based technologies.

Geospatial information influences nearly everything. Seamless layers of satellites, surveillance, and location-based technologies create a worldwide geographic knowledge base vital to solving myriad social and environmental problems in the interconnected global community. We count on these technologies to:

* fight climate change
* map populations across continents, countries, and communities
* track disease
* strengthen bonds between cultures
* assist first responders in protecting safety
* enable democracy
* navigate our personal lives…


The videos are a great testimony to the power of geospatial technologies, today at fingertips of almost any individual with access to the internet, mobile phone and/or GPS receiver. Whether used for your personal convenience or in business, maps are so much more than just pretty pictures… If you have a problem to solve, think maps for a better perspective!

Contact Sharing using Google Apps Script

You just created your own contact group in Google Apps Contact Manager and now you want to share this contact group with a few other coworkers (not the entire company). Over the last couple of years, our team at Dito often got this request from our customers. We decided to leverage Google Spreadsheets & Google Apps Script to allow sharing of user’s “personal contact group” with only a select group of coworkers.

How does it work?

The Apps Script implements a three step wizard. Upon completion of the wizard, the script sends the sharing recipients a link to open the spreadsheet to import the user’s recently shared contact group. The three steps in the wizard are.

  • Step 1 lists all the current contact groups in user’s account. The user can select the group he/she wants to share.
  • Step 2 allows user to select the colleagues with whom the user wants to share his/her personal contact group with.
  • Step 3 lets the user submit the sharing request.

    Designing using Apps Script Services

    Apps Script has various services which can be used to build the user interface, access the user’s contact list and send emails without the need to compile and deploy any code.

    1. Security (guide)

    Before a script can modify a user’s contacts, it needs to be authorized by that user. The authorization process takes place when a user executes the script for the first time. When a user makes a request to share his/her contacts, our script sends a link to the intended recipients by email. Upon clicking this link and the “Run Shared Contact Groups” button in the spreadsheet, the recipient will first need to grant authorization to execute the script. By clicking the “Run Shared Contacts Groups” button again, the script will proceed with creating the shared contact group.

    2. Spreadsheet Service

    In developing this script, there was a fair amount of data that needed to be exchanged between different users. We used Apps Script’s Spreadsheet Service for temporarily storing this data.

    // grab the group titled “Sales Department”
    var group = ContactsApp.getContactGroup(“Sales Department”);
    // from that group, get all of the contacts
    var contacts = group.getContacts();
    // get the sheet that we want to write to
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName(“Contact Data”);
    // iterate through contacts
    for (var i in contacts) {
    //save each of the values into their own columns
    sheet.getRange(i, 1, 1, 1).setValue(contacts[i].getGivenName());
    sheet.getRange(i, 2, 1, 1).setValue(contacts[i].getFamilyName());

    sheet.getRange(i, 13, 1, 1).setValue(contacts[i].getWorkFax());
    sheet.getRange(i, 14, 1, 1).setValue(contacts[i].getPager());
    sheet.getRange(i, 15, 1, 1).setValue(contacts[i].getNotes());
    }

    3. Ui Service

    Ui Services in Google Apps Scripts have an underlying Google Web Toolkit implementation. Using Ui Services in Apps Script, we easily built the user interface consisting of a 3 step wizard. In designing Ui using Ui Services, we used two main types of Ui elements – Layout Panels and Ui widgets. The layout panels, like FlowPanel, DockPanel, VerticalPanel, etc., allow you to organize the Ui widgets. The Ui widgets (TextBoxes, RadioButtons, etc.) are added to layout panels. Ui Services make it very easy to assemble and display a Ui interface very quickly.

    We built each of the components on their own, and then nested them by using the “add” method on the desired container. The UI widgets in the screenshot above were constructed by the code below:

    // create app container, chaining methods to set properties inline.
    var app = UiApp.createApplication().setWidth(600).setTitle(‘Share The Group’);
    // create all of the structural containers
    var tabPanel   = app.createTabPanel();
    var overviewContent = app.createFlowPanel();
    var step1Content = app.createFlowPanel();
    var step2Content = app.createFlowPanel();
    var step3Content = app.createFlowPanel();
    // create u/i widgets
    var selectLabel = app.createLabel(“Select one of your Contact Groups you want to share with others.”);
    var contactGroupDropdown = app.createListBox().setName(‘groupChooser’);
    // add all children to their parents
    overviewContent.add(selectLabel);
    overviewContent.add(contactGroupDropdown);
    tabPanel.add(overviewContent,”Overview”);
    tabPanel.add(step1Content,”Step 1″);
    tabPanel.add(step2Content,”Step 2″);
    tabPanel.add(step3Content,”Step 3″);
    app.add(tabPanel);
    // tell the spreadsheet to display the app we’ve created.
    SpreadsheetApp.getActiveSpreadsheet().show(app);

    Continuing with this pattern, we created a pretty complex design using the UI Services. The next step in building a useful user interface is actually building in event handlers for the UI Widgets. Event Handlers let Apps Script know which function you want to run when your script needs to respond to a given user interaction. The code below is an example of a DropDownHandler that we used in our script in Step 1 of the wizard.

    // create a function to execute when the event occurs. the
    // callback element is passed in with the event.
    function changeEventForDrowdown(el) {
    Browser.msgBox(“The dropdown has changed!”);
    }
    // create event handler object, indicating the name of the function to run
    var dropdownHandler = app.createServerChangeHandler(‘changeEventForDrowdown’);
    // set the callback element for the handler object.
    dropdownHandler.addCallbackElement(tabPanel);
    // add the handler to the “on change” event of the dropdown box
    contactGroupDropdown.addChangeHandler(dropdownHandler);

    4. Contacts Service

    When a user of the script chooses to share a specific group, the script saves that group contact data into a spreadsheet. When a sharing recipient clicks on the run button to accept the contacts share request, the script fetches the contact group data from the spreadsheet and uses theContacts Service to create contacts for the share recipients.

    var group = ContactsApp.createContactGroup(myGroupName);
    for (var i = 0; i < sheet.getLastRow(); i++) {
    var firstName = sheet.getRange(i, 1, 1, 1).getValue();
    var lastName = sheet.getRange(i, 2, 1, 1).getValue();
    var email = sheet.getRange(i, 3, 1, 1).getValue();
    var myContact = ContactsApp.createContact(firstName, lastName, email);
    // …
    // set other contact details
    // …
    myContact.addToGroup(group);
    }

    As this application shows, Apps Script is very powerful. Apps Script has the ability to create applications which allow you to integrate various Google and non-Google services while building complex user interfaces.

    You can find Dito’s Personal Contact Group Sharing Script hereClick here to view the video demonstration of this application. You can also find Dito Directory on the Google Apps Marketplace.