Setting up a Mechanics Middleware Source

This type of Middleware Source is used for connecting a Mechanic to integrate its data through our Middleware Source with your graphics insertion system allowing you to display, in real-time, results on the screen.

The Mechanics you can connect to this Middleware Source are Poll, Scoring, Votes, Twitter Poll, Facebook LiveStory


To learn how to create a Middleware Source, click here. 

1. General Settings

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

  • Mechanics (2): Select the Mechanic you want to integrate with your graphics system. You may choose any mechanic from your current experience or others.

  • Custom Title (3): In the XML or Database; it appears in the title field/column.

  • Call to action (4): Use it to let your audience know where they should go to participate, e.g. vote for your favorite participant at www.xxx.com.

    Additional Settings (5)


  • Polls to show: This refers to the data exposed in the XML. We recommend setting it as Current, this way if you have in the same Mechanic multiple Polls, ScoringsVotes, the XML only exposes the active one.

  • Percentage Decimals: Choose how many decimals (0 - 2) the results will be displayed.

  • Number Formatting: According to the selected language, the thousands separator will be a period (.) or a comma (,). For additional information click here.

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.
        For additional information about Vizrt integration click here.
  • Integration Steps (2): From here you will be able to access the XML, 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 to always use the higher one from the drop-down. Please refer to this article for more information.

  • Connect to Middleware (4): Enable it, pick your middleware from the drop-down and find the destination path where the File or Database are being written in your shared network unit by the middleware. 

3. Previewing Mechanics Middleware Source

After you have saved the Mechanics Middleware Source configuration you can preview its data. Keep in mind that the information in this section is not updated in real-time, so you should refresh the window to see the latest results.


4. XML integration

4.1 Example & Fields Description

4.1.1 XML Example

<mechanic>
  <widgetId>33847</widgetId>
  <title>WHO WAS THE WINNER OF THE SHOW?</title>
  <mechanicId>5e853daf45340632af76aae5</mechanicId>
  <callToAction></callToAction>
  <status>live</status>
  <currentPollId>d5876bbd-9629-45a4-a7da-351ff7bd9ebf</currentPollId>
  <currentPollName>WHO WAS THE WINNER OF THE SHOW?</currentPollName>
  <updatedAt>2020-04-15T22:45:32Z</updatedAt>
  <options>
    <option>
      <id>b1211b54-be80-433f-8ed6-daaa1ebd7e6c</id>
      <name>ALAN</name>
      <isCorrect>false</isCorrect>
      <pollId>d5876bbd-9629-45a4-a7da-351ff7bd9ebf</pollId>
      <pollName>WHO WAS THE WINNER OF THE SHOW?</pollName>
      <pollStatus>live</pollStatus>
      <pollType>quick_poll</pollType>
      <votingType>scoringresult</votingType>
      <total>5</total>
      <percentage>33.4</percentage>
      <average>0.0</average>
      <formattedTotal>5</formattedTotal>
      <formattedPercentage>33.4</formattedPercentage>
      <formattedAverage>0.0</formattedAverage>
      <integrationId></integrationId>
      <image>https://s3-assets2.flowics.com/web/uploads/production/generic-resources/asset/65003/versioned_cc5a71ec58a846a0ba5e7a283fa2ed5e.jpg</image>
      <localImagePath>/path/to/image.jpg</localImagePath>
      <ranking>0</ranking>
    </option>
  
    <option>
      <id>f55a01c2-d4d5-4e91-bc37-645d1dc4858d</id>
      <name>ALEX</name>
      <isCorrect>false</isCorrect>
      <pollId>d5876bbd-9629-45a4-a7da-351ff7bd9ebf</pollId>
      <pollName>WHO WAS THE WINNER OF THE SHOW?</pollName>
      <pollStatus>live</pollStatus>
      <pollType>quick_poll</pollType>
      <votingType>scoringresult</votingType>
      <total>5</total>
      <percentage>33.3</percentage>
      <average>0.0</average>
      <formattedTotal>5</formattedTotal>
      <formattedPercentage>33.3</formattedPercentage>
      <formattedAverage>0.0</formattedAverage>
      <integrationId></integrationId>
      <image>https://s3-assets1.flowics.com/web/uploads/production/generic-resources/asset/65004/versioned_5aaa31fc8ec5a856acffd916131b96fe.jpg</image>
      <localImagePath>/path/to/image2.jpg</localImagePath>
      <ranking>1</ranking>
    </option>
  
    <option>
      <id>d8141870-c3a4-421e-bd75-ed87f11bad63</id>
      <name>MACARENA</name>
      <isCorrect>true</isCorrect>
      <pollId>d5876bbd-9629-45a4-a7da-351ff7bd9ebf</pollId>
      <pollName>WHO WAS THE WINNER OF THE SHOW?</pollName>
      <pollStatus>live</pollStatus>
      <pollType>quick_poll</pollType>
      <votingType>scoringresult</votingType>
      <total>5</total>
      <percentage>33.3</percentage>
      <average>0.0</average>
      <formattedTotal>5</formattedTotal>
      <formattedPercentage>33.3</formattedPercentage>
      <formattedAverage>0.0</formattedAverage>
      <integrationId></integrationId>
      <image>https://s3-assets1.flowics.com/web/uploads/production/generic-resources/asset/65005/versioned_59ec2bf41a1cd7ce7e056cd71702f2fd.jpg</image>
      <localImagePath>/path/to/image3.jpg</localImagePath>
      <ranking>2</ranking>
    </option>
  </options>
</mechanic>


4.1.2 Fields Description

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

Field Description Field (Avid Maestro integration)
mechanic.widgetId Id of the Widget mechanic.widgetId
mechanic.title The question configured in the Widget's general settings. mechanic.title
mechanic.mechanicId Id of the Mechanic. mechanic.
mechanicId
mechanic.callToAction Exposes the data set in the call to action field in the general settings of the Widget. It is normally used to indicate where the audience needs to go to participate. mechanic.
callToAction
mechanic.status There are 3 status:
  • open: The audience can participate in the poll sending their votes.
  • closed: The audience cannot continue voting. 
  • standby: Poll is scheduled to take place.
mechanic.
status
mechanic.
currentPollId
Id of the poll. mechanic.
currentPollId
mechanic.
currentPollName
The name of the poll. mechanic.
currentPollName
mechanic.
updatedAt
Last modification date of the Middleware Source Widget mechanic.
updatedAt
mechanic.options.
option.id
Id of the option. mechanic.
options.option.idX
mechanic.options.
option.name
Name of the option mechanic.options.
option.nameX
mechanic.options.
option.isCorrect
Correct option in the poll. mechanic.options.
option.isCorrectX
mechanic.options.
option.pollId
Id of the poll. mechanic.options.
option.pollIdX
mechanic.options.
option.pollName
Name of the poll. mechanic.options.
option.pollNameX
mechanic.options.
option.pollStatus
Status of the poll. Can be open or closed. mechanic.options.
option.pollStatusX
mechanic.options.
option.pollType
Type of Poll. mechanic.options.
option.pollTypeX
mechanic.options.
option.votingType
Type of vote. Can be Voting only, or once a day. mechanic.options.
option.votingTypeX
mechanic.options.
option.total
Exposes the total amount of votes that the option has collected. mechanic.options.
option.totalX
mechanic.options.
option.percentage
Exposes the percentage in relation to the total amount of votes collected. mechanic.options.
option.percentageX
mechanic.options.
option.average
Exposes the average in relation to the total amount of votes collected. mechanic.options.
option.averageX
mechanic.options.
option.formattedTotal
Similar to poll.items.item.total but the number will be formatted according to locale requested (added thousands separator). mechanic.options.
option.
formattedTotal
mechanic.options.option.
formattedPercentage
Similar to poll.items.item.percentage but the number will be formatted according to locale requested (added thousands separator). mechanic.options.
option.
formattedPercentage
mechanic.options.option.
formattedAverage
Similar to average but the number will be formatted according to locale requested (added thousands separator). mechanic.options.
option.
formattedAverage
mechanic.options.option.
integrationId
Id that a user can assign to the Flow associated with the Widget to integrate with external systems. mechanic.options.
option.integrationId
mechanic.options.
option.image
URL to the image uploaded by the user in the Mechanic. mechanic.options.
option.image
mechanic.options.
option.LocalImagePath
Full path to downloaded Image. mechanic.options.
option.
LocalImagePath
mechanic.options.option.
ranking
Reflects the position assigned to each option. This goes from zero that presents a higher number of votes than the one, this in turn greater than the two and so on. mechanic.options.
option.ranking

5. Database Integration

5.1 Columns Description

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. widgetId
title The question configured in the Widget's general settings. title
pollId Id of the Mechanic. pollId
isLive Its value can be true or false. 

A graphic artist can use this field to control the behavior of the scene connected to this Middleware Source, i.e., it can show or hide the poll based on its value.

isLive
status There are 3 statuses:
  • open: The audience can participate in the poll sending their votes.
  • closed: The audience cannot continue voting.  
  • standby: The poll is scheduled to take place.
status
updatedAt Last modification date of the Middleware Source Widget. updatedAt
callToAction Exposes the data set in the call to action field in the general settings of the Widget. It is normally used to indicate where the audience needs to go to participate. callToAction
id Id that a user can assign to the Flow associated with the Widget to integrate with external systems. integrationId
total Exposes the total amount of votes that the option has collected. totalX
percentage Exposes the percentage in relation to the total amount of votes collected. percentageX
formattedTotal Similar to total but the number will be formatted according to locale requested (added thousands separator). formattedTotal
formattedPercentage Similar to percentage but the number will be formatted according to locale requested (added thousands separator). formattedPercentage
image URL to the image uploaded by the user in the Mechanic. image
ranking Reflects the position assigned to each option. This goes from zero that presents a higher number of votes than the one, this in turn greater than the two and so on. ranking

6. JSON File integration

6.1 Example & Fields description

6.1.1 JSON Example

{
   "widgetId":34312,
   "title":"Mechanics",
   "cta":"Go to www.sports.com to submit your vote!",
   "updatedAt":"2020-10-08T16:18:03Z",
   "mechanic":{
      "id":"5f7b2e679570bc6e084a099d",
      "status":"live",
      "current":"043714a7-7052-4348-bb03-8ff2626d69f7",
      "items":[
         {
            "id":"043714a7-7052-4348-bb03-8ff2626d69f7",
            "type":"quick_poll",
            "status":"live",
            "votingMode":"simple_mode",
            "question":"WHO WAS THE PLAYER OF THE MATCH?",
            "options":[
               {
                  "id":"acd560e1-1358-4b1a-a6cb-8dad858eab06",
                  "name":"DYBALA",
                  "integrationId":null,
                  "image":"https://s3-assets1.flowics.com/web/uploads/production/generic-resources/asset/85978/versioned_ea3600c8b32484ce4756958e768cb7dd.png",
                  "ranking":0,
                  "total":0,
                  "formattedTotal":"0",
                  "percentage":25,
                  "formattedPercentage":"25",
                  "average":0,
                  "formattedaverage":"0",
                  "localImagePath":"C:\\Midlleware test\\media\\https\\s3-assets1.flowics.com\\83f1c3dfcf3a1a66a3ee666d417bc718916eea70.png"
               },
               {
                  "id":"5b4d975f-34f8-466d-9419-6148ee48ab45",
                  "name":"GOMEZ",
                  "integrationId":null,
                  "image":"https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/85980/versioned_967afcc89c0179d9164a5ab7f930147b.png",
                  "ranking":1,
                  "total":0,
                  "formattedTotal":"0",
                  "percentage":25,
                  "formattedPercentage":"25",
                  "average":0,
                  "formattedaverage":"0",
                  "localImagePath":"C:\\Midlleware test\\media\\https\\s3-assets0.flowics.com\\e849cca0140df07acb0d978714ff3b0dfcff65df.png"
               },
               {
                  "id":"9604d21b-8d70-4b4c-81a9-342d3aa4c7db",
                  "name":"ZAPATA",
                  "integrationId":null,
                  "image":"https://s3-assets2.flowics.com/web/uploads/production/generic-resources/asset/85981/versioned_e75b4da69d3fb07303ade0ae91a788a2.png",
                  "ranking":2,
                  "total":0,
                  "formattedTotal":"0",
                  "percentage":25,
                  "formattedPercentage":"25",
                  "average":0,
                  "formattedaverage":"0",
                  "localImagePath":"C:\\Midlleware test\\media\\https\\s3-assets2.flowics.com\\56f09b77ffc3758945c1be9fcc356bec9578bb56.png"
               },
               {
                  "id":"0651ee62-a728-4b70-bd47-050250356a62",
                  "name":"RONALDO",
                  "integrationId":null,
                  "image":"https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/85979/versioned_e5aead5801320ee2887794744de733b9.png",
                  "ranking":3,
                  "total":0,
                  "formattedTotal":"0",
                  "percentage":25,
                  "formattedPercentage":"25",
                  "average":0,
                  "formattedaverage":"0",
                  "localImagePath":"C:\\Midlleware test\\media\\https\\s3-assets0.flowics.com\\c1fdcd2d780340590ea5ff91e6827efc20896aa7.png"
               }
            ]
         }
      ]
   }
}

6.1.2 Fields Description

Field
Description
widgetId
Id of the Widget
title Title of the mechanic, as configured in the Widget.
cta Call to action.
updatedAt Last modification datetime of Middleware Source (not data itself). ISO8601 format.
mechanic.id  Id of the Mechanic.
mechanic.status There are 3 status:
  • open: The audience can participate in the poll sending their votes.
  • closed: The audience cannot continue voting. 
  • standby: Poll is scheduled to take place.
mechanic.current Id of the current mechanic item (participation).
mechanic.items.id Id of the item.
mechanic.items.type Mechanic Item type
mechanic.items.status There are 3 status:
  • open: The audience can participate in the poll sending their votes.
  • closed: The audience cannot continue voting. 
  • standby: Poll is scheduled to take place.
mechanic.items.votingMode Mechanic item Voting Mode
mechanic.items.question Is the question of the Mechanic.
mechanic.items.options.id Id of the option.
mechanic.items.options.name Name of the Mechanic.
mechanic.items.options.integrationId Id that a user can assign to the Flow associated with the Widget to integrate with external systems.
mechanic.items.options.image URL to the image uploaded by the user in the Mechanic.
mechanic.items.options.localImagePath Full path to downloaded Image.
mechanic.items.options.ranking Reflects the position assigned to each option. This goes from zero that presents a higher number of votes than the one, this in turn greater than the two and so on.
mechanic.items.options.total Exposes the total amount of votes that the option has collected.
mechanic.items.options.formattedTotal Similar to mechanic.items.options.total but the number will be formatted according to locale requested (added thousands separator).
mechanic.items.options.percentage Exposes the percentage in relation to the total amount of votes collected.
mechanic.items.options.formattedPercentage Similar to mechanic.items.options.percentage but the number will be formatted according to locale requested (added thousands separator).
mechanic.items.options.average Exposes the average in relation to the total amount of votes collected.
mechanic.items.options.formattedaverage Similar to average but the number will be formatted according to locale requested (added thousands separator).
 

Was this article helpful?