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:- Log into the Buzzmonitor Dashboard and open the report (for example, under Listening or Customer Care).
- In the toolbar below the report, click JSON. The report’s request payload appears in a code panel.
- Click the copy icon at the top-right of that panel to copy the entire JSON.
- Paste it as the report’s payload in Nekt.
1. Add your Buzz Monitor access
- 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.
-
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.
- Click Next.
2. Select your Buzz Monitor streams
-
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.
- Click Next.
3. Configure your Buzz Monitor data streams
-
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.
- Click Next.
4. Configure your Buzz Monitor data source
- 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.
- To define your Trigger, consider how often you want data to be extracted from this source.
- Optionally, you can define some additional settings (if available).
Check your new source!
- Click Next to finalize the setup. Once completed, you’ll receive confirmation that your new source is set up!
- 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 ondate (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.Report (posts & interactions)
Report (posts & interactions)
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 kindexternal_id:String- Buzzmonitor’s own identifier of the record, when providedpost_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 keycollected_time:DateTime- Timestamp when Buzzmonitor collected the recordcontent:String- Text content of the post, comment, or messagetitle:String- Title of the content, when availablecaption:String- Media caption, when availabledescription:String- Longer description of the content, when availableurl:String- Public URL of the post, when providedlink:String- Alternative link to the content, when providedsentiment:String- Sentiment classified by Buzzmonitor (positive, neutral, negative)language:String- Language detected for the contentauthor:String- Author of the record — id, name, username, avatar, bio, and follower count, serialized as a JSON stringgender:String- Gender inferred for the author (male, female, unknown)brand:String- Monitoring brand (project) in Buzzmonitor that matched the recordengagement:Number- Engagement metric computed by Buzzmonitor for the recordarchived:Boolean- Whether the record is archived in Buzzmonitorthread_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 interactionelapsed_time:Integer- Elapsed time metric reported for the interactionlikes:Integer- Number of likes/reactions on the recordshares:Integer- Number of shares/reposts of the recordreplies:Integer- Number of replies to the recordcomment_replies:Integer- Number of replies on comments of the recordhashtags:Array of Strings- Hashtags present in the contentfb_reaction_love:Integer- Facebook-specific count of Love reactionsfb_reaction_wow:Integer- Facebook-specific count of Wow reactionsfb_reaction_haha:Integer- Facebook-specific count of Haha reactionsfb_reaction_sorry:Integer- Facebook-specific count of Sorry reactionsfb_reaction_anger:Integer- Facebook-specific count of Anger reactionsfb_reaction_thankful:Integer- Facebook-specific count of Thankful reactionsfb_reaction_pride:Integer- Facebook-specific count of Pride reactionsview_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 replieschannel_id:String- Identifier of the YouTube channel that published the contentchannel_name:String- Name of the YouTube channel that published the contentpage_id:String- Identifier of the Facebook page related to the recordreply_id:String- Identifier of the reply, for reply recordscontent_type:String- Content type flag reported by Buzzmonitorcollected_from:String- Collection source that captured the recordorigin:String- Origin of the record within the network, serialized as JSON when structuredapplication:String- Application used to publish the record, when reportedsource:String- Original source attribution of the contentlocation_name:String- Name of the location attached to the record, when availablelocation_id:String- Identifier of the location attached to the record, when availablelocation_geo:String- Geographic coordinates of the record (latitude and longitude), serialized as a JSON stringicon:String- URL of the author’s avatar or icon, when provided