{"id":13630802,"url":"https://github.com/segmentio/frictionless-signup","last_synced_at":"2025-04-17T17:31:47.140Z","repository":{"id":66070558,"uuid":"73210988","full_name":"segmentio/frictionless-signup","owner":"segmentio","description":"Reduce friction and increase customer data in your online forms using Segment \u0026 Clearbit","archived":true,"fork":false,"pushed_at":"2023-04-09T23:16:18.000Z","size":37,"stargazers_count":85,"open_issues_count":0,"forks_count":11,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-25T05:35:21.384Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/segmentio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-08T17:37:03.000Z","updated_at":"2024-09-23T18:37:55.000Z","dependencies_parsed_at":"2024-01-17T00:28:05.039Z","dependency_job_id":"50c079e4-5d72-49a7-b5e9-11043b5dd7fa","html_url":"https://github.com/segmentio/frictionless-signup","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segmentio%2Ffrictionless-signup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segmentio%2Ffrictionless-signup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segmentio%2Ffrictionless-signup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/segmentio%2Ffrictionless-signup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/segmentio","download_url":"https://codeload.github.com/segmentio/frictionless-signup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249360011,"owners_count":21257150,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T22:01:59.682Z","updated_at":"2025-04-17T17:31:46.829Z","avatar_url":"https://github.com/segmentio.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# Frictionless Signup\n\u003cp style=\"text-align:center\"\u003e\u003cimg src=\"http://g.recordit.co/bvOrncPN5n.gif\"\u003e\u003c/p\u003e\n\n## Overview\nFrictionless Signup is Segment’s open-source project to enable the auto-population of form fields with enriched data from Clearbit and Madkudu.\n\nTo get started, create a form on your website that accepts and email address.  Then add the JavaScript in this repo.  In a nutshell, you will hit Clearbit's API with the email address, then use the response payload to prefill the remaining form fields.  You can also append the firmographic info (i.e. info related to the person and firm) to your Segment `analytics.identify()` call so that you have a much richer profile of your customer.\n\n## Purpose\nThe purpose of Frictionless Signup is to reduce the amount of effort in submitting online forms, without sacrificing rich data about potential customers that marketers, analysts, and product managers might want to use for personalization, sales efficiency, and analysis purposes.\n\n## How it works\nYou can see the form in action [here](#).\n\n## Prerequisites\nYou will need a [Segment account](https://segment.com/signup), a [Clearbit account](https://dashboard.clearbit.com/signup), and a [Madkudu account](https://app.madkudu.com/signup?plan=frictionless) for this.\n\nWe also advise reading this How-To Guide as a more complete walkthrough of this project at Segment.\n\n## How it works\n**Step 1:** Accept an Email Address\n\n**Step 2:** Listen for changes to email form field JavaScript to Listen for Email Field Changes\n\n**Step 3:** HTTP request to the server with the email address\n\n**Step 4:** Query the Clearbit API with the email address\n\n**Step 5:** Prefill remaining form fields with response payload from Clearbit\n\n## How to run locally\n1. In a terminal, go to 'backend' directory and run `npm install` there.\n2. Run `CLEARBIT_API_KEY=xxx MADKUDU_API_KEY=yyy node app.js` and keep this terminal open: you're now running a proxy server running on local using port 3000. It will relay the calls from your webpage to Clearbit and MadKudu's API services.\n3. Open another terminal, go to the 'front' directory, and do a `npm install`.\n4. Run `node node_modules/browserify/bin/cmd.js index.js -o bundle.js` to assemble a `bundle.js` file which will be used in the demo html page.\n5. Open `index.html` in your file browser to open the webpage.\n6. Type an email address in the first field.\n7. You will see the form automatically filled up!\n\n# API Backend\n\n[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy)\n\n\n## Example of Clearbit API response for email enrichment\nUsing the Node library by clearbit and calling `clearbit.Enrichment.find({ email: ‘alex@example.com’ })`, you can expect a response from their server that looks similar to:\n```js\n    {\n      \"person\": {\n        \"id\": \"a0dd5de3-b1ff-449d-85ab-4b2ffdfdca53\",\n        \"name\": {\n          \"fullName\": \"Alex Pruce\",\n          \"givenName\": \"Alex\",\n          \"familyName\": \"Pruce\"\n        },\n        \"email\": \"alex@example.com\",\n        \"location\": \"San Francisco, CA, US\",\n        \"employment\": {\n          \"domain\": \"example.com\",\n          \"name\": \"Example\",\n          \"title\": \"Digital Brand and Content Lead\",\n          \"role\": \"marketing\",\n          \"seniority\": \"manager\"\n        },\n      },\n      \"company\": {\n        \"id\": \"3f5d6a4e-c284-4f78-bfdf-7669b45af907\",\n        \"name\": \"Example\",\n        \"legalName\": \"Example Technologies Inc.\",\n        \"domain\": \"example.com\",\n        \"domainAliases\": [\n          \"example.org\"\n        ],\n        \"url\": \"https://www.example.com\",\n        \"metrics\": {\n          \"alexaUsRank\": 358,\n          \"alexaGlobalRank\": 730,\n          \"googleRank\": null,\n          \"employees\": 20313,\n          \"marketCap\": null,\n          \"raised\": 106000000,\n          \"annualRevenue\": 1500000000\n        },\n      },\n    }\n```\n\n\n## Contributor list\nThank you  [Guillaume Cabane](https://github.com/guillaumecabane),[Yanael Barbier](https://github.com/st3w4r), [Gilles Bertaux](https://github.com/gillesbertaux), [Ben Hoffman](https://github.com/benjaminhoffman)\n\n## Credits, Inspiration, Alternatives\nThis project was originally inspired by a similar project of Guillaume Cabane while he was CMO of Mention in Paris. The project was led by Gilles Bertaux and developed by Yanael Barbier. At Segment, in his capacity of VP Growth, Guillaume used Frictionless Signup to increase signup conversions and high-quality leads.  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegmentio%2Ffrictionless-signup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsegmentio%2Ffrictionless-signup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsegmentio%2Ffrictionless-signup/lists"}