Daylite
CRMConnect AI agents to Daylite by Marketcircle, a CRM and productivity app for Apple-centric small businesses. Agents manage contacts, companies, opportunities, projects, tasks, and appointments, and maintain webhook subscriptions against those records.
What This Integration Enables
Daylite is a CRM for Apple-centric small businesses, and the thing that separates it from a sales pipeline tool is that it carries projects alongside opportunities. That distinction matters more than it sounds. A consultancy, a design studio, or a small professional firm does not stop caring about a client when the deal closes, it starts delivering, and Daylite models the delivery as a first-class object rather than as a closed-won record with tasks bolted onto it. This connector covers both halves: contacts, companies, and opportunities for the winning, projects, tasks, appointments, and notes for the doing, and users and forms for the context around them. An agent working here earns its keep at the seam, taking the moment a deal is marked Won and turning it into a project with a kickoff appointment and assigned onboarding tasks, which is exactly the handover that small firms drop when everyone is busy.
The mechanics reward a little care up front. Related and linked fields are expressed as reference URLs, for example /v1/users/1000 or /v1/contacts/2000, so when a parameter asks for an owner or a linked object it wants the reference URL, and the Users, Pipelines, Pipeline Stages, and Teams dictionaries return exactly those URLs as their values. Create and update actions expose the common attributes directly and accept an Additional Fields object for the full documented payload, where names must match the API exactly, including phone_numbers, extra_fields, and local_start. Enum parameters present friendly labels and are mapped to Daylite wire values before sending, so Task Status "Done" becomes done, Opportunity State "Open" becomes open, Project Status "New" becomes new_status, and Appointment "Busy" becomes busy. The Search actions POST a filter object where each field carries a comparison operator such as equal, not_equal, contains, starts_with, blank, or equal_ignore_case, paginated with Limit and Start, and a Full Records flag decides whether you get full objects or reference URLs back. Authentication is OAuth 2.0 through Marketcircle, with access tokens expiring after an hour and refresh tokens rotating on every use so the previous one is immediately invalidated, which FlowRunner handles. Two points of honesty about events and deletion. Daylite documents a webhook subscription API and this connector exposes List Webhook Subscriptions, Create Webhook Subscription, and Delete Webhook Subscription as actions, which subscribe a target URL of your choosing and do not create a FlowRunner trigger, because the vendor documentation does not specify the delivered payload shape. This connector therefore ships no triggers, subscriptions are removed after ten consecutive failed deliveries, and a scheduled poll on the List actions is the reliable change detection path. And deletes here are permanent: the delete actions remove the object outright, while Include Trash on the List actions only lets you see objects a person already trashed.
Without FlowRunner
With FlowRunner
Use Case Scenarios
A won deal that becomes a delivery instead of a celebration
An opportunity reaches the point where it should be marked Won. The agent calls Get Opportunity to read its current state, amount, and owner, then Update Opportunity to move the state, mapping the friendly label to the won wire value. That state change is the trigger for everything Daylite is actually good at: Create Project opens the delivery record with a status resolved from the account's own configuration, Create Appointment books the kickoff with local_start supplied through Additional Fields so the time lands correctly, and Create Task writes the onboarding checklist assigned to the right Daylite user, each owner passed as a reference URL taken from the Users dictionary rather than as a name. Create Note on both the opportunity and the new project records what was agreed, so the person delivering reads the same story the person selling told. A summary posts to the team in Slack.
A lead list that lands linked rather than loose
A referral list or an event export arrives in Google Sheets. For each row the agent calls Search Contacts with a filter using equal_ignore_case on the email address, because case-insensitive equality is a real match while contains on a name is a coin flip. Where the person exists, Update Contact enriches them and Create Note records the new touchpoint. Where they do not, the agent calls Search Companies first, then Create Company if the organisation is genuinely new, and only then Create Contact linked to it, so nothing is created orphaned. Where the row implies commercial intent, Create Opportunity opens the deal with a pipeline and stage resolved from the dictionaries, both as reference URLs. Full Records is set deliberately on the searches: reference URLs are enough to check existence, and full objects are only pulled where the flow needs to compare fields.
A follow-up sweep that finds the work nobody assigned
On a schedule the agent runs Search Tasks with a filter for tasks past their due date and Search Opportunities for deals in the Open state whose owner has no scheduled appointment in the next fortnight. It calls List Appointments and List Users to resolve who is genuinely available, and Get User to attach names to the report. The output is a short list for each owner rather than a dashboard nobody opens, delivered to the individuals concerned, with the option for each of them to have the agent call Create Task or Create Appointment on their behalf. Include Trash is left off here on purpose, because a record someone trashed is a record someone decided about, and a sweep that resurfaces it as outstanding work is a sweep people stop reading.
Human-in-Loop Highlight
Daylite has a trash, and that is precisely why the delete needs a gate. The List actions accept an Include Trash flag, so an agent can see objects a person already sent to the trash, which makes "clean up the trash" a natural thing to ask an automation to do. But Delete Contact, Delete Company, Delete Opportunity, Delete Project, Delete Task, Delete Appointment, and Delete Note do not empty the trash, they remove the object outright, permanently, and the trash is not the agent's undo. The damage does not stop at the deleted record either, because Daylite expresses relationships as reference URLs such as /v1/contacts/2000. Delete a contact and every opportunity, project, appointment, and note that pointed at it keeps pointing at a URL for something that no longer exists, so the history of a live project loses the person it was about. Small firms feel this immediately, because the deleted record is usually the one client everybody knew by name and nobody wrote down twice. So the agent assembles the evidence and stops. It runs Search Contacts and List Contacts with Include Trash to separate what a person trashed from what merely looks stale, calls Search Opportunities and List Projects to find live records whose reference URLs point at the candidates, and posts to the practice owner: "184 contacts match the cleanup rule. 121 were already trashed by someone here and have no live references. 48 are untrashed and simply inactive. 15 are referenced by an open opportunity or an active project, listed with the record that points at them. Delete removes the object outright and the trash does not bring it back, and anything referencing a deleted contact keeps a reference URL to nothing. Delete the 121, delete the 121 and the 48, or export the whole list for review first?" The owner replies once, and only the approved set becomes Delete Contact calls. This is the human-in-the-loop moment on a platform that offers both a trash and a permanent delete, because a person can tell the difference between a record that is finished and a record that is quiet.
Agent Capabilities
45 actionsContacts
6- List Contacts Returns contacts with paging, and accepts Include Trash to also return objects currently in the trash. Used for coverage sweeps and scheduled change detection.
- Get Contact Retrieves a single contact. Used to confirm current detail and ownership before an update is composed.
- Create Contact Creates a contact, with nested emails, phone numbers, addresses, and keywords supplied through Additional Fields using the API's exact names.
- Update Contact Updates a contact. Used to enrich a known person rather than create a second record for them.
- Delete Contact Removes the contact outright. This is permanent and is not the same as the trash, so it runs only on a set a person has approved.
- Search Contacts Posts a filter object where each field carries an operator such as `equal`, `contains`, `starts_with`, `blank`, or `equal_ignore_case`, paginated with Limit and Start. Full Records decides whether full objects or reference URLs come back.
Companies
6- List Companies Returns companies with paging and an Include Trash option. Used to resolve organisations in bulk before a join.
- Get Company Retrieves a single company. Used to load account context before routing or reporting.
- Create Company Creates a company. Called before Create Contact on a new account so the person attaches to something real.
- Update Company Updates a company. Used to keep organisation detail aligned with an authoritative source.
- Delete Company Removes the company outright and permanently, leaving records that referenced it pointing at a URL with nothing behind it.
- Search Companies Posts the same filter shape as Search Contacts against companies. Used for the deduplication check before a create.
Opportunities
6- List Opportunities Returns opportunities with paging and an Include Trash option. Used for pipeline sweeps.
- Get Opportunity Retrieves a single opportunity with its state, amount, and owner reference. Used to confirm state before a move.
- Create Opportunity Creates an opportunity with a pipeline and stage supplied as reference URLs from the dictionaries, and a state whose friendly label maps to the Daylite wire value.
- Update Opportunity Updates an opportunity, including moving its state from Open to Won or Lost. This is the moment a delivery flow should begin.
- Delete Opportunity Removes the opportunity outright and permanently, taking the deal history with it.
- Search Opportunities Posts a filter object against opportunities with paging and the Full Records flag. Used to find stalled or unattended deals.
Tasks
6- List Tasks Returns tasks with paging and an Include Trash option. Used for overdue and unassigned sweeps.
- Get Task Retrieves a single task with its status and priority. Used to confirm assignment before acting.
- Create Task Creates a task assigned to a user by reference URL, with a status whose friendly label maps to the wire value, for example "Done" to `done`.
- Update Task Updates a task, including reassignment and completion. Used to close out follow-ups the flow itself satisfied.
- Delete Task Removes the task outright and permanently.
- Search Tasks Posts a filter object against tasks. Used to find work past its due date across owners.
Appointments
5- List Appointments Returns appointments with paging. Used to resolve genuine availability before proposing a booking.
- Get Appointment Retrieves a single appointment with its show-as value, where "Busy" maps to `busy`.
- Create Appointment Creates an appointment, with `local_start` and other timing fields supplied through Additional Fields under the API's exact names.
- Update Appointment Updates an appointment, including rescheduling and changing how it shows on a calendar.
- Delete Appointment Removes the appointment outright and permanently.
Projects
5- List Projects Returns projects with paging and an Include Trash option. Used to see live delivery work when assessing whether a related record is safe to remove.
- Get Project Retrieves a single project with its status. Used to confirm delivery state before a write.
- Create Project Creates a project with a status whose friendly label maps to the wire value, for example "New" to `new_status`. This is the action that turns a won deal into delivery work.
- Update Project Updates a project, including its status as delivery progresses.
- Delete Project Removes the project outright and permanently, along with the record of what was delivered.
Notes
4- List Notes Returns notes with paging. Used to read what has already been recorded on a record before adding to it.
- Create Note Appends a note to a contact, company, opportunity, or project. Used to preserve why an automated decision was made where a colleague will later read it.
- Update Note Edits an existing note without removing it from the record's history.
- Delete Note Removes the note outright and permanently.
Users
2- List Users Returns Daylite users, whose reference URLs are what owner and assignee parameters expect. Used to resolve who should hold a record.
- Get User Retrieves a single user. Used to attach a real name to a routing decision or a report.
Forms
2- List Forms Returns the forms defined in the database. This surface is read-only, so a flow can see what forms exist and reason about them without altering them.
- Get Form Retrieves a single form definition. Used to understand the structure behind captured data before mapping it onto a record.
Webhooks
3- List Webhook Subscriptions Returns the current subscriptions. Used to audit which external endpoints are receiving Daylite events and to spot ones that have gone quiet.
- Create Webhook Subscription Registers a target URL of your choosing for events written as `object.operation`, where the object is contact, company, task, appointment, project, or opportunity and the operation is insert, update, trash, or delete. This subscribes an external endpoint and does not create a FlowRunner trigger. A subscription is removed after ten consecutive failed deliveries.
- Delete Webhook Subscription Removes a subscription. Used to stop delivery to an endpoint that has been retired.
Frequently Asked Questions
What can FlowRunner do with Daylite?
FlowRunner agents can run List Contacts, Get Contact, and Create Contact in Daylite, plus 42 more actions.
Does connecting Daylite to FlowRunner require OAuth?
Yes. Daylite connects to FlowRunner with OAuth 2.0, so agents authenticate without handling raw credentials.
Can Daylite trigger a FlowRunner workflow automatically?
Daylite doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.
Start building with Daylite
$100 in credits. No card required. Connect in minutes.