# instagram-media.tagged

> Sent when a profile's new Instagram post tags your brand, with the Instagram media and the profile.

Breadcrumb: Webhooks › instagram-media.tagged · Updated: 2026-11-12
Docs index: https://docs.cevoid.com/developers/llms.txt

Use it to react when a known customer or creator tags your brand on Instagram, for example to thank them or reward them in another system.

## When it fires

- When Cevoid picks up a new Instagram post that tags your brand and was published by an Instagram account that matches a profile.
- Posts by accounts that match no profile send nothing, and neither do hashtag posts.
- If the post is removed before Cevoid sends the event, nothing is sent.

## Receive it

Pick `instagram-media.tagged` in a webhook destination's events, or tick All events. See [Create a destination](https://docs.cevoid.com/developers/webhooks/set-up.md#create-a-destination).

To filter it or wait before sending, send it from a Flow on the _Instagram tag_ trigger instead. See [Send from a Flow](https://docs.cevoid.com/developers/webhooks/set-up.md#send-from-a-flow).

## Use the media

`instagram_media` has no Cevoid ID: the post becomes a Cevoid post only once you have the rights to use it. `media_url` and `thumbnail_url` are Instagram's own URLs. They expire, and Instagram leaves them out for some videos, so download the file if you need to keep it.

## Payload

```json title="Example payload"
{
  "created_at": "2026-11-02T09:30:00.000Z",
  "data": {
    "instagram_media": {
      "caption": "Summer outfit",
      "external_id": "18000000000000000",
      "media_url": "https://scontent.cdninstagram.com/v/summer-look.jpg",
      "posted_at": "2026-08-01T09:00:00.000Z",
      "slides": [
        {
          "media_url": "https://scontent.cdninstagram.com/v/summer-look.jpg",
          "type": "IMAGE"
        },
        {
          "media_url": "https://scontent.cdninstagram.com/v/summer-look.mp4",
          "thumbnail_url": "https://scontent.cdninstagram.com/v/summer-look-thumbnail.jpg",
          "type": "VIDEO"
        }
      ],
      "type": "CAROUSEL_ALBUM",
      "url": "https://www.instagram.com/p/example/",
      "username": "sarah.lifestyle"
    },
    "profile": {
      "avatar_url": "https://cdn.cevoid.com/avatars/prf_sarah/profile.jpg",
      "bio": "Lifestyle creator and photography enthusiast",
      "birthday": "1992-04-18",
      "country": "US",
      "created_at": "2026-01-15T09:30:00.000Z",
      "email": "sarah.johnson@example.com",
      "external_id": "customer_7391056823401",
      "first_name": "Sarah",
      "id": "prf_sarah",
      "language": "en",
      "last_name": "Johnson",
      "location": "San Francisco, CA",
      "name": "Sarah Johnson",
      "notes": "VIP customer; prefers email communication",
      "social_instagram_handle": "sarah.lifestyle",
      "social_tiktok_handle": "sarah.creates",
      "social_x_handle": "sarah_j",
      "updated_at": "2026-01-20T14:22:15.000Z"
    }
  },
  "id": "evt_m3p82kdq5xw7tz4c",
  "type": "instagram-media.tagged",
  "version": 1
}
```

- `version` (`number`, required): The version of this event type. A published version only gains fields, so ignore fields you do not use; a breaking change is a new version.
- `id` (`string`, required): Stable event id (`evt_` plus 16 characters), also sent as the `webhook-id` header. Retries and manual replays send the same id, so ignore an event whose id you have already processed.
- `type` (`string`, required): What `data` describes. New types are added over time, and an endpoint on "All events" receives them, so ignore any type you do not handle.
- `created_at` (`string<date-time>`, required): When the event happened, as an ISO 8601 timestamp.
- `origin` (`object`): Why your endpoint received the event. Omitted when the event was forwarded without a Flow of your own.
  - `origin.flow` (`object`, required): The Flow that sent the event.
    - `origin.flow.id` (`string`, required): The Flow id, shown in the Flow URL.
    - `origin.flow.name` (`string`, required): The Flow name at the time of sending.
  - `origin.trigger` (`string`, required): The event that started the Flow. One of `order.fulfilled`, `order.delivered`, `product-review.submitted`, `company-review.submitted`, `product-review.replied`, `company-review.replied`, `upload.completed`, `post.approved`, `instagram-media.mentioned`, `instagram-media.tagged`, `profile.program-joined`, `profile.program-left`, `tier.earned`, `reward.fulfilled`, `tier.evaluation-approaching`, `points.expiration-approaching`.
- `data` (`object`, required): The resources the event carries, keyed by resource name. `type` decides which resources are included, and resources your plan does not include are left out.
  - `data.instagram_media` (`object`)
    - `data.instagram_media.external_id` (`string`, required): Media identifier from Instagram.
    - `data.instagram_media.type` (`string`, required): Media type as Instagram reports it. One of `IMAGE`, `VIDEO`, `CAROUSEL_ALBUM`.
    - `data.instagram_media.url` (`string<uri>`): Public Instagram URL of the post.
    - `data.instagram_media.username` (`string`): Instagram username of the account that published the post.
    - `data.instagram_media.caption` (`string`): Caption of the post.
    - `data.instagram_media.media_url` (`string<uri>`): Instagram media URL. Instagram expires it and leaves it out for some videos, so download the file to keep it.
    - `data.instagram_media.thumbnail_url` (`string<uri>`): Preview image of a video. Expires like the media URL.
    - `data.instagram_media.slides` (`object[]`): Slides of a carousel, in order. Omitted for a single image or video.
      - `data.instagram_media.slides[].type` (`string`, required): Media type of the slide. One of `IMAGE`, `VIDEO`.
      - `data.instagram_media.slides[].media_url` (`string<uri>`): Instagram media URL. Instagram expires it and leaves it out for some videos, so download the file to keep it.
      - `data.instagram_media.slides[].thumbnail_url` (`string<uri>`): Preview image of a video slide. Expires like the media URL.
    - `data.instagram_media.posted_at` (`string<date-time>`): ISO 8601 timestamp when the post was published on Instagram.
  - `data.profile` (`object`)
    - `data.profile.id` (`string`, required): Cevoid profile ID.
    - `data.profile.external_id` (`string`): Identifier this profile carries in the workspace source system, when known.
    - `data.profile.name` (`string`): Display name of the profile.
    - `data.profile.first_name` (`string`): First name of the profile.
    - `data.profile.last_name` (`string`): Last name of the profile.
    - `data.profile.email` (`string`): Email address for the profile.
    - `data.profile.avatar_url` (`string`): Profile image URL.
    - `data.profile.country` (`string`): Country code associated with the profile.
    - `data.profile.language` (`string`): Preferred language code associated with the profile.
    - `data.profile.location` (`string`): Free-form location associated with the profile.
    - `data.profile.social_instagram_handle` (`string`): Instagram handle associated with the profile.
    - `data.profile.social_tiktok_handle` (`string`): TikTok handle associated with the profile.
    - `data.profile.social_x_handle` (`string`): X handle associated with the profile.
    - `data.profile.birthday` (`string<date>`): Birthday in YYYY-MM-DD format.
    - `data.profile.bio` (`string`): Profile biography text.
    - `data.profile.notes` (`string`): Merchant notes about the profile.
    - `data.profile.created_at` (`string<date-time>`, required): ISO 8601 timestamp when the profile was created.
    - `data.profile.updated_at` (`string<date-time>`, required): ISO 8601 timestamp when the profile was last updated.

## Related articles

- [instagram-media.mentioned](https://docs.cevoid.com/developers/webhooks/instagram-media-mentioned.md)
- [Event types](https://docs.cevoid.com/developers/webhooks/event-types.md)
- [Webhooks via Flows](https://docs.cevoid.com/flows/webhooks.md)

---

Canonical: https://docs.cevoid.com/developers/webhooks/instagram-media-tagged
