Added our use-case here after discussing with @roger via email support.
We have an affiliate site, where our long-form content can contain both regular links and monetized links. Monetized links you’d think are very simple, but to maximize what we get from them, we have to provide some additional options when generating them.
So, for example, we might have a link in a blog post for a pair for Nike shoes. Our content team really should just need to have a link to the landing page for the offer and our system does its best to choose the best way of monetizing that link from the options we have available for Nike.com. However, we need to provide the content team the option to choose an alternative method as well. This might involve choosing to monetize using connexity, rather than commission junction, as an example.
So, the workflow would be:
- User highlights text
- User chooses to associate a monetized link block (landing url (text), vendor (single link), program (single link), monetized url (text)
- Pastes the link
- We automatically associate it when the vendor of Nike.com from our Vendors model (with option to override if it wasn’t handled correctly)
- We would choose the default monetization method as well for the vendor, with the option to choose the alternatives
- Any time landing url, vendor, or program are changed by the user, our plugin to manage these fields would regenerate the monetized url field
- User would close the settings at this point
All this functionality could be encapsulated in a block or a record, but isn’t possible to implement in this way using the custom link properties that exist in datocms currently. The issue with a record is that we create a lot of links and managing every single link as a record would greatly increase our record usage, which is metered.
Supporting in-line blocks could provide a lightweight method of adding custom data to any section of text where you might want to allow the user to further control special behaviors or formatting without having to use records.