XooCode(){

CommunicateAction

CommunicateAction is an InteractAction subtype covering every verb that conveys information to another person: asking, commenting, replying, sharing, inviting, checking in, informing, and RSVPing. Direct subtypes are AskAction, CheckInAction, CheckOutAction, CommentAction, InformAction (which parents RsvpAction and ConfirmAction), InviteAction, ReplyAction, and ShareAction.

Full example of schema.org/CommunicateAction json-ld markup

The markup is verified as valid with Rich Results Test from Google.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/CommunicateAction
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ShareAction",
  "name": "Shared Copenhagen Marathon 2026 entry announcement",
  "agent": { "@type": "Person", "name": "Sam Xoo" },
  "recipient": { "@type": "Person", "name": "Mette Kristensen", "email": "mette@example.com" },
  "about": { "@type": "SportsEvent", "name": "Copenhagen Marathon 2026", "startDate": "2026-05-17" },
  "inLanguage": "en",
  "startTime": "2026-02-08T19:04:00+01:00",
  "actionStatus": "https://schema.org/CompletedActionStatus"
}
</script>

Direct properties (4)

  • recipient: Audience, ContactPoint, Organization, or Person — who receives the message.
  • about: Thing — the subject of the communication.
  • language: Language (deprecated — prefer inLanguage).
  • inLanguage: Text (BCP-47) or Language.

Most markup skips bare CommunicateAction for the specific subtype — ShareAction for sharing, CommentAction for comments, InviteAction for invitations, RsvpAction for event RSVPs.

Minimal valid version

The smallest markup that still produces a valid CommunicateAction entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.

schema.org/CommunicateAction (minimal)
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "CommunicateAction",
  "agent": { "@type": "Person", "name": "Sender" },
  "recipient": { "@type": "Person", "name": "Receiver" },
  "about": { "@type": "Thing", "name": "Subject of the message" }
}
</script>

Google rich results this unlocks

Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.

  • No dedicated rich result (email markup / ActivityStreams)
    Google docs

Common CommunicateAction mistakes

Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.

  1. 01

    Using language instead of inLanguage

    Wrong
    "language": "en"
    Right
    "inLanguage": "en"

    language is historically overloaded and less consistently honoured; inLanguage takes BCP-47 codes and is what consumers expect.

  2. 02

    Bare CommunicateAction when a subtype fits

    Wrong
    "@type": "CommunicateAction" for a social share
    Right
    "@type": "ShareAction"

    Subtypes (Share, Comment, Reply, Invite, Ask, RSVP, CheckIn) carry the verb's semantics. Bare CommunicateAction is almost always too vague.

  3. 03

    recipient as a string

    Wrong
    "recipient": "mette@example.com"
    Right
    Person / Organization / ContactPoint / Audience node

    Email-address-as-string loses all context. Wrap it in a Person with email, or a ContactPoint.

Also mentioned in 9 other examples

CommunicateAction also appears in AskAction, CheckInAction, CheckOutAction, CommentAction, InformAction, InviteAction, ReplyAction, RsvpAction, and 1 more. See the full CommunicateAction schema page for every reference.

About the example data

Sam Xoo sending a share-via-email action for the Copenhagen Marathon 2026 entry announcement to her training partner.

Comments

Loading comments...

Leave a comment