Scheduled messages
Update a scheduled message
Update the body, schedule time, type, or attachments of a scheduled message
PUT
/
api
/
v1
/
messaging
/
conversations
/
{conversation_id}
/
scheduled_messages
/
{id}
Update a scheduled message
curl --request PUT \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduled_message": {
"scheduled_at": "2026-09-21T14:30:00Z"
}
}
'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}"
payload = { "scheduled_message": { "scheduled_at": "2026-09-21T14:30:00Z" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({scheduled_message: {scheduled_at: '2026-09-21T14:30:00Z'}})
};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'scheduled_message' => [
'scheduled_at' => '2026-09-21T14:30:00Z'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}"
payload := strings.NewReader("{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"attachments": [],
"body": "Team meeting in the conference room at 9 sharp. Bring your Q3 sales numbers.",
"conversation_id": 7731,
"created_at": "2026-09-16T17:45:00Z",
"deleted_at": null,
"edited_at": null,
"emoji_only_count": 0,
"id": 90488,
"mentioned_recipients": [],
"metadata": null,
"pinned": false,
"reaction": null,
"reaction_stats": null,
"replied_to_message": null,
"scheduled_at": "2026-09-21T14:30:00Z",
"seen_by": [],
"seen_by_count": 0,
"sender_recipient": {
"avatar_background": "4F46E5",
"blocked": false,
"blocker": false,
"discarded_at": null,
"first_name": "Dwight",
"id": 48217,
"image_url": "https://cdn.fluid.app/avatars/dunder-mifflin/dwight-schrute.jpg",
"last_name": "Schrute",
"pro_user": false
},
"sent_at": "2026-09-16T17:45:00Z",
"status": "queued",
"type": "DirectMessage",
"updated_at": "2026-09-17T08:02:31Z"
}{
"message": "<string>"
}Authorizations
Bearer token authentication
Body
application/json
Show child attributes
Show child attributes
Response
Success
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The message type the scheduled message is sent as (for example DirectMessage), or null when none was given.
⌘I
Update a scheduled message
curl --request PUT \
--url https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"scheduled_message": {
"scheduled_at": "2026-09-21T14:30:00Z"
}
}
'import requests
url = "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}"
payload = { "scheduled_message": { "scheduled_at": "2026-09-21T14:30:00Z" } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({scheduled_message: {scheduled_at: '2026-09-21T14:30:00Z'}})
};
fetch('https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'scheduled_message' => [
'scheduled_at' => '2026-09-21T14:30:00Z'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}"
payload := strings.NewReader("{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.fluid.app/api/v1/messaging/conversations/{conversation_id}/scheduled_messages/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"scheduled_message\": {\n \"scheduled_at\": \"2026-09-21T14:30:00Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"attachments": [],
"body": "Team meeting in the conference room at 9 sharp. Bring your Q3 sales numbers.",
"conversation_id": 7731,
"created_at": "2026-09-16T17:45:00Z",
"deleted_at": null,
"edited_at": null,
"emoji_only_count": 0,
"id": 90488,
"mentioned_recipients": [],
"metadata": null,
"pinned": false,
"reaction": null,
"reaction_stats": null,
"replied_to_message": null,
"scheduled_at": "2026-09-21T14:30:00Z",
"seen_by": [],
"seen_by_count": 0,
"sender_recipient": {
"avatar_background": "4F46E5",
"blocked": false,
"blocker": false,
"discarded_at": null,
"first_name": "Dwight",
"id": 48217,
"image_url": "https://cdn.fluid.app/avatars/dunder-mifflin/dwight-schrute.jpg",
"last_name": "Schrute",
"pro_user": false
},
"sent_at": "2026-09-16T17:45:00Z",
"status": "queued",
"type": "DirectMessage",
"updated_at": "2026-09-17T08:02:31Z"
}{
"message": "<string>"
}