{"id":277,"date":"2026-08-03T02:25:27","date_gmt":"2026-08-02T20:55:27","guid":{"rendered":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/"},"modified":"2026-08-03T02:25:27","modified_gmt":"2026-08-02T20:55:27","slug":"import-contact-form-7-entries-to-gravity-forms","status":"publish","type":"post","link":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/","title":{"rendered":"How to Import Contact Form 7 Entries into Gravity Forms"},"content":{"rendered":"<p>If you have landed here you are probably mid-migration: the site is moving from Contact Form 7 to Gravity Forms, the new forms are built, and you want the old submissions in the new <strong>Entries<\/strong> screen. First, an uncomfortable fact that trips up almost everyone searching for this: <strong>Contact Form 7 does not store entries at all by default.<\/strong> It builds an email, hands it to WordPress, and forgets the submission happened. There is no <code>wp_cf7_entries<\/code> table waiting to be dumped.<\/p>\n<p>So the real question is not &#8220;how do I import CF7 entries into Gravity Forms&#8221; \u2014 it is &#8220;where, if anywhere, did my submissions get stored?&#8221; Answer that and the rest is mechanical. There is a longer explanation in <a href=\"https:\/\/jnkplugins.com\/blog\/does-contact-form-7-store-data\/\">does Contact Form 7 store data?<\/a>, but the short version above decides everything that follows.<\/p>\n<h2>Step 1: diagnose which situation you are actually in<\/h2>\n<p>There are three realistic scenarios. Check them in this order, because the first one you match is the one you work with.<\/p>\n<h3>Scenario A \u2014 you had Flamingo installed<\/h3>\n<p>Flamingo is the companion plugin from CF7&#8217;s own author. If it was active, your submissions are sitting in WordPress as a custom post type called <code>flamingo_inbound<\/code>, with each field stored in post meta prefixed <code>_field_<\/code>. Look in the admin sidebar for <strong>Flamingo &rarr; Inbound Messages<\/strong>. If you see rows there, you have data and a clean path forward.<\/p>\n<p>One caveat: Flamingo only captured submissions made <em>while it was active<\/em>. If you installed it in March, nothing from February exists. Check the oldest message date before promising anyone a complete history.<\/p>\n<h3>Scenario B \u2014 you used a CF7 database add-on<\/h3>\n<p>Plugins like Contact Form CFDB7 write to their own table \u2014 typically <code>wp_db7_forms<\/code> \u2014 storing the whole submission as one serialized PHP blob. Recoverable, but the export step means unserializing before you get anything CSV-shaped.<\/p>\n<h3>Scenario C \u2014 you have nothing but email<\/h3>\n<p>No Flamingo, no add-on. In that case there is no database to export from and no honest way to reconstruct a complete entry set. We would rather say that plainly than sell you a workflow that quietly loses half your data.<\/p>\n<p>What you <em>can<\/em> salvage: export the mailbox folder that received the notifications (most clients export <code>.mbox<\/code> or <code>.eml<\/code>; Gmail does it via Google Takeout). CF7 notifications follow a fixed template, so if it never changed you can parse them with reasonable accuracy. It falls apart on multi-line message fields, forwarded threads, and notifications that bounced or were spam-filtered. Treat the result as an archive for reference, not a faithful entry table.<\/p>\n<h2>Step 2: get the old entries out to CSV<\/h2>\n<p><strong>From Flamingo.<\/strong> Select the messages on the Inbound Messages screen and choose <strong>Export<\/strong>: you get one row per submission. It is basic \u2014 it exports what it stored, in the column order it likes \u2014 but it is trustworthy. For finer control over columns or date formatting, our walkthrough of <a href=\"https:\/\/jnkplugins.com\/blog\/export-contact-form-7-entries-csv\/\">exporting Contact Form 7 entries to CSV<\/a> covers the options.<\/p>\n<p><strong>From a database add-on.<\/strong> CFDB7 ships its own per-form export button, which is the easiest route. If it chokes on a large table, query the table directly \u2014 but remember the serialized column. A small WP-CLI script that runs <code>maybe_unserialize()<\/code> over each row and writes <code>fputcsv()<\/code> output beats a generic phpMyAdmin export, which will hand you raw <code>a:7:{s:4:\"name\"...}<\/code> strings.<\/p>\n<blockquote><p>Whatever the source, open the CSV in a text editor before you go further. You are checking for three things: a consistent column count on every row, dates in one format rather than three, and no stray line breaks inside message fields that have broken the row structure.<\/p><\/blockquote>\n<h2>Step 3: import into Gravity Forms<\/h2>\n<p>Here is the second uncomfortable fact: <strong>Gravity Forms has no native CSV entry importer.<\/strong> It exports entries beautifully and imports nothing. So you pick one of three routes.<\/p>\n<table>\n<tr>\n<th>Route<\/th>\n<th>Good for<\/th>\n<th>Pros<\/th>\n<th>Cons<\/th>\n<\/tr>\n<tr>\n<td>Gravity Forms CLI add-on (<code>wp gf entry create<\/code>)<\/td>\n<td>Anyone comfortable on the command line<\/td>\n<td>Official, free with your licence, scriptable, no extra plugin on the front end, easy to re-run after a bad batch<\/td>\n<td>Requires WP-CLI and SSH; you write the loop that reads the CSV yourself<\/td>\n<\/tr>\n<tr>\n<td>Third-party entry-import add-on<\/td>\n<td>Non-technical site owners, one-off migrations<\/td>\n<td>Point-and-click column mapping, previews before committing, handles the entry meta for you<\/td>\n<td>Usually paid; mapping UIs vary in quality; another plugin to maintain or remove afterwards<\/td>\n<\/tr>\n<tr>\n<td>Custom script using <code>GFAPI::add_entry()<\/code><\/td>\n<td>Messy or unusual source data<\/td>\n<td>Total control over parsing, transformation and field IDs; can set the original date directly<\/td>\n<td>You own the bugs; needs a real staging environment and care with large batches<\/td>\n<\/tr>\n<\/table>\n<p>All three ultimately do the same thing: build an entry array keyed by Gravity Forms <strong>field IDs<\/strong> and hand it to the API. Which brings us to the part that actually costs people time.<\/p>\n<h2>Field mapping: where migrations go wrong<\/h2>\n<p>Gravity Forms does not identify fields by name. It identifies them by numeric ID, and complex fields use decimal sub-IDs. Open your form, note the ID of each field (the editor shows it, or check the URL when editing a field), and write the mapping down before you touch any code.<\/p>\n<ul>\n<li><strong>Names and addresses.<\/strong> A Name field is not <code>4<\/code> \u2014 it is <code>4.3<\/code> for first and <code>4.6<\/code> for last, and an Address spreads across <code>5.1<\/code> to <code>5.6<\/code>. If CF7 had a single &#8220;your-name&#8221; input, decide whether to split it or map it to a plain text field; naive splitting on the first space mangles compound surnames.<\/li>\n<li><strong>Checkboxes and multi-selects.<\/strong> CF7 stored these as a comma-separated string. Gravity Forms wants one array key per choice (<code>7.1<\/code>, <code>7.2<\/code>, <code>7.3<\/code>), and the value must match the choice <em>value<\/em> exactly, not the label. Mismatches import silently as blanks.<\/li>\n<li><strong>Dates.<\/strong> Gravity Forms stores dates as <code>Y-m-d<\/code> whatever display format you picked. Normalise every date column first, and watch for <code>d\/m\/Y<\/code> versus <code>m\/d\/Y<\/code> ambiguity.<\/li>\n<li><strong>File uploads.<\/strong> Gravity Forms stores a <em>URL<\/em>, not the file. Copy the physical files from the CF7 upload folder into the Gravity Forms uploads directory first, then import the resulting URLs \u2014 otherwise you get a tidy table of dead links.<\/li>\n<li><strong>Empty fields.<\/strong> Omit them rather than importing empty strings; it keeps the entry list and conditional exports cleaner.<\/li>\n<\/ul>\n<h3>Preserve the original submission date<\/h3>\n<p>By default every imported entry gets <em>today&#8217;s<\/em> date, destroying the one piece of context that made the archive worth keeping. Set <code>date_created<\/code> explicitly, as <code>Y-m-d H:i:s<\/code> in <strong>UTC<\/strong> \u2014 Gravity Forms stores UTC and converts for display, so local time shifts every entry by your timezone offset. Convert first, then spot-check a few entries in the admin against the original CSV.<\/p>\n<h2>Test on staging first \u2014 genuinely<\/h2>\n<p>Entry imports are not reversible. There is no &#8220;undo import&#8221;; cleaning up a bad run means deleting entries by ID or restoring a backup. Run it on a staging copy, import ten rows before ten thousand, and check those ten in the admin UI \u2014 not just the database. Then back up production and repeat.<\/p>\n<p>Also decide whether notifications should fire. They should not. Both the CLI and <code>GFAPI::add_entry()<\/code> skip notifications by default, but disable any custom entry-creation hooks for the duration \u2014 emailing three years of old contacts a &#8220;thanks for your submission&#8221; is a memorable way to end a migration. The same principles apply to any form-to-form move; we collected them in our guide to <a href=\"https:\/\/jnkplugins.com\/blog\/migrate-form-entries-between-plugins\/\">migrating form entries between plugins<\/a>.<\/p>\n<h2>The real lesson: don&#8217;t end up here again<\/h2>\n<p>Every painful version of this migration has the same root cause \u2014 the form plugin was never storing submissions, and nobody noticed until the data was needed. Gravity Forms does store entries, so switching fixes it going forward. But if you run several form plugins across several sites, it helps to have storage that does not depend on which builder you happen to use this year.<\/p>\n<p>Full disclosure: our own free plugin, <a href=\"https:\/\/jnkplugins.com\/entryvault\/\">EntryVault<\/a>, captures and stores entries from 11 form builders including both Contact Form 7 and Gravity Forms, keeping every submission in one place regardless of which plugin produced it. It will not recover submissions you never saved \u2014 nothing will \u2014 but it means the next migration is an export, not an archaeology project.<\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Can I import Contact Form 7 entries into Gravity Forms if I never installed Flamingo?<\/h3>\n<p>Not from the database, because Contact Form 7 never stored them. Your only source is the notification emails that were sent at the time. You can export that mailbox and parse the messages into a CSV, but the result will be incomplete \u2014 bounced or spam-filtered notifications, changed email templates and multi-line message fields all cause gaps. Treat it as a partial archive rather than a true entry history.<\/p>\n<h3>Does Gravity Forms have a built-in CSV entry importer?<\/h3>\n<p>No. Gravity Forms can export entries to CSV but cannot import them natively. The three practical routes are the official Gravity Forms CLI add-on, a third-party entry-import add-on, or a custom script calling <code>GFAPI::add_entry()<\/code>. All three require you to map your CSV columns onto Gravity Forms numeric field IDs.<\/p>\n<h3>How do I keep the original submission dates instead of the import date?<\/h3>\n<p>Set the <code>date_created<\/code> value explicitly on each entry, formatted as <code>Y-m-d H:i:s<\/code> in UTC. Gravity Forms stores dates in UTC and converts them for display, so if your source data uses local time you must convert it first, or every entry will be offset by your timezone. Verify a few imported entries against the original CSV before running the full batch.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Can I import Contact Form 7 entries into Gravity Forms if I never installed Flamingo?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Not from the database, because Contact Form 7 never stored them. Your only source is the notification emails that were sent at the time. You can export that mailbox and parse the messages into a CSV, but the result will be incomplete \u2014 bounced or spam-filtered notifications, changed email templates and multi-line message fields all cause gaps. Treat it as a partial archive rather than a true entry history.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Does Gravity Forms have a built-in CSV entry importer?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"No. Gravity Forms can export entries to CSV but cannot import them natively. The three practical routes are the official Gravity Forms CLI add-on, a third-party entry-import add-on, or a custom script calling GFAPI::add_entry(). All three require you to map your CSV columns onto Gravity Forms numeric field IDs.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"How do I keep the original submission dates instead of the import date?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Set the date_created value explicitly on each entry, formatted as Y-m-d H:i:s in UTC. Gravity Forms stores dates in UTC and converts them for display, so if your source data uses local time you must convert it first, or every entry will be offset by your timezone. Verify a few imported entries against the original CSV before running the full batch.\"\n      }\n    }\n  ]\n}\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you have landed here you are probably mid-migration: the site is moving from Contact Form 7 to Gravity Forms, the new forms are built, and \u2026<\/p>\n","protected":false},"author":1,"featured_media":278,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog<\/title>\n<meta name=\"description\" content=\"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog\" \/>\n<meta property=\"og:description\" content=\"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/\" \/>\n<meta property=\"og:site_name\" content=\"JnK Plugins Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-02T20:55:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Suresh K Meena\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Suresh K Meena\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/\"},\"author\":{\"name\":\"Suresh K Meena\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#\\\/schema\\\/person\\\/601d025989fe7e0c285dd7fff36d9feb\"},\"headline\":\"How to Import Contact Form 7 Entries into Gravity Forms\",\"datePublished\":\"2026-08-02T20:55:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/\"},\"wordCount\":1524,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cf7-to-gravity.png\",\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/\",\"name\":\"Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cf7-to-gravity.png\",\"datePublished\":\"2026-08-02T20:55:27+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#\\\/schema\\\/person\\\/601d025989fe7e0c285dd7fff36d9feb\"},\"description\":\"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cf7-to-gravity.png\",\"contentUrl\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/08\\\/cf7-to-gravity.png\",\"width\":1200,\"height\":630,\"caption\":\"Illustration for migrating Contact Form 7 entries to Gravity Forms\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/import-contact-form-7-entries-to-gravity-forms\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Import Contact Form 7 Entries into Gravity Forms\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/\",\"name\":\"JnK Plugins Blog\",\"description\":\"Guides, comparisons, and tutorials for our WordPress plugins\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/#\\\/schema\\\/person\\\/601d025989fe7e0c285dd7fff36d9feb\",\"name\":\"Suresh K Meena\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g\",\"caption\":\"Suresh K Meena\"},\"description\":\"Suresh has been building web apps for over 15 years and is the founder of JnK Plugins, where he makes honest, no-bloat WordPress tools that keep your data in your own hands. Away from the keyboard he is usually at a chessboard, thinking a few moves ahead \u2014 and he is always ready to learn something new.\",\"sameAs\":[\"https:\\\/\\\/jnkplugins.com\"],\"url\":\"https:\\\/\\\/jnkplugins.com\\\/blog\\\/author\\\/suresh\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog","description":"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.","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:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/","og_locale":"en_US","og_type":"article","og_title":"Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog","og_description":"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.","og_url":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/","og_site_name":"JnK Plugins Blog","article_published_time":"2026-08-02T20:55:27+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png","type":"image\/png"}],"author":"Suresh K Meena","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Suresh K Meena","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#article","isPartOf":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/"},"author":{"name":"Suresh K Meena","@id":"https:\/\/jnkplugins.com\/blog\/#\/schema\/person\/601d025989fe7e0c285dd7fff36d9feb"},"headline":"How to Import Contact Form 7 Entries into Gravity Forms","datePublished":"2026-08-02T20:55:27+00:00","mainEntityOfPage":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/"},"wordCount":1524,"commentCount":0,"image":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#primaryimage"},"thumbnailUrl":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png","articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/","url":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/","name":"Import Contact Form 7 Entries into Gravity Forms - JnK Plugins Blog","isPartOf":{"@id":"https:\/\/jnkplugins.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#primaryimage"},"image":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#primaryimage"},"thumbnailUrl":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png","datePublished":"2026-08-02T20:55:27+00:00","author":{"@id":"https:\/\/jnkplugins.com\/blog\/#\/schema\/person\/601d025989fe7e0c285dd7fff36d9feb"},"description":"CF7 stores nothing by default. Work out what you actually have \u2014 Flamingo, a database add-on, or just email \u2014 then map it into Gravity Forms.","breadcrumb":{"@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#primaryimage","url":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png","contentUrl":"https:\/\/jnkplugins.com\/blog\/wp-content\/uploads\/2026\/08\/cf7-to-gravity.png","width":1200,"height":630,"caption":"Illustration for migrating Contact Form 7 entries to Gravity Forms"},{"@type":"BreadcrumbList","@id":"https:\/\/jnkplugins.com\/blog\/import-contact-form-7-entries-to-gravity-forms\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jnkplugins.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Import Contact Form 7 Entries into Gravity Forms"}]},{"@type":"WebSite","@id":"https:\/\/jnkplugins.com\/blog\/#website","url":"https:\/\/jnkplugins.com\/blog\/","name":"JnK Plugins Blog","description":"Guides, comparisons, and tutorials for our WordPress plugins","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jnkplugins.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/jnkplugins.com\/blog\/#\/schema\/person\/601d025989fe7e0c285dd7fff36d9feb","name":"Suresh K Meena","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a4697e28623a48b2ee5ce631fb355d9e2dcc08a7ffb793cc5dd2885fe53dc4b2?s=96&d=mm&r=g","caption":"Suresh K Meena"},"description":"Suresh has been building web apps for over 15 years and is the founder of JnK Plugins, where he makes honest, no-bloat WordPress tools that keep your data in your own hands. Away from the keyboard he is usually at a chessboard, thinking a few moves ahead \u2014 and he is always ready to learn something new.","sameAs":["https:\/\/jnkplugins.com"],"url":"https:\/\/jnkplugins.com\/blog\/author\/suresh\/"}]}},"_links":{"self":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/posts\/277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/comments?post=277"}],"version-history":[{"count":0,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/posts\/277\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/media\/278"}],"wp:attachment":[{"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/media?parent=277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/categories?post=277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jnkplugins.com\/blog\/wp-json\/wp\/v2\/tags?post=277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}