Messages
Every message instance (one per occurrence and sequence message, plus ad hoc messages), with its delivery state. Cursor pagination; the cursor is only valid with the same order.
bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidlimit?integer1 <= value <= 500100cursor?string1 <= length <= 512status?|array<>occurrence_id?stringuuidcommunity_id?stringWhatsApp community id (see /communities).
1 <= length <= 200content_type?stringtext, image, video, voice, document, poll: a message posted in the community. community_update: a step that changes the community's name and/or description at its time (nothing is posted; WhatsApp shows a system line).
"text""image""video""voice""document""poll""community_update"from?stringdate-timeto?stringdate-timeorder?string"asc""asc""desc"One page of messages.
application/json- response
items*array<>next_cursor*string|nullcurl -X GET 'https://app.groupilot.com/api/v1/events/497f6eca-6276-4993-bfeb-53cbbbba6f08/jobs'{ "items": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string" } ], "next_cursor": "string"}bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidThe message.
application/json- response
id*stringuuidoccurrence_id*stringuuidsend_at*stringISO 8601 date-time with offset.
date-timestatus*JobStatusscheduled: waiting for its time. billing_paused: held while the subscription is not active. overdue: its time passed and it was not sent. partial: sent to some communities only. canceled: will not be sent.
"scheduled""billing_paused""overdue""sent""partial""failed""canceled"source*string"sequence""ad_hoc"label*|Your label for an ad hoc message.
identity_label*stringdelivery*content*sequence_message*|nulleditable*booleancancelable*booleanretryable*booleanretrying*booleanretry*has_override*booleanfirst_attempt_at*|ISO 8601 date-time with offset.
date-timesent_at*|ISO 8601 date-time with offset.
date-timeerror_message*string|nullcurl -X GET 'https://app.groupilot.com/api/v1/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string"}Only while editable (not yet attempted, subscription active, not a poll, not a community update: 409 community_update_not_editable). The override wins over the sequence until the message is sent.
bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidapplication/json- body
text?string1 <= length <= 10000media_url?|urilength <= 2000Updated.
application/json- response
id*stringuuidoccurrence_id*stringuuidsend_at*stringISO 8601 date-time with offset.
date-timestatus*JobStatusscheduled: waiting for its time. billing_paused: held while the subscription is not active. overdue: its time passed and it was not sent. partial: sent to some communities only. canceled: will not be sent.
"scheduled""billing_paused""overdue""sent""partial""failed""canceled"source*string"sequence""ad_hoc"label*|Your label for an ad hoc message.
identity_label*stringdelivery*content*sequence_message*|nulleditable*booleancancelable*booleanretryable*booleanretrying*booleanretry*has_override*booleanfirst_attempt_at*|ISO 8601 date-time with offset.
date-timesent_at*|ISO 8601 date-time with offset.
date-timeerror_message*string|nullcurl -X PATCH 'https://app.groupilot.com/api/v1/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08' \ -H 'Content-Type: application/json' \ -d '{}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string"}bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidlimit?integer1 <= value <= 500100cursor?string1 <= length <= 512One page of deliveries.
application/json- response
items*array<>next_cursor*string|nullcurl -X GET 'https://app.groupilot.com/api/v1/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/deliveries'{ "items": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "community_whatsapp_id": "string", "community_name": "string", "number": 0, "status": "string", "state": "string", "reason_code": "string", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string", "reach": { "members_at_send": 0, "delivered_count": 0, "read_count": 0, "read_rate": 0, "measurement_status": "pending", "measured_at": "2019-08-24T14:15:22Z" } } ], "next_cursor": "string"}Sent to the occurrence's communities at send_at. Content is frozen at creation. 30 per day per account. send scope.
bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidapplication/json- body
occurrence_id*stringuuidsend_at*stringAt least 60 seconds in the future.
date-timetype*string"text""image""video""voice""poll"text?stringlength <= 10000media_url?|urilength <= 2000poll?|nulllabel?stringShown in the app next to the message.
length <= 60Scheduled.
application/json- response
id*stringuuidoccurrence_id*stringuuidsend_at*stringISO 8601 date-time with offset.
date-timestatus*JobStatusscheduled: waiting for its time. billing_paused: held while the subscription is not active. overdue: its time passed and it was not sent. partial: sent to some communities only. canceled: will not be sent.
"scheduled""billing_paused""overdue""sent""partial""failed""canceled"source*string"sequence""ad_hoc"label*|Your label for an ad hoc message.
identity_label*stringdelivery*content*sequence_message*|nulleditable*booleancancelable*booleanretryable*booleanretrying*booleanretry*has_override*booleanfirst_attempt_at*|ISO 8601 date-time with offset.
date-timesent_at*|ISO 8601 date-time with offset.
date-timeerror_message*string|nullcurl -X POST 'https://app.groupilot.com/api/v1/events/497f6eca-6276-4993-bfeb-53cbbbba6f08/messages' \ -H 'Content-Type: application/json' \ -d '{ "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "type": "text"}'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string"}bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidCanceled.
application/json- response
id*stringuuidoccurrence_id*stringuuidsend_at*stringISO 8601 date-time with offset.
date-timestatus*JobStatusscheduled: waiting for its time. billing_paused: held while the subscription is not active. overdue: its time passed and it was not sent. partial: sent to some communities only. canceled: will not be sent.
"scheduled""billing_paused""overdue""sent""partial""failed""canceled"source*string"sequence""ad_hoc"label*|Your label for an ad hoc message.
identity_label*stringdelivery*content*sequence_message*|nulleditable*booleancancelable*booleanretryable*booleanretrying*booleanretry*has_override*booleanfirst_attempt_at*|ISO 8601 date-time with offset.
date-timesent_at*|ISO 8601 date-time with offset.
date-timeerror_message*string|nullcurl -X POST 'https://app.groupilot.com/api/v1/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/cancel'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string"}Re-queues only the communities where the send certainly failed before leaving; a send WhatsApp did not confirm is never repeated. send scope.
bearerAuthAuthorizationBearer <token>An API key created in Settings > Integrations (gp_live_…), or an OAuth access token.
id*stringuuidapplication/json- body
mode*stringfailed/partial/overdue: re-queue the communities that certainly failed before sending. force_now: skip the automatic backoff.
"failed""partial""overdue""force_now"Re-queued.
application/json- response
job*deliveries_reset*integercurl -X POST 'https://app.groupilot.com/api/v1/jobs/497f6eca-6276-4993-bfeb-53cbbbba6f08/retry' \ -H 'Content-Type: application/json' \ -d '{ "mode": "failed"}'{ "job": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b", "send_at": "2019-08-24T14:15:22Z", "status": "scheduled", "source": "sequence", "label": "string", "identity_label": "string", "delivery": { "sent": 0, "failed": 0, "total": 0, "certain_failed": 0, "uncertain": 0 }, "content": { "source": "snapshot", "type": "text", "text": "string", "media_url": "string", "poll": { "question": "string", "options": [ "string", "string" ], "select_count": 0 }, "community_update": { "name_template": "string", "description_template": "string", "restore_name": true, "restore_description": true }, "link_preview": true }, "sequence_message": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "order": 0, "timing": "string" }, "editable": true, "cancelable": true, "retryable": true, "retrying": true, "retry": { "count": 0, "max": 0, "next_at": "2019-08-24T14:15:22Z", "last_error_category": "string" }, "has_override": true, "first_attempt_at": "2019-08-24T14:15:22Z", "sent_at": "2019-08-24T14:15:22Z", "error_message": "string" }, "deliveries_reset": 0}