Pipeline sources
A source is where a pipeline's items come from: a stream ending, a "Clip that" press, a picture approved, a time of the week. Each item a source reads starts one run. A pipeline may have several sources, each feeding the steps that take from it. See Pipelines for how the parts fit together.
A source reads only what came in after the pipeline was turned on, so it never goes back over last month's streams. Reading costs nothing: every source on this page is free, and only the steps after it may spend.
Each source gives one kind of item, and a step after it must take that kind:
moment: a stretch of a stream, from a start to an end.activity: something the team made or did, with its title, summary, media and link.media: a picture or video in the library.signal: something that happened, with its numbers and link: a schedule coming round, a sale, a number crossing a line.
Each section below ends with the source as it sits in a pipeline's definition, which is what an assistant reads and proposes. id is the step's short name in this pipeline, kind is the key in the heading, and settings holds only what differs from the defaults. A source has no after, as nothing comes before it.
stream.ended
A stream ended
Takes each of the brand's streams once it ends, as one moment from its start to its end. A stream moved in from another brand is passed over, as it did not just end here. Put Moments from what was said after it to find the moments in it worth a clip.
Takes: nothing. Gives: moment.
Settings: none.
Cost: free.
Example:
{ "id": "ended", "kind": "stream.ended", "settings": {} }
stream.moments
Suggested moments
Takes the moments suggested on each stream's timeline once it ends: chat picking up, viewers jumping in, markers. These are the same moments Clips suggests. The best come first, and only so many are taken from one stream.
Takes: nothing. Gives: moment.
Settings:
- Lowest score (
minScore): moments scoring under this are left out. A "Clip that" press scores 3, a marker 2, chat picking up 1.5. Default 0, so every moment counts. - Most from one stream (
most): the most moments taken from one stream, best first, from 1 to 20. Default 3.
Cost: free.
Example:
{ "id": "moments", "kind": "stream.moments", "settings": { "minScore": 2, "most": 5 } }
stream.markers
Stream markers
Takes a moment for each marker put on a stream, while it is live or after. A "Clip that" moment reaches back from the press, and any other marker's starts a little before it. The clip itself is cut once the recording arrives, so a run started during a stream waits at Cut a clip until then.
Takes: nothing. Gives: moment.
Settings:
Which markers (
sources): "Clip that" (clip), A hotkey (hotkey), Placed by a person (manual) and A kit, such as a band's songs (kit). At least one. Default "Clip that" only.Key starts with (
keyPrefix): only markers a kit placed with keys starting so, such as its songs. Default not set, so every marker of the kinds chosen.
Cost: free.
Example:
{ "id": "markers", "kind": "stream.markers", "settings": { "sources": ["clip", "hotkey"] } }
music.show-songs
Songs of a show
Takes each song of a stream started from one of the band's Ensemblis shows, once the stream ends, as a moment from the song's marker to the next. Covers are skipped unless you say otherwise, since their rights are not the band's. Needs a brand linked to a band.
Takes: nothing. Gives: moment.
Settings:
- Covers (
covers): Skip them: their rights are not the band's (skip) or Clip them too (make). Defaultskip. GreenMind can also have covers clipped for every band, whatever this says.
Cost: free.
Example:
{ "id": "songs", "kind": "music.show-songs", "settings": { "covers": "skip" } }
twitch.clips
Twitch clips
Takes the clips viewers made of the brand's Twitch channel, and its past broadcasts if chosen, once each is a few days old and has been watched enough. Each comes as a signal with its link, title, length and views: the video stays on Twitch, so a pipeline writes about the clip and links to it rather than posting it. Needs a Twitch connection on the brand.
Takes: nothing. Gives: signal.
Settings:
- Takes (
of): Clips viewers made (clips) and Past broadcasts (videos). At least one. Default clips only. - Days old first (
afterDays): how old a clip is before it comes in, so its views have had time to come, from 0 to 30. Default 2. - Fewest views (
minViews): the fewest views a clip needs to come in. Default 10.
Cost: free.
Example:
{ "id": "twitch", "kind": "twitch.clips", "settings": { "afterDays": 3, "minViews": 50 } }
activity.any
Something the team made
Takes each new public item of the brand's activity: from its intake, GitHub, Linear and the projects it markets. An item that is not public, or still under embargo, never enters a run, and no setting changes that.
Takes: nothing. Gives: activity.
Settings:
- Only these kinds (
kinds): Feature, Content, Balance, Art, Fix, Song, Show, Release and Other (feature,content,balance,art,fix,song,show,release,other). Default none chosen, so every kind. - Only from these sources (
sources): where it came from, by key, such asintake,github.pull,linear.issueor a kit's own. Up to 20. Default empty, so every source.
Cost: free.
Example:
{ "id": "made", "kind": "activity.any", "settings": { "kinds": ["feature", "content", "art"] } }
music.song
A song out
Takes each of the band's songs once it is public: out with a link, or played at a show. If chosen, it takes each song arranged again too. Needs a brand linked to a band.
Takes: nothing. Gives: activity.
Settings:
- Takes (
of): New songs (song) and Songs arranged again (arrangement). At least one. Default new songs only.
Cost: free.
Example:
{ "id": "song", "kind": "music.song", "settings": { "of": ["song", "arrangement"] } }
gd.activity
Shipped in Game Designer
Takes each feature shipped, milestone cut or asset approved in a Game Designer game the brand markets, once it is public and past any embargo. Not open to everybody yet.
Takes: nothing. Gives: activity.
Settings:
- Takes (
of): Features shipped (feature), Milestones cut (milestone) and Assets approved (asset). At least one. Default features only.
Cost: free.
Example:
{ "id": "shipped", "kind": "gd.activity", "settings": { "of": ["feature", "milestone"] } }
steam.event
Steam happenings
Gives a signal when something happens to the game's Steam presence that is worth a post: a discount or a price change confirmed in the Steam toolkit, the store page or its capsule art changing, or a Steam festival, seasonal sale or showcase coming round. A festival, sale or showcase whose dates are still estimated waits until they are announced. Needs a brand linked to a game.
Takes: nothing. Gives: signal.
Settings:
- Hears of (
of): A discount (discount), A price change (price), The store page changed (store-page), New capsule art (capsules), A Steam festival (festival), A seasonal sale (sale) and A showcase (showcase). At least one. Default a discount, a Steam festival and a seasonal sale. - Days before (
daysBefore): how many days before a festival, sale or showcase starts it is told of, from 0 to 60. Default 0, on the day. A discount or a change has no days before: its run starts when you confirm it.
Cost: free.
Example:
{
"id": "steam",
"kind": "steam.event",
"settings": { "of": ["discount", "festival", "sale"], "daysBefore": 3 }
}
suggestion.accepted
An idea accepted
Takes each idea somebody accepts on the Ideas page, with why it was suggested and the draft it came with, and the media and link of the activity it came from. While a pipeline with this source is on, accepting an idea makes no bare draft of its own: the pipeline makes the post instead.
Takes: nothing. Gives: activity.
Settings: none.
Cost: free.
Example:
{ "id": "accepted", "kind": "suggestion.accepted", "settings": {} }
blog.published
A blog post went live
Takes each post on the brand's blog once it is live, with its address, its cover picture and its excerpt, to tell people about it elsewhere. A post scheduled for later comes in once its date arrives.
Takes: nothing. Gives: activity.
Settings:
- Only these categories (
categories): categories by their address, as in/blog/category/news. Up to 20. Default empty, so every post.
Cost: free.
Example:
{ "id": "blog", "kind": "blog.published", "settings": { "categories": ["news"] } }
library.upload
Approved in the library
Takes each picture or video once it is approved in the brand's library, only those with a tag or in a collection if you choose one. A file approved again later is the same item, so it starts one run. Spoilers, anything still under embargo, and a stream's recording nobody chose are passed over.
Takes: nothing. Gives: media.
Settings:
- Kinds of media (
kinds): Pictures (image) and Videos (video). At least one. Default both. - Only with this tag (
tag): only files with this tag. Default not set. - Collection (
collectionId): only files in this collection, chosen by name. Default not set. In a pipeline that follows a shared one, the brand chooses its own.
Cost: free.
Example:
{
"id": "approved",
"kind": "library.upload",
"settings": { "kinds": ["image"], "tag": "screenshot" }
}
manual.drop
Dropped in by a person
Runs on a picture or a video from the library that somebody chooses on the pipeline's page. It reads nothing by itself, so a run starts only when a person drops something in. A file is put in the library first, where every upload goes.
Takes: nothing. Gives: media.
Settings:
- Kinds of media (
kinds): Pictures (image) and Videos (video). At least one. Default both.
Cost: free.
Example:
{ "id": "dropped", "kind": "manual.drop", "settings": { "kinds": ["video"] } }
schedule.every
On a schedule
Starts a run every day, or on one day a week, at a time in the time zone set. It carries nothing but the time, so it goes before a step that finds something to post, such as Pick from a collection.
Takes: nothing. Gives: signal.
Settings:
- How often (
every): Every day (day) or Once a week (week). Default once a week. - Day of the week (
weekday): for once a week, from 0 for Sunday to 6 for Saturday. Default 5, Friday. - At (
at): the time of day. Default 17:00. - Time zone (
timeZone): Default UTC, so set your own.
Cost: free.
Example:
{
"id": "weekly",
"kind": "schedule.every",
"settings": { "every": "week", "weekday": 2, "at": "10:00", "timeZone": "Europe/London" }
}
metric.threshold
A number crossed a line
Gives a signal once one of the brand's numbers passes the line set: 10,000 wishlists, a million views. It is told when the number crosses, and a line already passed when the pipeline first reads it is not news, so nothing is said of it.
Takes: nothing. Gives: signal.
Settings:
- From (
source): the connector or import the number comes from, by key, as the Numbers page lists it. Defaultlinks. - Number (
metric): the metric, as its source names it, such as wishlists or views. Defaultclicks. - Only this part (
dimension): one country or one channel, as the source splits it. Default empty, so the whole. - Counted as (
measure): Every day added up (total) or One day's value (day). Default every day added up. - Line (
threshold): the line to cross. Default 1000. - Called (
name): what the number is called in the post, such as "wishlists". Default empty, which uses the metric's own name.
Cost: free.
Example:
{
"id": "wishlists",
"kind": "metric.threshold",
"settings": {
"source": "steam-sales",
"metric": "wishlists",
"threshold": 10000,
"name": "wishlists"
}
}