Autoresponders
An autoresponder answers incoming messages for you. When a customer’s message arrives on one of its accounts, matches
its condition and falls inside its schedule, Replyco replies with the autoresponder’s template. Through the API an
autoresponder has exactly one condition; you list, read, create and replace autoresponders, and switch one off with
inActive.
Fields that matter
Section titled “Fields that matter”| Field | Meaning |
|---|---|
id |
The autoresponder’s id, for GET and PUT /openapi/autoresponder/{id}. |
name |
Its name in the Replyco app. |
templateId |
The template sent as the reply; see Templates. |
accountIds |
The accounts whose incoming messages it answers; see Accounts. |
condition.target |
Which part of the message to test: 1 sender, 2 subject, 4 body, 8 language, 16 the customer’s name. |
condition.mode |
How to compare: 0 contains, 1 does not contain, 2 starts with, 3 ends with, 4 equals. |
condition.value |
The text to look for. Separate several values with ;: any of them matches. Case and spaces are ignored. |
frequency |
0 (once) replies only to the first message the customer sends in a ticket; 1 (continuous) to every matching message. |
priority |
When several autoresponders match, they run from the lowest number up. |
inActive |
true switches the autoresponder off. |
Schedule
Section titled “Schedule”| Field | Meaning |
|---|---|
startDate, endDate |
The days it is active. Set both to the same date to make it active on every day. |
isActiveTimeRanged, startTime, endTime |
When isActiveTimeRanged is true, it replies only between startTime and endTime (HH:MM:SS). A start after the end spans midnight. |
weekdays |
The days of the week it replies on, 0 for Sunday to 6 for Saturday. |
isSendOutsideWorkingHours |
true makes it reply only outside your company’s working hours, in place of its own time window and weekdays. |
delay, delayHours |
A fixed wait before the reply: delay minutes plus delayHours hours. Send both, with 0 for the part you do not use. |
delayInRange, delayRangeFrom, delayRangeTo, delayRangeToHours |
With delayInRange set to true, a random wait between delayRangeFrom minutes and delayRangeTo minutes plus delayRangeToHours hours. Send all three. |
A reply sent by an autoresponder appears among the ticket’s messages with autoresponseId and autoresponseName set
(see Messages). When your team replies through POST /openapi/message/send, the ticket’s
autoresponder replies that are still in progress are cancelled.
Listing
Section titled “Listing”GET /openapi/autoresponder returns every autoresponder of your company in one list, switched-off ones included. It
takes no parameters and has no pages. GET /openapi/autoresponder/{id} returns one, and answers 404 when no
autoresponder has that id.
An autoresponder built in the Replyco app can have several conditions. The API shows it by its first condition, and a
PUT replaces all of them with the one you send.
Creating and replacing
Section titled “Creating and replacing”POST /openapi/autoresponder creates an autoresponder and PUT /openapi/autoresponder/{id} replaces one. Both take the
same body, so you can read an autoresponder, change it and send it back. Send name, templateId, at least one id in
accountIds, and a condition with a value, and keep startDate on or before endDate. A PUT replaces the
condition and the list of accounts with what you send.
curl -X POST https://open-api.replyco.com/openapi/autoresponder \ -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json" \ -d '{ "name": "Invoice requests, weekdays", "templateId": "6b2d8e14-3c7a-4f19-a0b5-9e4d2c1f7a83", "accountIds": ["3f1c2a9e-7b4d-4e8a-9c21-5d6f0a1b2c3d"], "condition": { "target": 2, "mode": 0, "value": "invoice;receipt" }, "frequency": 0, "isActiveTimeRanged": true, "startTime": "09:00:00", "endTime": "17:00:00", "weekdays": [1, 2, 3, 4, 5], "startDate": "2026-11-02T00:00:00Z", "endDate": "2026-11-02T00:00:00Z" }'Each POST creates a new autoresponder, so a retried create leaves two. There is no delete operation: to stop an
autoresponder, replace it with inActive set to true.
Operations
Section titled “Operations”| Method | Path | Summary | Scopes |
|---|---|---|---|
| GET | /openapi/autoresponder |
List autoresponders | — |
| POST | /openapi/autoresponder |
Create an autoresponder | — |
| GET | /openapi/autoresponder/{id} |
Get an autoresponder by id | — |
| PUT | /openapi/autoresponder/{id} |
Update an autoresponder | — |
Errors
Section titled “Errors”| Status | Meaning | Returned by |
|---|---|---|
| 400 | The request is invalid (missing fields, no condition, no accounts, or startDate after endDate).; The request is invalid. | POST /openapi/autoresponder, PUT /openapi/autoresponder/{id} |
| 401 | User is not authenticated or authorized. | GET /openapi/autoresponder, POST /openapi/autoresponder, GET /openapi/autoresponder/{id}, PUT /openapi/autoresponder/{id} |
| 404 | No autoresponder with the given id exists. | GET /openapi/autoresponder/{id}, PUT /openapi/autoresponder/{id} |
Related
Section titled “Related”- Templates: the replies an autoresponder sends.
- Automation rules: change tickets automatically instead of replying.
- Messages: see which replies an autoresponder sent.
- API reference: every field of
AutoresponderRequestandAutoresponderModel.