---
title: "Post Created"
method: POST
path: "postCreated"
tags: ["Webhooks Events"]
---

# Post Created

`POST postCreated` (webhook)

This event is triggered when a post (or draft post) is created or scheduled for one or more
businesses.

If it is a scheduled post, the payload will contain a non-null schedule_time.
If it is a draft post, the payload will have an `is_draft` property set to `true`.

A bulk creation (multiple businesses at once) fires a single event listing every
affected business, rather than one event per business.

## Payload

- object
  - `type` 'post_created'
  - `payload` PostCreatedPayload: Payload for `post_updated` and `post_validated` (and, without `is_draft`, the base shape of `post_created`).
    - `org_id` integer: The organization identifier.
    - `post` PostWebhookContent: Post content shared across every business a create/update call affects — everything except what's inherently per-business (`id`, `business_id`, diffuser state), which only `scheduled_post_pushed` carries since it's always per-post.
      - `bulk_id` integer, nullable: Identifier shared by every post created or edited together in the same bulk call.
      - `post_type` string: The type of the post.
      - `language` string, nullable: Language of the post content.
      - `title` string: Title of the post.
      - `summary` string: Main text content of the post.
      - `cta_type` 'book' | 'order' | 'shop' | 'learn_more' | 'sign_up' | 'call' | 'no_cta': The type of the post to be created. Some type mig.
      - `cta_link` string: Link displayed in the post to redirect the client clicking on it.
      - `start_at` string: For either event or offer post type. Defined when it start. Timezone is defined by the business timezone.
      - `end_at` string: For either event or offer post type. Defined when it end. Timezone is defined by the business timezone.
      - `schedule_time` string: Date and time of when the post will be diffused corresponding platforms. It needs to be at least 2 hours after the time of the request. The timezone used is UTC.
      - `expiration_time` string: This parameter is mandatory when creating a draft post. It indicates when the draft will expire, the time after which BM/GM users will no longer be able to validate and publish the post
      - `validation_time` string, nullable: Date when the draft post was validated by a Business/Group Manager.
      - `post_medias` PostWebhookMedia[]
        - `media_url` union: URLs of the images displayed with the post. **Note:** - Add up to 10 images for multi-image post on Facebook and IG - Multi-image is not supported by Google, only the first image will be displayed - Image ratio must be between 4:5 and 16:9 for IG - All images must be same ratio for IG or they will be crop at the first image ratio by IG
          - string
          - string[]
        - `media_type` string: The type of the media.
        - `media_format` string: The format of the media.
        - `order` integer: Display order of the media among the post's medias.
      - `offer_terms` string: Terms and conditions of the offer
      - `offer_code` string: Offer code that is usable in store or online
      - `created_at` string, datetime: Creation date on Partoo
      - `updated_at` string, datetime: Last update date (either on Partoo or on Partner platform)
      - `created_on_partoo` boolean: Indicates whether or not the post was created using Partoo App/API
      - `updated_on_partoo` boolean: Indicates whether or not the post was updated using Partoo App/API
    - `post_ids` PostId[]: Identifiers of the posts affected by this call, in the same order as `business_ids`: `post_ids[i]` is the post published on `business_ids[i]`. A bulk create/edit fires one event for the whole call rather than one per post.
    - `business_ids` BusinessId[]: The businesses affected by this call, in the same order as `post_ids`. A bulk create/edit fires one event for the whole call rather than one per business.
    - `diffusers` string[]: Names of the diffusers/publishers this post is pushed to.
    - `is_draft` boolean: Whether this call created a draft post (state `to_validate`) rather than a normal post.

## Acknowledgement `200`

Return a 200 status to indicate that the event was properly received

## Other responses

- `500`: An error in range 500-599 will trigger a retry from webhook delivery system, up to 5 times, with an exponential backout. > ⚠️ You may have to deal with events not received in order

---

[API](https://skmtc.dev/partoo/apis/partoo-rest-api.md) - [All operations](https://skmtc.dev/partoo/apis/partoo-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/partoo/apis/partoo-rest-api/revisions/dcb8190f5a29?raw)
