Skip to main content
Buzzmonitor (by E.life) is a social listening and brand-monitoring platform. It collects posts, comments, mentions, and direct messages about your brands across social networks (X/Twitter, Instagram, Facebook, YouTube, Bluesky, TikTok, and more), classifies sentiment, and organizes everything into reports.
This connector uses the Buzzmonitor API with your account email and API key, both found in your Buzzmonitor Settings > Developer (Username and Access Token). If you cannot find your Access Token there, request it from the Buzzmonitor support team.

How this connector works

Buzzmonitor’s API does not let you list your reports programmatically, so you tell the connector which reports to bring by copying each report’s JSON payload from the Buzzmonitor Dashboard and pasting it into Nekt. You add one entry per report, give it a name, and paste its payload. Each report becomes its own table. You decide how many reports to bring, one, two, or several (for example, one for listening and one for responding/monitoring).

Copy a report’s payload

Buzzmonitor shows each report’s payload directly in the Dashboard. For every report you want to sync:
  1. Log into the Buzzmonitor Dashboard and open the report (for example, under Listening or Customer Care).
  2. In the toolbar below the report, click JSON. The report’s request payload appears in a code panel.
  3. Click the copy icon at the top-right of that panel to copy the entire JSON.
  4. Paste it as the report’s payload in Nekt.
You don’t need to edit the copied payload, Nekt keeps its scope and filters and automatically overrides the authentication and the date window with your own settings.

1. Add your Buzz Monitor access

  1. In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Buzz Monitor option from the list of connectors.
  2. Click Next and you’ll be prompted to fill the configuration.
    • Account Email: The email of the Buzzmonitor account used to authenticate API requests. Found in Settings > Developer > Username.
    • API Key: The Buzzmonitor API key of that account. Found in Settings > Developer > Access Token.
    • Reports: One entry per report to extract. For each entry, provide a name (which becomes the table name) and paste the payload copied from the report’s JSON view in the Buzzmonitor Dashboard. Add as many reports as you need.
    • Start Date (advanced): The earliest record date to sync. Defaults to full history.
  3. Click Next.

2. Select your Buzz Monitor streams

  1. The next step is letting us know which streams you want to bring. Each report you configured appears as its own stream, named after the report. You can select entire groups of streams or only a subset of them.
    Tip: The stream can be found more easily by typing its name.
  2. Click Next.

3. Configure your Buzz Monitor data streams

  1. Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.
    • Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
    • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
    • Table name: we suggest a name, but feel free to customize it. You have the option to add a prefix to all tables at once and make this process faster!
    • Sync Type: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE. Read more about Sync Types here.
  2. Click Next.

4. Configure your Buzz Monitor data source

  1. Describe your data source for easy identification within your organization. You can inform things like what data it brings, to which team it belongs, etc.
  2. To define your Trigger, consider how often you want data to be extracted from this source.
  3. Optionally, you can define some additional settings (if available).
    • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource here.
    • Determine when to execute an Additional Full Sync.

Check your new source!

  1. Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
  2. You can view your new source on the Sources page. Now, for you to be able to see it on your Catalog, you have to wait for the pipeline to run. If needed, manually trigger the pipeline by clicking on the refresh icon.
If you encounter any issues, reach out to us, and we’ll gladly assist you!

Streams and Fields

Buzz Monitor streams are defined by the Reports you configure: each report becomes one stream, named after the report. Every stream shares the same fields and is synced incrementally on date (the publish time), with elasticsearch_id as the primary key.
elasticsearch_id is used as the primary key because it is the only identifier present and unique across every record kind (posts, comments, direct messages, story mentions). It is stable across syncs, so incremental loads update records in place rather than duplicating them.
Every post, comment, mention, and message returned by the report, one row per record. The same fields back listening records (public mentions) and responding records (DMs, private messages, story mentions); they differ by the type/interaction_type of each row.Fields:
  • elasticsearch_id: String - Buzzmonitor’s unique row identifier (primary key), present and unique across every record kind
  • external_id: String - Buzzmonitor’s own identifier of the record, when provided
  • post_id: String - Identifier of the post within its source network (may be null for some private messages, and shared across a post’s comments)
  • service: String - Source network of the record (twitter, facebook, instagram, youtube, bluesky, tiktok, news, blogs, and others)
  • type: String - Kind of content within the network (post, comment, reply, video, direct_message, story_mention, and others)
  • interaction_type: String - Source block that matched the record (monitoring_brands, twitter_dms, and others)
  • date: DateTime - Timestamp when the record was published on the source network, used as the incremental replication key
  • collected_time: DateTime - Timestamp when Buzzmonitor collected the record
  • content: String - Text content of the post, comment, or message
  • title: String - Title of the content, when available
  • caption: String - Media caption, when available
  • description: String - Longer description of the content, when available
  • url: String - Public URL of the post, when provided
  • link: String - Alternative link to the content, when provided
  • sentiment: String - Sentiment classified by Buzzmonitor (positive, neutral, negative)
  • language: String - Language detected for the content
  • author: String - Author of the record — id, name, username, avatar, bio, and follower count, serialized as a JSON string
  • gender: String - Gender inferred for the author (male, female, unknown)
  • brand: String - Monitoring brand (project) in Buzzmonitor that matched the record
  • engagement: Number - Engagement metric computed by Buzzmonitor for the record
  • archived: Boolean - Whether the record is archived in Buzzmonitor
  • thread_id: String - Identifier of the conversation thread (private messages and DMs)
  • solved: Boolean - Whether the interaction is marked as solved (responding/inbox)
  • answer_ids: Array of Strings - Identifiers of replies/answers to the interaction
  • elapsed_time: Integer - Elapsed time metric reported for the interaction
  • likes: Integer - Number of likes/reactions on the record
  • shares: Integer - Number of shares/reposts of the record
  • replies: Integer - Number of replies to the record
  • comment_replies: Integer - Number of replies on comments of the record
  • hashtags: Array of Strings - Hashtags present in the content
  • fb_reaction_love: Integer - Facebook-specific count of Love reactions
  • fb_reaction_wow: Integer - Facebook-specific count of Wow reactions
  • fb_reaction_haha: Integer - Facebook-specific count of Haha reactions
  • fb_reaction_sorry: Integer - Facebook-specific count of Sorry reactions
  • fb_reaction_anger: Integer - Facebook-specific count of Anger reactions
  • fb_reaction_thankful: Integer - Facebook-specific count of Thankful reactions
  • fb_reaction_pride: Integer - Facebook-specific count of Pride reactions
  • view_count: Integer - Number of views (video content)
  • dislikes_count: Integer - Number of dislikes (YouTube content)
  • favorite_count: Integer - Number of favorites (YouTube content)
  • video_id: String - Identifier of the parent video, for video comments and replies
  • channel_id: String - Identifier of the YouTube channel that published the content
  • channel_name: String - Name of the YouTube channel that published the content
  • page_id: String - Identifier of the Facebook page related to the record
  • reply_id: String - Identifier of the reply, for reply records
  • content_type: String - Content type flag reported by Buzzmonitor
  • collected_from: String - Collection source that captured the record
  • origin: String - Origin of the record within the network, serialized as JSON when structured
  • application: String - Application used to publish the record, when reported
  • source: String - Original source attribution of the content
  • location_name: String - Name of the location attached to the record, when available
  • location_id: String - Identifier of the location attached to the record, when available
  • location_geo: String - Geographic coordinates of the record (latitude and longitude), serialized as a JSON string
  • icon: String - URL of the author’s avatar or icon, when provided