{"product_id":"n8n-workflow-scrape-mmc-doctors-by-apc-year-to-google-sheets","title":"n8n Workflow: Scrape MMC Doctors by APC Year to Google Sheets","description":"\u003ch3\u003eScrape MMC MeRITS doctors by APC year and save the matches to Google Sheets—resume-safe\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow manually scrapes the MMC MeRITS registeredDoctor directory, filters doctors by a target APC year, and writes matching results to Google Sheets. It’s built to be rate-limited and resume from where it last stopped, so you can run it repeatedly without losing progress.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRun manually\u003c\/strong\u003e and set a \u003cstrong\u003etarget APC year\u003c\/strong\u003e plus a \u003cstrong\u003emaximum number of matches\u003c\/strong\u003e to collect per run.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eResume from saved progress\u003c\/strong\u003e by loading the last processed \u003cem\u003epage\u003c\/em\u003e and \u003cem\u003erow index\u003c\/em\u003e from n8n workflow static data.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRequest and parse MMC search results\u003c\/strong\u003e (MMC MeRITS registeredDoctor search): extract doctor IDs, row data, and total page count.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFetch each doctor’s detail page\u003c\/strong\u003e and extract fields such as:\n    \u003cul\u003e\n      \u003cli\u003efull name\u003c\/li\u003e\n      \u003cli\u003equalification\u003c\/li\u003e\n      \u003cli\u003eprovisional registration date\u003c\/li\u003e\n      \u003cli\u003eregistration number\u003c\/li\u003e\n      \u003cli\u003eAPC year\u003c\/li\u003e\n      \u003cli\u003eplace of practice\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eFilter by APC year\u003c\/strong\u003e: when the extracted APC year matches your configured year, the workflow appends or updates the doctor record in Google Sheets.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRate-limit and persist progress\u003c\/strong\u003e: after each doctor, it updates the saved page\/row state, waits briefly, and stops once the per-run match target is reached (otherwise it continues through pages).\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eMaintain an up-to-date Google Sheets roster of MMC MeRITS registered doctors filtered to a specific \u003cstrong\u003eAPC year\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eRun scheduled “data refresh” jobs in n8n while limiting daily volume and avoiding repeat work via resume state.\u003c\/li\u003e\n  \u003cli\u003eSupport internal reporting for SaaS operators or automation engineers who need structured directory data in Google Sheets.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGoogle Sheets\u003c\/strong\u003e via OAuth2 (select target spreadsheet and sheet for append\/update).\u003c\/li\u003e\n  \u003cli\u003eWorkflow nodes listed: \u003ccode\u003eif\u003c\/code\u003e, \u003ccode\u003eset\u003c\/code\u003e, \u003ccode\u003ecode\u003c\/code\u003e, \u003ccode\u003eno op\u003c\/code\u003e, \u003ccode\u003ewait\u003c\/code\u003e, \u003ccode\u003esticky note\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003eUses n8n \u003cem\u003estatic data\u003c\/em\u003e to store and reload the last processed page and row index for resume-safe scraping.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45916249751731,"sku":"N8N-18784","price":76.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/rTX53NCc_nz6KBDJzLjR_FWPSOy2T.png?v=1788013829","url":"https:\/\/buyflowscripts.com\/products\/n8n-workflow-scrape-mmc-doctors-by-apc-year-to-google-sheets","provider":"N8N Commerce","version":"1.0","type":"link"}