- Brand
- Discriminantly
- Category
- Travel & Hospitality
- Primary Subcategory
- AI Trip Planners & Itinerary Builders
Integration details
Description
Keep the things you notice, the places you go, and the experiences worth remembering with Discriminantly. Add to your collection naturally through conversation with ChatGPT, revisit what you’ve kept, organize interests and travels, and turn the places you’re considering into itineraries and plans. The more you keep, the more context you have at hand when you want to remember, explore, or plan what comes next.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Trip Planners & Itinerary Builders
- Secondary Subcategories
- None listed
- Brand
- Discriminantly
- Access
- Account required
- First tracked
- 2026-10-10
- Tool count
- 67
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Discriminantly
Get updates when Discriminantly’s Discoverability Score or category rank changes.
Competing in ChatGPT AI Trip Planners & Itinerary Builders
View Category67 tools agents can invoke
Post a new note to discriminant.ly as the connected member. Use when the user wants to note, log, bookmark or post a fine object. If that thing was already recommended to them, its existing record is kept instead of a duplicate being made.
note_object
Add a constituent to an Ensemble that already exists. Upload the piece's image with upload_image first and pass the uid as `image_uid`. Same identity rules as create_pending_ensemble: a clearly identified piece can become a note when the member keeps the Ensemble, while an uncertain one stays unidentified.
add_ensemble_component
Add a travel mark: a place the member wants to remember — a restaurant, hotel, shop, view — whether or not they have been. A mark is not a visit: record a visit only when they say they went, with visited_on here or log_visit later. If the place was already recommended to them, its existing record is kept instead of a duplicate being made. Use this rather than note_object when the subject is a place, not a thing. Call verify_place first unless the member has given a precise address or you already know the place well; pass its coordinates through as lat/lng so the mark is grounded rather than guessed.
add_travel_mark
Add another generated image to an existing Ensemble — a further version of the same composition. Becomes the primary image unless told otherwise; earlier versions are kept. Upload the new composition with upload_image first and pass the uid it returns as `image_uid` — that is the preferred path and re-sends nothing.
add_ensemble_artifact
Add one or more stops to an itinerary in a single call — pass every stop the member just listed, not one call each. A stop is a parcel of intended time: it does NOT need to be a known travel mark. Use kind "particular" when they mean a specific place you cannot yet name ("that tapas place Flora recommended"), "experiential" when the words are the whole intention ("some chilli crab"), and "allocation" for deliberately open time ("leave the afternoon free"); all three are complete as they stand and none is a defective mark. A stop records what the member INTENDS, never what happened: if they are telling you they have already been somewhere, that is log_visit against the travel mark, not a stop. Attach a specific place (mark_uid, or new_place) when the member identified it, or when you selected and grounded it while building a plan the member asked you to build: resolve_travel_mark returns the mark_uid to pass. Do not add unrelated suggestions to an existing plan outside that request.
add_itinerary_stops
Create days, put stops on them, and set order, in one call. Set an order when the member gave one, or when the member asked you to plan or arrange the itinerary and the order is part of the plan you are building. Do not reorder a plan the member arranged themselves unless they ask you to optimise or replan it. An itinerary with no asserted sequence is perfectly normal. Arranging records intention only: no visits, bookings or check-ins.
arrange_itinerary
Attach one of the member’s notes to a stop in one of their plans, or detach it (attached: false). It means only "this is worth noticing, seeking or trying at this stop": not a purchase, ownership, reservation, check-in or warrant. In a plan they have kept, only a kept note can be attached: if the note is only recommended, ask whether they want to keep it rather than keeping it for them. In a recommended plan, a recommended note can be attached. Never make a note from a vague category: record it as a recommendation instead (record_recommendations). Attaching a note that is already there changes nothing. Returns the plan’s notes by stop.
set_stop_note
Write a whole itinerary the member asked you to build, in one step: the plan, its days, a canonical travel mark for each place you chose, the stops, and their order; then it audits the result. Use it when the member asked you to plan or build a trip ("help me plan a day in Taipei") and you have chosen the stops. Not for changing a plan they already have (add_itinerary_stops, arrange_itinerary), not for optional ideas (record_recommendations, For another time), and not for recommending. Places are resolved exactly as resolve_travel_mark does, target_state canonical: an exact existing mark is reused, never duplicated. Ambiguity is checked before anything is written: if any place may be one they already have (a probable match), nothing is written and the candidates come back; resolve them and call again (with allow_distinct_from_candidate on that place if it is different). Otherwise everything is written in one transaction, or nothing: a failure leaves no partial plan. The plan is private unless private is false. It records intention only: never a visit, check-in, booking, ownership or warrant. Returns the itinerary, day and stop uids, the marks it used or created, and the audit; follow with record_recommendations for For another time.
build_itinerary
Set or change time on an itinerary, a day, or a stop. Give only the components the member asserted; omitted components stay as they were, and nothing is invented. intent matters for the record: "refine" when the plan simply got more precise (fall 2028 -> October 2028), "correct" when the earlier assertion was wrong ("no, October, not fall"). OMIT intent when you do not actually know which — an honest plain edit is recorded instead of a guess.
update_itinerary_temporal
Check the For another time proposals made after one of the member's plans: whether each of the three (same city, similar, different) is present, and anything malformed (no relation, a proposed plan that is missing or empty, or more than one of a kind). Use it after recording For another time itineraries with record_recommendations, before telling the member they are there. Read-only: it never creates, fixes or removes a proposal; record a missing one with record_recommendations and add its stops with add_itinerary_stops. Returns the recommendation uids for each relation. Complements list_recommendations, which lists them for the member.
audit_recommendation_expansion
Check one of the member's itineraries for structural completeness and travel mark linkage, and return the exact stop and mark uids that need attention. Use it after building or repairing a plan in several steps, or after keeping a recommended plan, before telling the member it is done. Read-only: it never creates, resolves, enriches, reorders or deletes anything; fix what it reports with resolve_travel_mark, resolve_itinerary_stop, arrange_itinerary or edit_travel_mark. satisfied reflects only the expectations you pass (no_conflicts by default); a missing website or note never fails a plan, and experiential or open-time stops are complete as they are. Complements my_itineraries, which shows the plan itself.
audit_itinerary
Add a check-in to an existing travel mark — one visit. A single day is the common case: a date and, if the member said something, a line about it. If they remember being there but not when, set date_unknown and skip the date entirely — that still counts as having visited. A CONTINUOUS multi-day visit (a hotel stay, a few days somewhere) is still ONE check-in: give ended_on as well, and optionally attach a note to individual days inside the range with `days`. Two separate trips are two separate check-ins, however close together. Never split one stay into several check-ins.
log_visit
Choose which generated image represents the Ensemble — "keep the second one" / "go back to the first".
set_primary_artifact
Find, and when the member confirms delete, records that were never kept and that nothing uses any more: places or things left from a recommended plan that was deleted, or from recommendations they turned down. A record is a leftover only if it is not kept, no plan, stop, stop note or composition holds it, it has no check-in, ownership, warrant or comment, and no open recommendation points at it. Without confirm it only lists them; with confirm: true it deletes exactly those, recording each deletion. Never touches anything the member kept. Use when the member asks to tidy up old suggestions, not on your own initiative.
clear_prospective_leftovers
Post a comment on a note or travel mark as the connected member — a remark in the conversation around it. Say something only when the member has actually told you what to say, or clearly asked you to respond on their behalf; never invent an opinion for them, and never use a comment to record that they own, endorse or visited something. Those are different acts with their own tools: record_note_ownership, warrant, and log_visit. Commenting on someone else's note is fine where the member can see it; a private record belonging to another member cannot be commented on.
comment
Counts and breakdowns of the connected member's catalogue: totals, notes by collection, marks by country, and how many entries have no image. Use this for "how many" or "what is my" questions rather than counting a list yourself.
catalogue_stats
Permanently delete one of the member's own check-ins — the record that they went at all. Any notes on individual days inside it go with it, since those describe that visit. The travel mark itself and its other check-ins are untouched. To shorten a visit rather than erase it, or to drop a single day's note, use edit_checkin instead. Cannot be undone.
delete_checkin
Permanently delete one of the connected member's own notes. Cannot be undone. Ensembles that included it are not deleted: each piece that was this note stays, as an unidentified piece, and a recommendation of it stays as history.
delete_note
Permanently delete one of the connected member's own travel marks, including its visit history. Cannot be undone. Itineraries that included it are not changed otherwise: each stop that was this place stays, with its day, time and notes, as a place still to identify, and a recommendation of it stays as history.
delete_travel_mark
Permanently delete an Ensemble, its components and its generated images. Notes in the member’s catalogue that it linked to are NOT deleted. If the Ensemble was still pending review, notes made only for its pieces (never kept, and with nothing else recorded about them) go with it, as on discard.
delete_ensemble
Delete an itinerary, a day, or a stop. Deleting a day does not delete its stops — they return to the itinerary unplaced, and any order they had within that day is dropped, because it was an order within that day. Nothing here touches travel marks or check-ins: those are the member’s canonical records and outlive any itinerary that referred to them.
delete_itinerary_entity
Call this when the member says no to a composition — 'discard', 'bin it', 'no thanks', 'start over'. Use the ensemble id from the create_pending_ensemble result you already have; do not ask them for it, and do not ask for extra confirmation of something they have just declined. Usually this is a still-pending composition, in which case nothing had reached their notes yet: the Ensemble, its images and any notes made for its pieces go, except a note the member has since recorded something about (owned, warranted, placed on a stop or in another Ensemble), which stays but is not added to their notes. If they discard one they had already kept, only the composition goes: every note it brought into their catalogue is now theirs and stays, as with delete_ensemble; the result names what was kept back and why. To remove such notes too, delete each one they name (delete_note), as a separate act.
discard_ensemble
Record the member’s answer when they turn a recommendation down, only when they say so; silence is no answer. Use the reason they actually gave: "not_this_trip" (wrong for this trip or plan, which says nothing about whether they like it), "not_for_me" (they say it does not suit them), or "dismissed" (no reason given). Each is recorded exactly as said and is never treated as evidence of their taste. It leaves the open list; nothing is deleted. Recording the same reason again changes nothing.
dismiss_recommendation
Edit one of the member's own check-ins, identified by its own id (from list_checkins). Only pass what changes — dates, the overall line, and/or notes on particular days; everything omitted is left as is, and the check-in keeps its identity. To add or change a day's note, pass it in `days`; to remove one, pass that date with an empty body. Shortening the dates so that an existing day note would fall outside the visit is refused unless you also list that date in `remove_days` — the member must be asked before a note is discarded.
edit_checkin
Edit one of the connected member's own notes. Only pass the fields being changed — anything omitted is left as is.
edit_note
Edit one of the connected member's own travel marks. Only pass the fields being changed — anything omitted is left as is. To log a new visit instead of changing the mark itself, use log_visit.
edit_travel_mark
Change an Ensemble's title, description or privacy.
edit_ensemble
Change a stop's wording or kind, or withhold it from public view. Suspending is context-local: it hides the stop from this itinerary's public page and changes nothing about the travel mark anywhere else.
update_itinerary_stop
Change an itinerary's title, context, or whether it is private. Publishing fails, with the reason, while a visible stop points at a private travel mark — that is deliberate: the member resolves it by publishing the mark or suspending the stop.
update_itinerary
Compatibility only — you should not normally need this. The slice that completes an image finalises it automatically and returns the image_uid. Call this only if you opened a session with start_image_upload and want to force assembly. Safe after the image is already stored: it returns the same image_uid rather than storing a second copy.
finish_image_upload
Say what an unidentified constituent actually is — "that chair is a Finn Juhl Chieftain". Links it to an existing note or creates one (a note created for a composition still pending review joins their notes only if they keep the composition), keeping the SAME component: the piece did not change, only what is known about it. Use again to correct a wrong identification; the earlier one stays in the record rather than being erased. Only call this when the member has told you the identity or confirmed yours — your own guess is not enough.
resolve_ensemble_component
Keep one of the member's own notes or travel marks that is not yet in their catalogue, when they say to keep it: a piece identified for a composition still pending review, something that survived a discarded composition, or a recommended thing or place (for which keep_recommendation works equally). Keeping adds it to their notes or marks (my_notes, my_travel_marks); it means they chose it, not that they own it, visited it or stand behind it, and it records none of those. Only on the member's word, never inferred from praise or a purchase. Already kept: changes nothing. Not for their own new things (note_object, add_travel_mark) or whole plans (keep_recommendation with the plan).
keep_record
Call when the member says to keep a recommendation ("keep it", "add that to my notes", "yes, that plan"), and also when they state a personal relationship with a recommended note or travel mark ("I went there last year", "I bought that coffee", "I own that one", "I stand behind it"): a check-in, ownership, warrant, comment or edit attaches only to a kept record, so their words already say to keep it. Keep it first, then record exactly what they said (log_visit, record_note_ownership, warrant, comment), without asking again. Praise alone is not such a statement, and wanting it under a stop in one of their kept plans needs their say-so first. Keeping brings the recommended note, travel mark or itinerary into their own catalogue; the recommendation stays as history. Keeping a recommended itinerary keeps the plan with the places and notes in its stops, as they are; unresolved stops stay unresolved. An unresolved or partial recommendation must be resolved to a specific thing first. If the record it pointed at was deleted since, keeping it finds or makes the record again from what the recommendation knows. A note recommended for a stop of one of their plans is attached to that stop as it is kept.
keep_recommendation
Call this when the member says yes to a staged composition — "keep it", "save it", "yes". Use the ensemble id from the create_pending_ensemble result you already have; do not ask them for it. This moves the Ensemble from pending_review to saved, and it is the moment their catalogue changes: clearly identified pieces become notes (PRIVATE by default), pieces already in their notes are reused rather than duplicated, and anything uncertain stays unidentified. Returns a structured result naming exactly which notes were created and which were reused, so you can tell them truthfully what happened. Safe to call twice — an Ensemble already kept is left alone.
keep_ensemble
Point a stop at a travel mark once its identity is established, or unlink it again. Established means the member confirmed which place it is, or you grounded it (with resolve_travel_mark, verify_place or an authoritative source) while building a plan the member asked you to build; never a materially ambiguous guess. The stop keeps its identity and its original words: resolving answers the intention, it does not replace it. Use intent "refine" for a first resolution, "correct" when fixing a wrong one. Linking records no visit.
resolve_itinerary_stop
List the notes attached to each stop of one of the member’s plans, which my_itineraries does not include. Read-only.
list_stop_notes
List the check-ins on one of the member's own travel marks — the times they actually went. Most recent first, with undated ones last since they have no place in time. Use this to find a check-in's id before editing or deleting it; no other tool exposes individual check-in ids. Each carries: `range`, the dates as a person would say them ("Feb 28, 2025", "Feb 24 – 29, 2024", or "Date unknown"); `visited_on` and `ended_on`, the machine dates, where ended_on is the LAST day of a continuous multi-day visit and is null for a single day; `date_known`, false when the member recorded the visit without knowing when it was, in which case both dates are null; `body`, their line about the visit as a whole; and `days`, notes tied to particular dates inside it. A multi-day visit is ONE check-in with day notes inside it — never read its days as separate visits, and never count them as extra visits.
list_checkins
List the member's collections with a count of what is in each. Collections are how the member groups their own notes and travel marks — names they chose, not categories the system assigns. Read this BEFORE filing anything, so you reuse the exact existing name instead of creating a near-duplicate, and whenever the member asks what they have grouped. Note collections and mark collections are separate; `kind` says which.
my_collections
List the member's saved compositions, newest first.
list_ensembles
List the connected member's own notes. `equivalent_notes` lists Notes this member has explicitly said are the same thing, each with its `basis`: 'user' means they said so themselves, 'external' means an outside identifier supports it. Both are canonical; neither is a guess. Inferred similarity is never included here. Each note carries the member's private `owned` state and their `warrant` state. state:null on either means they have never said anything either way — that is NOT a negative judgement and must not be read as one. 'released' means they owned it before; 'revoked' means they warranted it before and withdrew.
my_notes
List the connected member's travel marks with visit counts — a count of CHECK-INS, where one continuous multi-day stay counts once, not once per day, and a visit whose date the member cannot recall still counts. Optional search across place, city, country and tags. Each mark carries the member's `warrant` state. There is no ownership on a travel mark — owning applies to things in notes, not to places, so no `owned` field is returned here and none should be inferred. warrant state:null means they have never said either way — that is NOT a negative judgement. 'revoked' means they warranted it before and withdrew.
my_travel_marks
The member's itineraries — places they mean to go. With a uid, returns that one in full: its days, its stops, what each stop is, and how time was expressed at every level. Read it as intention only: a stop with a past date does not mean they went, an unsequenced stop is not an unfinished one, and a day with no date is not missing information. Check whether they actually went by looking at the travel mark's check-ins.
my_itineraries
List what has been recommended to the member through record_recommendations, grouped by trip or "for another time", newest first; by default only open ones (neither kept nor dismissed). Use when the member asks what was suggested before. These are proposals, not their records: for their own notes, marks and plans use my_notes, my_travel_marks and my_itineraries. A recommended itinerary’s full plan opens with my_itineraries and its target uid.
list_recommendations
List constituents across the member's Ensembles that are still unidentified — answers "which pieces haven't been identified yet?". Canonical state only; no guesses.
list_unresolved_components
Look up a place in mapping data (OpenStreetMap, the same lookup as this app's own place search) to establish its identity before writing it anywhere. Read-only: it never creates or changes a travel mark; pass what it finds to resolve_travel_mark (or add_travel_mark for a simple "mark this place"). When the member names a place themselves, show the match before writing. When the member asked you to plan or build an itinerary and exactly one result clearly matches the place you researched (same name, locality and country), you may use it without asking again. If several plausible results come back, surface the choice instead of picking one. If nothing comes back but an official or authoritative source establishes the place and its address, you may still resolve it (identity_basis authoritative_source) with no coordinates. Never invent coordinates or an address.
verify_place
Retrieve one Ensemble in full — its title and description, every generated image with a record of what went into it, and the current state of each constituent. The actual pictures come back with the result: the current composition first, then any alternate versions, then images of individual pieces — show them to the member rather than describing them or linking to them. Enough to understand and continue a composition with no memory of the conversation that made it.
get_ensemble
Re-note another member’s public note: the member saw it and wants that thing in their own notes. This creates a NEW, independent note in this member’s catalogue, copying the current description and image, with lineage back to the source; the source member can never afterwards change or remove it. It records nothing about possessing the thing (that is record_note_ownership). Re-noting the same note more than once is allowed and makes another independent note each time — if the member asks to do it again, just do it.
re_note
Read the comments on a note or a travel mark — the conversation around it, written by the member or by others who can see it. A comment is a REMARK, not a record of taste: it says what someone said about the thing, never that the member owns it, endorses it, or has been there. Use this when the member asks what people said about something, or before replying so you are not repeating what is already there. Only notes and marks the member can actually see can be read; a private record belonging to someone else is reported as not found.
read_comments
List the most recent public notes on discriminant.ly (all members). Each entry carries `already_renoted`: the notes this member has ALREADY made from that one with re_note. It is informational only — never a reason to refuse, to ask for confirmation, or to treat the action as blocked. If the member wants another, re-note again; repeated re-notes are valid and each becomes its own note. Optional search query.
recent_notes
Record what a Discriminantly recommendation workflow has deliberately selected and presented to the member as a recommendation: things, places or whole itineraries, for cold_start (starting their catalogue), destination_objects (for one of their trips or plans) or for_another_time (worth keeping in mind with no particular trip, including something you set aside for later while doing either of the others). Record only what you actually present, never the candidates you researched or considered and dropped. Not for general recommendation questions that do not involve their Discriminantly catalogue or plans, and not when the member asks to keep, note or mark something themselves: that is note_object, add_travel_mark, create_itinerary or keep_recommendation. A recommendation is your proposal: it does not mean they saw, liked, kept, own, visited or endorse it, it is never evidence of their taste, and it is not added to their notes, marks or itineraries (my_notes, my_travel_marks, search_catalogue and my_itineraries do not show it) unless they later say to keep it (keep_recommendation) or it points at a record that is already theirs. Record the resolution you actually reached: a category ("medium-roast Kaʻu coffee") is unresolved, a producer without the exact product is partial, and neither needs inventing detail. If it is something they already have, pass target_uid and that record gains the recommendation. A resolved thing or place that they do not have is given a private record that is not kept. For a whole plan, use kind "itinerary" (a new private plan, not kept), then add_itinerary_stops with its target uid. Recording the same proposition in the same context again returns the existing one. Inside a plan the member asked you to build, the places you choose are the plan itself: make them canonical travel marks (resolve_travel_mark, target_state canonical) and add them as stops; you may still record that you proposed them, with target_uid pointing at that mark (or pass recommendation_context to resolve_travel_mark), and no keep_recommendation is needed. keep_recommendation is for optional ideas the member has not taken up, such as For another time.
record_recommendations
Discriminantly ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Discriminantly's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Discriminantly alternatives on ChatGPT?
As of 2026-10-10, Discriminantly competes with AI Trip Planner, Almosafer.com, AuroraReach, eDreams, Evaneos, Fridey, Gondola, Gullivr and 40 more in ChatGPT AI Trip Planners & Itinerary Builders, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.