{"id":282,"date":"2026-01-21T13:40:09","date_gmt":"2026-01-21T12:40:09","guid":{"rendered":"https:\/\/www.genexio.net\/blog\/?p=282"},"modified":"2026-01-21T15:23:57","modified_gmt":"2026-01-21T14:23:57","slug":"from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun","status":"publish","type":"post","link":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/","title":{"rendered":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p><strong>Note:<\/strong> I do not build software as my main job. I do it because I enjoy it. I like small wins: a clean import, a good AI score, a ready-to-send email. This article explains how I built my <em>customers_research<\/em> app using FileMaker as the core, plus a bit of Python and AI via API.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Why I built the customers_research app<\/h4>\n\n\n\n<p>I needed a practical way to find good B2B prospects for CNC machining services. Finding companies is easy. Finding the right ones is not.<\/p>\n\n\n\n<p>So I built a workflow that helps me to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>import lead lists from the web (trade fairs, directories, PDF\/Excel sources)<\/li>\n\n\n\n<li>avoid duplicates and keep research history visible<\/li>\n\n\n\n<li>browse and evaluate company websites directly inside FileMaker<\/li>\n\n\n\n<li>use AI to score leads and explain their relevance<\/li>\n\n\n\n<li>prepare emails (first contact and follow-up) and log every action<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">FileMaker is the core: database, UI, and logic<\/h4>\n\n\n\n<p>FileMaker is the foundation of the system. It stores leads, manages the process, and provides a fast and flexible user interface. It is also the tool I know best.<\/p>\n\n\n\n<p>A very practical feature: when I import a new list, <strong>contacts already present in the database are immediately highlighted in red<\/strong>. This is done using a <strong>Set Script Trigger<\/strong>, so the research history is visible at a glance: what is new, what was already evaluated, and what was already contacted.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Importing data by drag &amp; drop into a FileMaker container<\/h4>\n\n\n\n<p>The import process is intentionally simple. I just <strong>drag and drop a PDF or Excel file into a FileMaker container field<\/strong>.<\/p>\n\n\n\n<p>From there:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>FileMaker detects the file<\/li>\n\n\n\n<li>a script extracts or processes the content<\/li>\n\n\n\n<li>data is normalized and prepared for analysis<\/li>\n<\/ul>\n\n\n\n<p>This approach avoids complex import dialogs and keeps the workflow fast and intuitive.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Deduplication and history checks with ExecuteSQL<\/h4>\n\n\n\n<p>To keep the database clean, FileMaker checks if a company (or an email\/domain) already exists. For fast checks I often use <strong>ExecuteSQL<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Example (concept): check if an email already exists\nLet ( &#91;\n  _email = leads::email ;\n  _sql   = \"SELECT COUNT(*) FROM Contacts WHERE email = ?\" ;\n  _cnt   = ExecuteSQL ( _sql ; \"\" ; \"\" ; _email )\n] ;\n  Case ( GetAsNumber ( _cnt ) &gt; 0 ; \"EXISTS\" ; \"NEW\" )\n)<\/code><\/pre>\n\n\n\n<p>This logic supports both deduplication and the red-highlight visual feedback during list review.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Fast \u201chuman\u201d research with Find and Web Viewer<\/h4>\n\n\n\n<p>Automation is important, but I always want a quick human check.<\/p>\n\n\n\n<p>Inside FileMaker I can:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>use <strong>Find<\/strong> to filter leads by city, sector keywords, status, or score range<\/li>\n\n\n\n<li>open the company website directly in FileMaker using the <strong>Web Viewer<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ Example script steps (concept)\nSet Variable &#91; $url ; Value: leads::website ]\nSet Web Viewer &#91; Object Name: \"wv_site\" ; URL: $url ]\n<\/code><\/pre>\n\n\n\n<p>This allows me to scan a website quickly and decide whether the lead deserves AI analysis or direct contact.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Python for automation (a part I really enjoy)<\/h4>\n\n\n\n<p>Python is mainly used for automation:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>downloading website pages<\/li>\n\n\n\n<li>extracting relevant text<\/li>\n\n\n\n<li>detecting email addresses<\/li>\n<\/ul>\n\n\n\n<p>I am not a Python developer, but this is the part I really enjoy. AI helped me write, understand, and improve the code step by step.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import re\n\nemails = re.findall(\n    r\"&#91;A-Z0-9._%+-]+@&#91;A-Z0-9.-]+\\.&#91;A-Z]{2,}\",\n    page_text,\n    re.I\n)<\/code><\/pre>\n\n\n\n<p>Simple code, but very effective.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">What AI really does in this app<\/h4>\n\n\n\n<p>AI has a clear and limited role. It reads the website text and returns an evaluation.<\/p>\n\n\n\n<p>It does not decide for me. It provides structured output:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a score (0\u2013100)<\/li>\n\n\n\n<li>a category (strong match \/ possible \/ unclear \/ unlikely)<\/li>\n\n\n\n<li>a short explanation<\/li>\n<\/ul>\n\n\n\n<p>A simplified prompt example (conceptual):<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>analyze the company website text<\/li>\n\n\n\n<li>estimate the probability that the company may need external CNC machining services<\/li>\n\n\n\n<li>explain the reasoning briefly<\/li>\n\n\n\n<li>do not invent information<\/li>\n\n\n\n<li>return JSON with score, category, and reasoning<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Calling the AI API from FileMaker<\/h4>\n\n\n\n<p>AI calls are made directly from FileMaker.<\/p>\n\n\n\n<p>The typical flow is:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>build the JSON payload using FileMaker JSON functions (JSONSetElement)<\/li>\n\n\n\n<li>send the request with <strong>Insert from URL<\/strong> and cURL options<\/li>\n\n\n\n<li>parse the JSON response and store values in FileMaker fields<\/li>\n<\/ul>\n\n\n\n<p>Raw responses are saved in a log table, together with defensive checks for empty or invalid JSON.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Email workflow: prepared by AI, sent by FileMaker<\/h4>\n\n\n\n<p>When a lead is interesting enough, AI prepares the first contact email. I review it, optionally edit it, and send it using <strong>FileMaker\u2019s Send Mail<\/strong> function.<\/p>\n\n\n\n<p>The system already includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a standard email signature<\/li>\n\n\n\n<li>optional attachment support<\/li>\n\n\n\n<li>a second follow-up email prepared in advance<\/li>\n<\/ul>\n\n\n\n<p>If everything looks good, sending the email takes just one click.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Logging: every action goes into a dedicated table<\/h4>\n\n\n\n<p>Every step is logged:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>import source (trade fair, directory, PDF, Excel)<\/li>\n\n\n\n<li>deduplication status (new or existing)<\/li>\n\n\n\n<li>AI score, reasoning, and raw response<\/li>\n\n\n\n<li>email draft, send date\/time, follow-up status<\/li>\n<\/ul>\n\n\n\n<p>This builds a complete and reliable research history over time.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">From research lead to the official contacts database<\/h4>\n\n\n\n<p>When a company is confirmed as interesting, the lead is moved into the official FileMaker contacts database.<\/p>\n\n\n\n<p>From there:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>it enters a dedicated contacts list<\/li>\n\n\n\n<li>it can be used for future communications<\/li>\n\n\n\n<li>it becomes part of the company\u2019s long-term knowledge base<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Small technical wins, big satisfaction<\/h4>\n\n\n\n<p>Even small results are rewarding: a red highlight that immediately shows history, a clean ExecuteSQL check, a working API call, a good AI explanation, or an email ready to send.<\/p>\n\n\n\n<p>That is why I enjoy building tools like this: they are useful, but also genuinely fun.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Final thoughts<\/h4>\n\n\n\n<p><em>customers_research<\/em> is not a commercial product. It is a practical project built from curiosity, passion for code, and real business needs.<\/p>\n\n\n\n<p>FileMaker is the base, Python supports automation, and AI adds an intelligent layer for evaluation and communication. Step by step, it has become a system I actually use every day.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"286\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png\" alt=\"IMG 6828 472x1024\" class=\"wp-image-286\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"294\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-472x1024.png\" alt=\"IMG 6836 472x1024\" class=\"wp-image-294\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6836-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"289\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-472x1024.png\" alt=\"IMG 6832 472x1024\" class=\"wp-image-289\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6832-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"292\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-472x1024.png\" alt=\"IMG 6831 472x1024\" class=\"wp-image-292\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6831-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"293\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-472x1024.png\" alt=\"IMG 6829 472x1024\" class=\"wp-image-293\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6829-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"290\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-472x1024.png\" alt=\"IMG 6830 472x1024\" class=\"wp-image-290\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6830-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"291\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-472x1024.png\" alt=\"IMG 6833 472x1024\" class=\"wp-image-291\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6833-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"472\" height=\"1024\" data-id=\"288\" src=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-472x1024.png\" alt=\"IMG 6835 472x1024\" class=\"wp-image-288\" title=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\" srcset=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-472x1024.png 472w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-138x300.png 138w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-768x1665.png 768w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-709x1536.png 709w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-945x2048.png 945w, https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6835-scaled.png 1181w\" sizes=\"auto, (max-width: 472px) 100vw, 472px\" \/><\/figure>\n<\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Note: I do not build software as my main job. I do it because I enjoy it. I like small wins: a clean import, a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17,5,15,16],"tags":[],"class_list":["post-282","post","type-post","status-publish","format-standard","hentry","category-ai","category-filemaker","category-node-red","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog\" \/>\n<meta property=\"og:description\" content=\"Note: I do not build software as my main job. I do it because I enjoy it. I like small wins: a clean import, a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\" \/>\n<meta property=\"og:site_name\" content=\"My blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-21T12:40:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-21T14:23:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1181\" \/>\n\t<meta property=\"og:image:height\" content=\"2560\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"genexio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"genexio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\"},\"author\":{\"name\":\"genexio\",\"@id\":\"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a\"},\"headline\":\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\",\"datePublished\":\"2026-01-21T12:40:09+00:00\",\"dateModified\":\"2026-01-21T14:23:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\"},\"wordCount\":885,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a\"},\"image\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png\",\"articleSection\":[\"AI\",\"filemaker\",\"node-red\",\"python\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\",\"url\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\",\"name\":\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png\",\"datePublished\":\"2026-01-21T12:40:09+00:00\",\"dateModified\":\"2026-01-21T14:23:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage\",\"url\":\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png\",\"contentUrl\":\"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png\",\"width\":1181,\"height\":2560},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.genexio.net\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.genexio.net\/blog\/#website\",\"url\":\"https:\/\/www.genexio.net\/blog\/\",\"name\":\"My blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.genexio.net\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a\",\"name\":\"genexio\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g\",\"caption\":\"genexio\"},\"logo\":{\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g\"},\"sameAs\":[\"http:\/\/www.genexio.net\/blog\"],\"url\":\"https:\/\/www.genexio.net\/blog\/author\/genexio\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/","og_locale":"en_GB","og_type":"article","og_title":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog","og_description":"Note: I do not build software as my main job. I do it because I enjoy it. I like small wins: a clean import, a [&hellip;]","og_url":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/","og_site_name":"My blog","article_published_time":"2026-01-21T12:40:09+00:00","article_modified_time":"2026-01-21T14:23:57+00:00","og_image":[{"width":1181,"height":2560,"url":"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png","type":"image\/png"}],"author":"genexio","twitter_card":"summary_large_image","twitter_misc":{"Written by":"genexio","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#article","isPartOf":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/"},"author":{"name":"genexio","@id":"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a"},"headline":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)","datePublished":"2026-01-21T12:40:09+00:00","dateModified":"2026-01-21T14:23:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/"},"wordCount":885,"commentCount":0,"publisher":{"@id":"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a"},"image":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png","articleSection":["AI","filemaker","node-red","python"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/","url":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/","name":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun) - My blog","isPartOf":{"@id":"https:\/\/www.genexio.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage"},"image":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage"},"thumbnailUrl":"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-472x1024.png","datePublished":"2026-01-21T12:40:09+00:00","dateModified":"2026-01-21T14:23:57+00:00","breadcrumb":{"@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#primaryimage","url":"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png","contentUrl":"https:\/\/www.genexio.net\/blog\/wp-content\/uploads\/2026\/01\/IMG_6828-scaled.png","width":1181,"height":2560},{"@type":"BreadcrumbList","@id":"https:\/\/www.genexio.net\/blog\/2026\/01\/21\/from-web-lists-to-real-customers-building-my-customers_research-app-with-filemaker-python-and-ai-just-for-fun\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.genexio.net\/blog\/"},{"@type":"ListItem","position":2,"name":"From Web Lists to Real Customers: Building my customers_research App with FileMaker, Python, and AI (Just for Fun)"}]},{"@type":"WebSite","@id":"https:\/\/www.genexio.net\/blog\/#website","url":"https:\/\/www.genexio.net\/blog\/","name":"My blog","description":"","publisher":{"@id":"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.genexio.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/www.genexio.net\/blog\/#\/schema\/person\/e293425f2302a3a32a049864bf8cd02a","name":"genexio","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g","caption":"genexio"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/7eda1948b0cb52048b0ce1e60c0e9be821f2ad85632d822bd60187a9793428a6?s=96&d=mm&r=g"},"sameAs":["http:\/\/www.genexio.net\/blog"],"url":"https:\/\/www.genexio.net\/blog\/author\/genexio\/"}]}},"_links":{"self":[{"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/posts\/282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/comments?post=282"}],"version-history":[{"count":4,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/posts\/282\/revisions"}],"predecessor-version":[{"id":295,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/posts\/282\/revisions\/295"}],"wp:attachment":[{"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/media?parent=282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/categories?post=282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.genexio.net\/blog\/wp-json\/wp\/v2\/tags?post=282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}