Syndication
Syndication hands your channels' posts on to your subscribers: whoever signs up in one of your groups' iframes. You make the channels, the content and the branding; your subscribers post it on their own accounts.
Syndication sits under Publication, beside Channels, and is part of Enterprise. On every plan below, it is not in the menu. Your plan includes a number of subscribers (on Plan they are counted as syndication partners); more can be added on Plan.
How it works
- You make a group of your channels. Each group has an iframe of its own.
- Your coder copies the group's iframe code into your portal, on the page where those subscribers should sign up. You decide who sees which iframe.
- In the iframe, each subscriber signs themselves up: they choose the feeds they want, and give an email address and/or a webhook address, as the group allows.
- From then on, every post of the feeds they chose reaches them when it is handed over to you. If a channel asks for approval, the subscriber gets the post once it is approved, as you do.
Some ways to use it:
- One client, one channel. Make a group with the one channel you made for that client, and put its iframe on that client's page only. With one channel there is nothing to choose: they give an address or a webhook and receive it.
- Everybody, every feed. Make one group of all your feeds and put its iframe before all your subscribers. Each chooses the ones they want: all, some or one.
- By language. Make a group per language and show each subscriber the iframe of theirs, by your own portal's rules.
Nothing a subscriber does is reported back, and your Posts screen follows your own hand-over only. If a group's iframe reaches somebody it should not, make a new group and remove the old one.
Syndication groups
The first card lists your groups: each one's name and description, how many feeds it hands on, how its posts reach subscribers, the sites it may be shown on, and how many signed up. Add group opens the group's dialogue; Settings on its row opens it again. Everything about a group is in it:
| Name | Yours alone, to tell your groups apart. Subscribers never see it. |
| Description | What subscribers read at the top of its iframe. |
| Channels | A table of your channels, with their platform, ratio and language, searched, ordered and paged like every list; tick the ones the group hands on. They are offered to subscribers as feeds. With one channel there is no choice to make and nothing is shown: every subscriber receives it, even after you swap that channel for another. With several, each subscriber chooses the ones they want. |
| How its posts reach subscribers | By email, an email with a link to the post kit, and/or by webhook, a signed call to the subscriber's own system. At least one. The group decides, whatever its channels hand over by themselves. |
| Where it may be shown | The site whose pages may show it, such as https://portal.example.com, several separated by commas. Anywhere else, browsers refuse to show it, and the page does not open on its own either. Empty is any site. |
| The code for your portal | The iframe code, once the group exists. After Add group the dialogue stays open to show it. |
| Customer IDs (optional) | The group's portal key, and the code your coder needs to tell the page which of your customers is looking. See Your own customer IDs below. |
| What subscribers see | Logo and title in the sign-up page: on, the page starts with your logo and title as the emails do; off, it starts with its first card, for a portal that shows it under a header of its own. Then three buttons, each opening an example in a dialogue of its own: the sign-up page in the iframe (its Sign up button does nothing there); an email that a post is ready; and the post kit it opens, built from your newest post of the group's channels where there is one, else from a sample. All three are drawn in your branding from the values in the dialogue, saved or not, so they are there in Add group before the group exists. |
Closing the dialogue with a change unsaved asks whether to save it, discard it or keep editing, as the Branding and Email settings dialogues do.
A channel added to a group is offered to its subscribers as a new feed; one taken out is no longer handed on. Remove on the group's row takes the group away with its iframe and its subscribers, once you have typed the group's name to confirm it.
Subscribers on a group's row lists who receives its posts: your customer ID for them where your portal gave one or you typed one, their email address, their webhook, how many feeds they take, their source (Self-service for those who signed up in the iframe, Added by owner for those you added), and their status: whether posts reach them, or what they still wait for (an address to be confirmed, a webhook to answer its test). Search by customer ID, address or webhook, newest or oldest first, and choose how many to a page, as on every list. At the top of it:
- Add subscriber manually adds one yourself: their feeds where the group has several, an email address and/or a webhook as the group allows, and your customer ID for them if you have one. An address still gets an email asking its owner to confirm it, since only they can say yes to it, and a webhook still gets a test call first. Adding a webhook shows the group's signing secret once, to pass on to them: they never saw the iframe that shows it.
And on each row:
- Settings changes their customer ID, their feeds, their email address and their webhook. Another address gets an email asking its owner to confirm it, and the one confirmed keeps receiving until they do; another webhook gets a test call first. Emptying the address or the webhook stops that way.
- Block stops everything to them, and the same address, webhook or customer ID cannot sign up in the group again until you Unblock them. A blocked subscriber does not count against your plan.
- Remove takes them off for good, with their lines in the log. They can sign up again in the iframe; block them instead to keep them out.
The page tells the frame around it how tall it is, as a postMessage:
{ type: "partner-frame:height", height }. A portal can use it to size the frame:
<iframe id="partner-page" src="..." style="width:100%;height:900px;border:0"></iframe>
<script>
window.addEventListener("message", (event) => {
const frame = document.getElementById("partner-page");
if (event.source === frame.contentWindow && event.data?.type === "partner-frame:height") {
frame.style.height = `${event.data.height}px`;
}
});
</script>
Your own customer IDs
Where your portal knows who is signed in, it can tell the page, and the page then shows that customer what they signed up with, to change or stop. Your coder adds two values to the iframe's address:
<iframe src="https://reelwire.io/embed/...?customer=C-1001&sig=SIGNATURE" ...></iframe>
customer is your own ID for them, up to 100 characters, and sig is its signature: the
HMAC-SHA256 of the ID, keyed with the group's portal key, in hex. The dialogue shows the key and
the one line that makes the signature in Node.js, PHP, Python and C#. Make it on your server,
never in the browser: the address can be edited by anybody, and an ID without the right signature
is refused, so nobody can see or change another customer's sign-up by typing their ID. A customer
signs up once per group; their ID is shown beside them under Subscribers.
What a subscriber does in the iframe
The page has a card for each thing to give:
- Your feeds: the ones they want, where there are several.
- By email: an email address. An email asks its owner to confirm it, and nothing else is sent to it until they do. Every email has a link to stop them.
- By webhook: a webhook address, and under it the group's signing secret, with a Copy button and example code for checking a call in Node.js, Python, PHP and C#: every call to the group's webhooks is signed with it, so a subscriber's system can check that a call came from you. The webhook gets a test call as it signs up, and posts go to it once it has answered one with a 2xx; the iframe offers another test until it does. To stop, the webhook answers a call with 410 Gone.
One Sign up button under the cards signs them up by both. A customer your portal named is told at the top whether they are signed up in this group, and with what; where they are, they see their feeds, address and webhook filled in, with where each stands, and the button reads Save: emptying a field and saving stops that way. A blocked customer is told that posts from here are not sent to them any more, and gets nothing to sign up with.
Each group has one signing secret, made with the group; you never need to see it. There is no account and no settings page beyond that: somebody your portal did not name, who wants other feeds or another address, signs up again. The same email address cannot sign up twice to one group; the same webhook signed up again before it answered a test replaces the first. Sign-ups that confirm nothing within a week, and ones that stopped, are removed. A few sign-ups an hour are accepted from one internet address. Everybody who can receive something counts against your plan; when it is full, the iframes take nobody new.
What a subscriber receives
- By email: an email saying the post is ready, with a button to their post kit: the video to download or share, the cover, the text with a copy button, and a prompt for an AI assistant. It has no Mark as published and no Skip.
- By webhook: the same signed call format as your own webhook call, cut to the feeds they chose. See Syndication in the API manual.
A change to a post and a request to take one down reach the subscribers who were given that post, and nobody else. A resend of a post to your own people is not sent to subscribers.
Email settings
The emails to your subscribers go one of two ways, chosen at the top of the dialogue:
- From an address on reelwire.io, through Reelwire's mail service. You choose the part before the
@, such as
acme-news@reelwire.io: up to 40 lower case letters, digits, dots and hyphens, and nothing else can be typed there. No mailbox stands behind it and nothing sent to it is read, so set Replies go to to an address of yours that somebody reads. Until you choose one, emails come from Reelwire's no-reply address under your name. - Through your own mail server (SMTP), from your own address. Fill in what your mail provider's settings say:
| Mail server | Its name, such as mail.example.com. It must be on the internet. |
| Port and security | 587 with STARTTLS is the usual; 465 with TLS; 25 and 2525 are there too. |
| Login | The mail account's user name, often its address, and its password. The password is kept encrypted and never shown again: a saved one shows as dots, and stays unless you type a new one over it. |
| Address to send from | The address your subscribers see the emails come from: one your mail account may send as. |
Saving tries the mail server first. If it does not answer or does not take the login, nothing is saved and the dialogue says what the server said. Emails that go through your own server are yours: whether they arrive depends on your server and your domain's settings, and a bounce comes back to your mailbox, not to Reelwire.
Either way, the sender's Name is your branding's title and follows it, until you give it a name of its own, and Replies go to takes an address of up to 254 characters, the letters, digits and signs an address is made of. Send a test email sends one email in your branding, the way the values in the dialogue say, saved or not, to your own address.
Branding
Everything a subscriber sees wears your branding: every group's iframe, every email, and the post kit an email opens. It is your logo, a title beside it, a footer under the card, and four colours:
| Colour | What it colours |
|---|---|
| Page | the background behind everything |
| Card | what the words sit on |
| Accent | buttons and links |
| Signature | the title beside the logo, and every heading |
Every other colour follows from these: words are dark or light by what they sit on. The logo is a PNG, JPEG or GIF from your media library, at most 512 KB, because it travels inside every email. The dialogue shows an email as a subscriber will see it while you choose, and asks before closing with a change unsaved. Nothing a subscriber sees carries Reelwire's name, with one exception: with neither a logo nor a title of your own, Reelwire's logo and name stand at the top instead. The texts still call you by your workspace's name.