Brand monitoring: comment on your dashboard. See your quote

How-To

Export Facebook Comments in Order — Download Every Comment Oldest First to CSV & Excel (2026)

By Sarayut L., Founder, ZocialCommentNovember 9, 20269 min read
Export Facebook Comments in Order — Download Every Comment Oldest First to CSV & Excel (2026)

Export Facebook comments now

Free — first 100 comments of any post, no signup. CSV, Excel & JSON.

To export Facebook comments in order, oldest first, you need two things Facebook itself does not give you: every comment in one file, and the exact time each one was written. This guide shows how to download a post's comments with a to-the-second timestamp, sort them into true posting order in Excel or Google Sheets, and read the result as a first-come, first-served queue. It is written for the people who need this most: shops that take orders in the comments, live sellers, and anyone running "first ten to comment win" promotions.

Why the comment list on Facebook is never a queue

Open a busy post and the comments you see are not in the order people wrote them. Facebook defaults to Most relevant, a ranked view that lifts comments from friends, comments with reactions and comments with replies to the top, and hides others behind "View more". Switching to Newest helps, but it runs the wrong way for a queue (latest first) and loads in pages, so on a post with a few hundred comments you are scrolling and clicking for minutes. All comments removes the filtering but still is not a clean, time-ordered list you can work from.

Meta explains that feed and comment ranking is driven by predicted interest, not chronology, in its ranking and content overview. That is the right design for scrolling. It is the wrong one when the comment itself is an order and the person who wrote first should get the stock.

What the export gives you to rebuild the order

Paste the post link at the Facebook comment exporter and every public comment comes back as one row. The columns that matter for ordering are:

  • created_at: the moment the comment was posted, in UTC, to the second, for example 2026-11-08T05:36:53.000Z.
  • author and author_id: the commenter's display name and their numeric Facebook user ID, so a buyer who changes their name is still the same buyer.
  • text: the comment exactly as written, emoji and line breaks included.
  • id and reply_to_id: the comment's own ID and, for a reply, the ID of the comment it answers.

The rows arrive in the order Facebook served them, not sorted by time. That is deliberate: it keeps the file identical to what the platform returned. Putting it in time order is a single sort, and the next section shows it.

Sorting the file oldest first

In Excel

  1. Download the Excel (.xlsx) file rather than CSV. Excel keeps long IDs as text in the .xlsx, while a double-clicked CSV can round them (more on that in our guide to exporting Facebook commenter user IDs).
  2. Click any cell in the table, then open Data → Sort.
  3. Tick "My data has headers", choose created_at, and sort A to Z.

In Google Sheets

  1. Import the file with File → Import, or open the .xlsx directly from Drive.
  2. Select the data, then Data → Sort range → Advanced range sorting options, tick "Data has header row", and sort by created_at A → Z.
  3. If you prefer a live, read-only view, the SORT function does the same on another tab: =SORT(Comments!A2:T, 6, TRUE), where 6 is the position of created_at.

You do not need to convert the timestamps first. They are ISO 8601 text: year, month, day, hour, minute, second, always the same width. Text sorting and time sorting give the same result.

Reading the times in your own clock

The one thing that trips sellers up is the time zone. created_at is UTC, so a customer in Jakarta who commented at 12:36 shows up as 05:36. For order taking that looks like a bug. It is not; the order is still right. To display local time, add a helper column next to it:

=DATEVALUE(LEFT(F2,10)) + TIMEVALUE(MID(F2,12,8)) + 7/24

Format the column as date and time. Replace 7/24 with your own offset: 8/24 for Malaysia, Singapore and the Philippines, 7/24 for Thailand, Vietnam and Western Indonesia, -5/24 for US Eastern in winter. If your country has daylight saving time, use the offset in force on the day of the sale.

Turning an order post into a first-come, first-served list

Once the file runs oldest first, row one is the first customer. A few rules make the list fair and fast to work through:

  • Set the cutoff in local time, then filter. If the sale closed at 21:00, filter the local-time column to that and anything later is a waitlist, not an order.
  • Ignore your own comments. Shops often post a recap or rules comment under their own post; filter out your Page's author_id so it does not take place one.
  • Group by buyer, not by name. Add a count of author_id (=COUNTIF(S:S, S2)) to spot people who ordered twice or edited their order in a second comment. Names collide; IDs do not.
  • Decide what a reply means. A reply (reply_to_id filled in) is often "me too" under someone else's order or an admin confirming. Decide up front whether replies count as orders.
  • Work down until stock runs out. When an item sells out, every later comment for it goes to the waitlist in the same order, which gives you a fair way to offer cancellations.

Pulling size, colour and quantity out of order comments

Order comments follow a pattern even when nobody writes them the same way: "red 36", "white size 35 admin Maya", "cream 26 and 36". Two formulas take most of the manual reading out:

  • Colour or variant: =IFS(ISNUMBER(SEARCH("red",C2)),"red", ISNUMBER(SEARCH("white",C2)),"white", TRUE,"check"). Use the words your customers actually type, in their language.
  • Size or number: in Google Sheets, =REGEXEXTRACT(C2,"\d{2}") pulls the first two-digit number; Excel 365 users can do the same with TEXTBEFORE/TEXTAFTER or Power Query.

Anything marked "check" (two items in one comment, a question, a typo) is the short list a person still has to read. On a typical order post that is a small fraction of the rows, and it is the only part that needs human eyes.

Live sales, replays and repeat posts

A Facebook live sale becomes a video on the Page when the broadcast ends. Paste that video's link and the export returns the live comments with the wall-clock time each was written, so the same sort gives you the order buyers called out items on stream. If you run the same product across several posts (a morning post and an evening repost, say), export each one, paste the files into a single sheet, and sort the combined table by created_at. The bulk export takes up to 20 post links in one paste and gives you a zip with one file per post.

Running a "first ten to comment" promotion from the same file

The same sort settles timed promotions: "the first ten people to comment get a discount", "first 50 comments after 8 pm win a sample". Run them like this:

  1. Announce the start time in your local time zone and keep the post up until you have exported it.
  2. Export the post, sort created_at A to Z and add the local-time column.
  3. Filter out comments before the start time, then remove your own Page and any staff accounts by author_id.
  4. Remove duplicates on author_id so one person cannot fill three of the ten places, then take the first ten rows.
  5. Save the sorted file with the winners highlighted. If anyone asks how they were chosen, you can show the exact second each winner commented.

Because the timestamps come from Facebook, nobody, including you, can reorder them. That is what makes a timed promotion feel fair to the people who missed it.

Where this guide comes from: one shoe seller's file

This guide comes from a support conversation. A seller in Indonesia taking shoe orders in the comments asked us for two things: the numeric commenter ID, and the comments "sorted chronologically, from the earliest to the most recent". We opened the file they had downloaded and looked at what they were working with:

  • The file was complete but not in order. The first 36 rows were Facebook's ranked picks, mixed from across the day; after that the rows ran roughly newest first. Nothing was missing; it simply was not a queue.
  • The timestamps were enough to rebuild it. 100 comments over about 21 hours, every one with a created_at, and not a single pair in the same second.
  • The time zone looked like an error. The shop's own first comment was at 12:36 local time and read 05:36 in the file. That seven-hour gap is UTC, and it is why the local-time column above is in this guide.
  • The first row was the shop. The earliest comment was the seller's own order-recap note, which is why "ignore your own comments" is a rule above.

The column names, the timestamp format and the free first 100 comments are the live product values at the time of writing.

When the queue has gaps

A sorted file shows every comment Facebook still serves publicly. It cannot show comments the writer deleted, comments hidden by the Page or held by Facebook's spam filters, or comments from accounts that have since been removed. If a customer insists they ordered and you cannot find them, search the file for their name and their author_id first; if neither appears, the comment is no longer public. For the same reason, the comment count on the post badge is usually higher than the number of rows, because the badge includes removed comments. Export soon after the sale closes so the list is as complete as it will ever be.

Export Facebook comments in order →

Related reading: exporting Facebook comments to Excel, exporting Facebook commenter user IDs, downloading Facebook giveaway comments.

Export Facebook comments now

Paste any public Facebook post, Reel, or video URL. Free, no Facebook login required.