invitation

From IndieWeb


An invitation is an optional feature of an event post (an event with invitations), or a reply to an event post that also notifies a list of invitees that they've been invited to the event, or a special case of that, an RSVP to an event that also invites additional people to it. In all cases, the invitation is also the act of notifying (sending of webmentions to) one or more individuals that they have been invited to an event.

Why

Why invitation posts

Why implement invitation posts?

So you can invite other people from your own site to others' events that they (indieweb community members like Aaron Parecki and Ben Werdmuller) post on their own sites.

Why RSVP with invitations

Why implement RSVP+invitation posts?

So when you RSVP to go to an event you can simultaneously invite others to join you.

Or when you RSVP maybe to an event you can invite others to consider going.

Or when you RSVP no to an event you can invite others to go in your place.

Why publish an event with invitations

Why implement event+invitation posts?

So when you post an event you can at the same time explicitly invite people to it and notify them accordingly.

How to

How-tos for invitations are very similar to the how tos for replies so we won't duplicate common info here.

Display invitations on an event

Whether from the event author or received via invitations from others, events can display invitations in various ways:

  • facepile of icons of those invited
    • perhaps only the most recent n of them (perhaps also limited to only those the (logged in with indieauth) viewer is (XFN) following/friends with) if this gets too large, with a link to expand or view all that are invited. E.g.

      See event#Attendees for more discussion about this silo screenshot demonstrating this.
  • at a minimum a list of those invited, perhaps time-order interleaved with other interactions with the event e.g. comments.

Publish an event with invitations

How to markup invitations inside and event and notify those invited:

  1. List the invitations with elements with class="u-invitee h-card" inside the h-event, that at a minimum link to the homepages of those invited.
  2. Send webmentions from the event post to the homepages of those invited.

(a complete h-event + u-invitee h-card markup example would be nice too)

Publish an invitation

1. Post a reply to an event and follow the microformats2 h-entry plus proposal to also post names/links to the invitees using the proposed u-invitee property:

  • <a class="u-invitee h-card" href="http://caseorganic.com/">Amber Case</a> - however this assumes that you want the invitee's name, hyperlinked, in your readable text. Other h-card markup is of course allowed. You may have multiple invitees inside a single h-entry. Duplicate this markup for each invitee inside the h-entry.

2. Send a webmention to the event post as you would for a reply to any post.

3. Send a webmention to each invitee's homepage (which you've presumably already linked as shown in the example)

See reply#Make_a_comment for more general details on posting replies.

(a complete h-entry + in-reply-to an event + u-invitee markup example would be nice too)

Publish an RSVP with invitations

  1. Publish an RSVP as you normally would, e.g. "going to ... " (event name / link)
  2. in the same post, append some text like "and inviting Alison, Brogan, Clayton" to join me,
    • where A, B, C are each mini h-cards of the form

      <a class="u-invitee h-card" href="Alison-homepage-URL">Alison</a>

      etc.
  3. Send same webmentions as above to event post and each invitee's homepage.

Update an invitation

Similarly, update your post and resend the webmentions.

See reply#Update_a_comment for more general details on updating replies.

Delete an invitation

Similarly, delete your invitation, resend the webmentions, and be prepared to return 410 GONE for your invitation permalink.

See reply#Delete_a_comment for more general details on deleting replies.

IndieWeb Examples

Doug Beal

gRegor Morrill

gRegor Morrill has posted invitation posts on gregorlove.com since 2018-10-05

Previous IndieWeb Examples

Kyle Mahan

Prototypes

gRegor Morrill

These notes did not include u-invitee markup because I was not familiar with it and was writing the notes with Twitter as the intended destination.

IndieWeb Implementations

In datetime order of implementation (earliest first)

Bridgy

Bridgy implemented this for Facebook event invitees on 2014/02/26. Example.

Silo Examples

Facebook

Facebook has invitation posts but they typically only show-up in notifications.

In addition Facebook has a lot of different UI entry points to invite people to events.

Limitations:

  • "You're out of invites" dialog overlay when you've somehow invited too many people to an event. Unclear why/how this happens but you're then given an opportunity buy an ad!

Brainstorming

User Flow

Here is a potential invitation post user flow (from IRC[1]).

  1. Aaron posts an event
  2. Ben posts an invitation to the event, inviting Caseorganic
  3. Ben's site sends webmentions from that invitation post *both* to the event (on Aaron's site), and to Caseorganic (presumably a homepage webmention)
  4. Aaron's event post handles receiving that invitation webmention, using some heuristic as to whether to allow it or not (e.g. it could check if Ben is already invited, and the event allows attendees to invite others or it could check if Ben is a friend, and the event is open to friends and friends of friends or some other option - e.g. just allow all invitations for now)
  5. Caseorganic's site receives the webmention and adds it to the queue of site-level mentions. Upon retrieving the "source" of the webmention, it recognizes (per the home page link being marked up with u-invitee) it as invitation notification
  6. Caseorganic's site shows the invitation notification and provides the option to create an RSVP post in reply to the event post (and in reply to the invitation post!), perhaps even with simple buttons to RSVP "yes" "maybe" "no" "save" (tracking).
  7. Caseorganic posts an RSVP, which replies to (hyperlinks with in-reply-to) Aaron's event post, and to Ben's invitation post.
  8. Aaron's event post handles the RSVP mention as per already figured out on RSVP
  9. Ben's invitation post is updated to note that the invitation was replied to and accepted/tentative/declined (according to the p-rsvp of the RSVP post of yes/maybe/no).

Simplifications welcome.

POSSEing invitations

It makes sense to POSSE invitations for all the same reasons it makes sense to POSSE responses in general. I.e.

Why POSSE an invitation post?

  • POSSE thread reply to the POSSE copy of the event post (e.g. an @-reply to a tweet announcing the event), perhaps even posting the invitation as a multi-reply itself[2].
  • Provide another notification mechanism for indieweb invitees (e.g. @-mentions on Twitter, or notifications on Facebook)
  • Provide a way to for those without their own site to receive notification of the invitation

How to POSSE an invitation post:

POSSEing to Facebook

POSSEing invitations to Facebook must currently be done manually.

The Facebook API does not support sending invitations.[3]

POSSEing to Twitter

POSSEing invitations to Twitter requires:

  • design the "plain text" version of your invitation post (to either create manually, or preferably automatically from your indie invitation post) - please share your design thoughts in this #Brainstorming section.
  • convert any indieweb person links/preferences in your post to Twitter @-names
  • post resulting plain text as a tweet

Rabbithole - plain text *replies* to plain text invitation POSSE copies:

  • of course POSSEing an invitation to Twitter then begs the question of how do the people you @-invite that way @-reply with plain text RSVP semantics that are predictable/discoverable/readable/parsable?

Rabbithole 2 - plain text event / invitation / RSVP flow:

Proxying an invitation

If an invitation post had an explicit in-reply-to to a Facebook POSSE copy of the event, and explicit u-invitee h-card markup of all invitees that included both their indieweb and Facebook profile URLs[4], then a POSSE proxy (like Bridgy Publish) could proxy the invitation to Facebook[5][6], if the FB API actually supported inviting people to events, which as of 2015-03-04 it does not :( [7]

Proxying an invitation to Twitter may be possible (e.g. via Bridgy Publish) but requires defining / designing what a good "plain text" POSSE copy equivalent of an invitation post would/should look like.

See also