Skip to main content
All CollectionsViz SocialMiddleware Sources
Setting up a Flow Middleware Source
Setting up a Flow Middleware Source
Updated over 9 months ago

This type of Middleware Source is used for displaying social media content through our Middleware allowing you to display, in real-time, Tweets, Facebook posts, Instagram posts, Whatsapp messages, Twitch, and Youtube comments, On-screen.

When you create this type of Middleware Source, you must associate it with the Flow from which it will take the data.


1. General Settings

  • Name (1): Naming your Flow Middleware Source is a good practice so that you and your teammates can identify it for later use.

  • Connected Flows (2): When you create this type of Middleware Source, it must be assigned to a Flow from which it will take the content. Click on Select and choose one of your listed Flows to add them to your Middleware Source.

  • Language (3): When a post comes with no Username information, the Flow Middleware Source by default changes To "Unknown Username". You can set the "Unknown Username" to English, Spanish, or Portuguese language.

  • Hide Replied Users (4): You may choose if you wish to hide replied users from tweets.

2. Integration

  • Integration type (1): Select how you want to integrate the data according to the graphics system you have. If it is not listed click others.

Vizrt integration

Integrations with Vizrt can be made through:

  • Flowics Middleware + Data Reader, pick others from the dropdown.

  • Integration Steps (2): From here you will be able to access the XML and JSON or you will find the steps on how to integrate according to your CG integration system.

  • Version (3): This refers to the Middleware version. We recommend always using the higher from the dropdown. Please refer to this article for more information.

  • Number of Posts (4): With this element, you can select the number of the latest posts you want to display. You can choose from 5 up to 500 posts. Take into account that newer posts will replace the old ones.

  • Connect to Middleware (5): Enable it, pick your middleware from the dropdown, and find the destination path where the File or Database is being written in your destination unit by the middleware.


XML integration

3.1.1 XML Example

<feed>     <widgetId>29982</widgetId>     <title>Feed Data Source KB</title>     <posts>         <post>             <id>1045355566841901056</id>             <userName>John Smith</userName>             <screenName>johnsmith</screenName>             <url>https://pbs.twimg.com/profile_images/767771568575512576/kp-8wCsF.jpg</url>             <date>1538067163000</date>             <verified>true</verified>             <publisher>twitter</publisher>             <text> How Social Media can help your Customer Journey - Download for Free http://hubs.ly/H038rYB0 #ebook #customerjourney</text>             <geolocation>                <latitude>40.745592</latitude>                <longitude>-73.987857</longitude>             </geolocation>             <mainMediaURL>http://pbs.twimg.com/media/B89jMqKIgAAM2Fu.jpg:large</mainMediaURL>             <localMainMediaPath>/path/to/downloaded/media/image.jpg</localMainMediaPath>             <mainMediaType>image/jpeg</mainMediaType>             <mainVideoURL>http://pbs.twimg.com/media/B89jMqKIgAAM2Fu.mp4</mainVideoURL>             <localMainVideoPath>/path/to/downloaded/media/video.mp4</localMainVideoPath>             <mainVideoType>mp4</mainVideoType>             <originalUserName>Flowics</originalUserName>             <originalScreenName>flowics</originalScreenName>             <originalUrl>https://pbs.twimg.com/profile_images/1232/maoNYpMK_normal.jpeg</originalUrl>             <originalDate>1472501062001</originalDate>             <originalVerified>true</originalVerified>             <displayUserName>John Smith</displayUserName>             <displayScreenName>johnsmith</displayScreenName>             <displayUrl>https://pbs.twimg.com/profile_images/767771568575512576/kp-8wCsF.jpg</displayUrl>             <localAvatarPath>/path/to/downloaded/media/avatar-kp-8wCsF.jpg</localAvatarPath>             <displayDate>1538067163000</displayDate>             <displayVerified>true</displayVerified>             <curationDate>1538077240217</curationDate>         </post>         ...     </posts> </feed>

3.1.2 Fields description:

Note that some field names change when using the Avid Maestro integration type.

Field

Description

Field (Avid Maestro integration)

feed.widgetId

Id of the widget.

feed.widgetId

feed.title

Title of the feed, as configured in the Widget.

feed.title

feed.posts.post.id

The id of the post within the social network (e.g., the id of the Tweet).

feed.posts.post.idX

feed.posts.post.userName

Full username within the social network.

feed.posts.post.userNameX

feed.posts.post.screenName

Username.

feed.posts.post.screenNameX

feed.posts.post.url

URL to the avatar of the user who generated the post.

feed.posts.post.urlX

feed.posts.post.date

The date on which the post was published (milliseconds passed since the epoch).

feed.posts.post.dateX

feed.posts.post.verified

Boolean that indicates whether the user who generated the post is verified.

feed.posts.post.verifiedX

feed.posts.post.publisher

Indicates the social network in which the post was published (e.g., Twitter, Facebook, Instagram).

feed.posts.post.publisher

feed.posts.post.text

Post's text.

feed.posts.post.text

feed.posts.post.geolocation.latitude

If present indicates the latitude in which the post was published.

feed.posts.post.geolocation.latitude

feed.posts.post.geolocation.longitude

If present indicates the longitude in which the post was published.

feed.posts.post.geolocation.longitude

feed.posts.post.mainMediaUrl

URL to the image posted by the user. It may be empty.

feed.posts.post.mainMediaUrl

feed.posts.post.mainMediaType

The image type of the media URL. It may be empty.

feed.posts.post.mainMediaType

feed.posts.post.localMainMediaPath

Full path to downloaded video taken from mainVideoUrl. It may be empty.

feed.posts.post.localMainMediaPath

feed.posts.post.mainVideoUrl

URL to the video posted by the user. It may be empty.

feed.posts.post.mainVideoUrl

feed.posts.post.mainVideoType

Video type of the video URL. It may be empty.

feed.posts.post.mainVideoType

feed.posts.post.localMainVideoPath

Full path to downloaded video taken from mainVideoUrl. It may be empty.

feed.posts.post.localMainVideoPath

feed.posts.post.originalUserName

In the case of retweets, the full name of the user whose Tweet was retweeted.

feed.posts.post.originalUserName

feed.posts.post.originalScreenName

In the case of retweets, the name of the user whose Tweet was retweeted.

feed.posts.post.originalScreenName

feed.posts.post.originalUrl

In the case of retweets, the URL of the avatar of the user whose Tweet was retweeted.

feed.posts.post.originalUrl

feed.posts.post.originalDate

In the case of retweets, the time at which the published tweet was retweeted.

feed.posts.post.originalDate

feed.posts.post.originalVerified

In the case of retweets, a boolean that indicates whether the user whose Tweet was retweeted is verified.

feed.posts.post.originalVerified

The following fields help with proper compliance with the guidelines for viewing content. E.g., for Twitter, these fields will contain the information of the tweet and the original user and may display correctly both tweets as RTS.

feed.posts.post.displayUserName

The Full Name of the user in the Social Network should be displayed.

feed.posts.post.displayUserName

feed.posts.post.displayScreenName

Username to be displayed.

feed.posts.post.displayScreenName

feed.posts.post.displayUrl

URL to the avatar of the user that should be displayed.

feed.posts.post.displayUrl

feed.posts.post.localAvatarPath

Full path to downloaded avatar image taken from displayUrl.

feed.posts.post.localAvatarPath

feed.posts.post.displayDate

Date of the post that should be displayed (milliseconds since the epoch).

feed.posts.post.displayDate

feed.posts.post.displayVerified

Boolean indicator verified user that should be displayed.

feed.posts.post.displayVerified

Database integration

When using this kind of integration, a database table with the following columns is created. The type of columns is textual. For the specific type, check the middleware configuration, but they typically are text for MySQL or PostgreSQL and ntext for Microsoft SQL Server.

Column

Description

Column (Avid Maestro integration)

widgetId

Id of the widget (same value for each row).

widgetId

title

Title of the ticker, as configured on the Widget (same value for each row).

title

id

Id of the post within the social network (e.g., the id of the Tweet).

idX

userName

Full username within the social network.

userNameX

screenName

Username.

screenNameX

text

Post's text.

text

url

URL to the avatar of the user who generated the post.

urlX

date

The date on which the post was published (milliseconds passed since the epoch).

dateX

verified

Boolean that indicates whether the user who generated the post is verified.

verifiedX

publisher

Indicates the social network in which the post was published (e.g., Twitter, Facebook, Instagram).

publisher

geolocation_latitude

If present indicates the latitude in which the post was published.

geolocation_latitude

geolocation_longitude

If present indicates the longitude in which the post was published.

geolocation_longitude

mainMediaUrl

URL to the image posted by the user. It may be empty.

mainMediaUrl

localMainMediaPath

Full path to downloaded video taken from mainVideoUrl. It may be empty.

localMainMediaPath

mainMediaType

The image type of the media URL. It may be empty.

mainMediaType

mainVideoUrl

URL to the video posted by the user. It may be empty.

mainVideoUrl

mainVideoType

Video type of the video URL. It may be empty.

mainVideoType

localMainVideoPath

Full path to downloaded video taken from mainVideoUrl. It may be empty.

localMainVideoPath

originalUserName

In the case of retweets, the full name of the user whose Tweet was retweeted.

originalUserName

originalScreenName

In the case of retweets, the name of the user whose Tweet was retweeted.

originalScreenName

originalUrl

In the case of retweets, the URL of the avatar of the user whose Tweet was retweeted.

originalUrl

originalDate

In the case of retweets, the time at which the tweet was published was retweeted.

originalDate

originalVerified

In the case of retweets, a boolean that indicates whether the user whose Tweet was retweeted is verified.

originalVerified

The following fields help with proper compliance with the guidelines for viewing content. E.g. for Twitter, these fields will contain the information of the tweet and the original user and may display correctly both tweets as RTS.

displayUserName

The Full Name of the user in the Social Network should be displayed.

displayUserName

displayScreenName

Username to be displayed.

displayScreenName

displayUrl

URL to the avatar of the user that should be displayed.

displayUrl

localAvatarPath

Full path to downloaded avatar image taken from displayUrl.

localAvatarPath

displayDate

Date of the post that should be displayed (milliseconds since the epoch).

displayDate

displayVerified

Boolean indicator verified user that should be displayed.

displayVerified

curationdate

Date when the post was accepted (milliseconds since the epoch).

curationdate

JSON File integration

5.1.1 JSON Example

{ "widgetId":34311, "title":"Feed JSON", "posts":[ { "id":"1314225358443610112", "userName":"📍Empleo 24h📍", "screenName":"emplearte2020", "text":"Se busca fisioterapeuta en Sant Feliú de Llobregat 🗨 #empleo #trabajo #vacante\n👉🏻 ¡Accede a esta y otras ofertas de trabajo en tu ciudad! 📍 ¡Si ya tienes trabajo, haz RT para ayudar compartiendo esta oferta laboral! 👀 #barcelona", "url":"https://pbs.twimg.com/profile_images/1313834923300659202/v7EVtKWf_reasonably_small.jpg", "date":1602170717236, "verified":false, "publisher":"twitter", "geolocation":null, "mainMediaUrl":null, "mainMediaType":null, "mainVideoURL":null, "mainVideoType":null, "originalUserName":"", "originalScreenName":"", "originalUrl":"", "originalDate":"", "originalVerified":"", "displayUserName":"📍Empleo 24h📍", "displayScreenName":"emplearte2020", "displayUrl":"https://pbs.twimg.com/profile_images/1313834923300659202/v7EVtKWf_reasonably_small.jpg", "displayDate":1602170717236, "displayVerified":false, "curationDate":1602170727772, "localMainVideoPath":"", "localAvatarPath":"C:\\Midlleware test\\media\\https\\pbs.twimg.com\\d2cbda7fdfe2a93df786c1cc9799499a75fa3918.jpg" }, { "id":"1314225317981061120", "userName":"Pau Sagrera", "screenName":"pausagrera", "text":"¡Ya queda menos para el finde! 🎉Os contamos nuestras 3 rutas favoritas para disfrutar en moto... ¡y los mejores sitios donde parar a comer! 😜\n¿Cuál es tu ruta favorita en moto? ¡Te leemos! 👀\n\n\n#mapit #gpstracking #IoT #barcelona #africatwin #motorbike", "url":"https://pbs.twimg.com/profile_images/1185144052259414016/Ykp7wCij_reasonably_small.jpg", "date":1602170707589, "verified":false, "publisher":"twitter", "geolocation":null, "mainMediaUrl":"http://pbs.twimg.com/media/Ej0Kwc4XcAAlOWD.jpg:medium", "mainMediaType":"image/jpeg", "mainVideoURL":null, "mainVideoType":null, "originalUserName":"Mapit IoT", "originalScreenName":"mapitme", "originalUrl":"https://pbs.twimg.com/profile_images/1153220884984926210/zmz2n0SJ_reasonably_small.jpg", "originalDate":1602169238000, "originalVerified":false, "displayUserName":"Mapit IoT", "displayScreenName":"mapitme", "displayUrl":"https://pbs.twimg.com/profile_images/1153220884984926210/zmz2n0SJ_reasonably_small.jpg", "displayDate":1602169238000, "displayVerified":false, "curationDate":1602170718201, "localMainVideoPath":"", "localAvatarPath":"C:\\Midlleware test\\media\\https\\pbs.twimg.com\\a07306cd10a5e339a74631aebb1957a687f0645c.jpg" }, ] }

5.1.2 Fields Description

Field

Description

widgetId

Id of the Widget

title

Title of the ticker, as configured in the Widget.

posts.id

Id of the posts. within the social network (e.g., id of the Tweet).

posts.userName

Full username within the social network.

posts.screenName

Username

posts.text

Post's text.

posts.url

URL to the avatar of the user who generated the post.

posts.date

The date on which the post was published (milliseconds passed since the epoch).

posts.verified

Boolean that indicates whether the user who generated the post is verified.

posts.publisher

Indicates the social network in which the post was published (e.g., Twitter, Facebook, Instagram).

posts.geolocation

Indicates the latitude and longitude in which the post was published.

posts.mainMediaUrl

URL to the image posted by the user. It may be empty.

posts.mainMediaType

The image type of the media URL. It may be empty.

posts.mainVideoUrl

URL to the video posted by the user. It may be empty.

posts.mainVideoType

Video type of the video URL. It may be empty.

posts.originalUserName

In the case of retweets, the full name of the user whose Tweet was retweeted.

posts.originalScreenName

In the case of retweets, the name of the user whose Tweet was retweeted.

posts.originalUrl

In the case of retweets, the URL of the avatar of the user whose Tweet was retweeted.

posts.originalDate

In the case of retweets, the time at which the published tweet was retweeted.

posts.originalUserName

In the case of retweets, the full name of the user whose Tweet was retweeted.

posts.originalVerified

In the case of retweets, a boolean that indicates whether the user whose Tweet was retweeted is verified.

posts.localMainMediaPath

Full path to the downloaded image taken from 'mainMediaUrl'. It may be empty.

posts.localMainVideoPath

Full path to downloaded video taken from 'mainVideoUrl'. It may be empty.

The following fields help with proper compliance with the guidelines for viewing content. E.g., for Twitter, these fields will contain the information of the tweet and the original user and may display correctly both tweets as RTS.

posts.displayUserName

The Full Name of the user in the Social Network should be displayed.

posts.displayScreenName

Username to be displayed.

posts.displayUrl

URL to the avatar of the user that should be displayed.

posts.displayDate

Date of the post that should be displayed (milliseconds since the epoch).

posts.displayVerified

Boolean indicator verified user that should be displayed.

posts.localAvatarPath

Full path to downloaded avatar image taken from 'displayUrl'.

Did this answer your question?