Rev.io sync: the complete field-mapping reference
This is the reference for what moves between Rev.io and Current, which direction it moves in, and who wins when both sides change. Current's rule everywhere is that the PSA owns money and record identity, and Current owns scheduling. Where a field exists on both sides and both may edit it, the most recent edit wins.
Customers
| Rev.io | Current | Direction |
|---|---|---|
| Customer id | Company external id | In, and set on create |
| Name, or first and last name for a residential customer | Company name | In, and sent when Current creates the customer |
| Phone, website, address | Company contact details | Both ways |
| Status (Open, Closed, Pending, Prospect) | Active or inactive | In |
| Custom fields | Company custom fields | Values set in Current are written to Rev.io; Rev.io's values are not read yet |
| Parent customer | Not used for customer groups yet | Neither |
A company Current creates in Rev.io needs a street address, city, postal code and a recognised country, plus a default customer type set in Rev.io, and it arrives in Rev.io as a Prospect. Without them Current keeps the company and says what is missing.
Customer groups stay in Current on a Rev.io workspace. Grouping, changing or deleting a group writes nothing to Rev.io. See "Customer groups: one customer with several sites".
Contacts
| Rev.io | Current | Direction |
|---|---|---|
| Contact id | Contact external id | In, and set on create |
| Name (one field) | First and last name | Both ways |
| Email, phone, mobile, title | Email, phone, mobile, title | Both ways |
| Address | Street, city, state, postal code, country | Both ways |
| Active | Active or inactive | Both ways |
Notes
Rev.io customer notes come into the company's timeline, and a note you add, edit or delete on a company in Current is added, changed or deleted in Rev.io when CRM write mode allows it. A Rev.io edit to an older note reaches Current on the next full read.
Users
Rev.io users become your team, matched to Current sign-ins by email. A user with no matching sign-in still appears as a resource, so tickets and time assigned to them keep a name.
Tickets
| Rev.io | Current | Direction |
|---|---|---|
| Ticket, its customer and contact; Rev.io's ticket description becomes the title | Company ticket | In. The request details aren't brought across yet |
| Status, priority, type, severity | Ticket status, priority and type | Status both ways, the rest in |
| Assigned technician | Assignee | In (a project ticket's owner goes back through its task) |
| Board | Ticket queue, switchable on the Rev.io card | In |
| SLA timers | Due and resolution times | In, due times only for an SLA that runs around the clock |
| Activity notes | Comments on a project task whose work item is a ticket | Out |
A ticket that is a work item in a Rev.io project is project work, so it arrives as a task in that project rather than as a service ticket. A status change from Current must be a status that is active in your Rev.io; any other is skipped with the reason. Due times are filled in only for an SLA that runs around the clock; a business-hours SLA shows Rev.io's met or missed result without a due time.
Projects, phases, milestones and tasks
| Rev.io | Current | Direction |
|---|---|---|
| Project | Rev.io-synced project | Both ways: created on a build, then its end date and completion go back. Renames and start dates are changed in Rev.io |
| Phase | Phase | In; a phase's end date goes back. New phases and renames are made in Rev.io |
| Milestone | Milestone | Both ways: name, due date and owner |
| Work item (a ticket or a calendar task) | Task | Both ways |
| Start and end dates | Scheduled dates | Both ways, Current owns scheduling |
Dependencies, the critical path and estimated hours stay Current's own. A Rev.io milestone has one date, so Current sends a milestone's due date and keeps its start date in Current. When you build a project in Rev.io before Current has seen which phase status your Rev.io uses, the tasks are added without phases; after the first sync Current knows the status and builds the phases too. A Rev.io task has one owner, so Current sends the task's primary assignee and any extra people on it stay in Current. Current never deletes a project or task in Rev.io: a project removed in Rev.io is archived in Current, and only after a complete read confirms it is gone.
Time
| Rev.io | Current | Direction |
|---|---|---|
| Ticket time log | Time entry | In, and sent once when the entry is created |
| Time log reason | Billing code | In (name and active only) |
| Billable minutes, start and end | Hours and dates | In, and sent when the entry is created |
Every entry sent to Rev.io needs a time log reason, which the technician picks on the time entry. A time log reason's cost and billing rate are never read into Current, and Current never sends a rate: Rev.io bills at its own rate for the reason. Time reaches Rev.io only when it is on a ticket, including a ticket added to a Rev.io project. Time on a project task reaches Rev.io only when the task's work item is a ticket. A calendar task in Rev.io can't take time through Rev.io's API, so Current keeps the entry and says why on it.
Current sends a time entry to Rev.io once. Editing it afterwards in Current does not change the Rev.io time log, so make corrections in Rev.io. Time Rev.io has locked or invoiced is marked approved in Current. The entry's contract isn't sent, because Rev.io's time log has no contract field. Billable minutes are sent only when the hours come to a whole number of minutes; otherwise Rev.io works the time out from the start and end. On a fixed-fee project the time log is sent as not billable, because the project bills by its milestones.
Agreements, services and recurring revenue
Rev.io agreements and the services under them become contracts and contract lines, and active recurring lines drive the company's MRR. Each line is converted to a monthly figure from its own billing interval: monthly, quarterly, every six months, yearly, or every two or three years. A service whose interval Current cannot read is kept out of MRR, never counted as monthly. Whether a service's rate is stated per month or per billing interval is still being confirmed, so check a few annual lines against Rev.io after the first sync.
Invoices
Rev.io invoices and their charges become billed items, which feed account profitability's project and one-time revenue. Tax lines are kept apart from revenue. No cost from Rev.io is ever mirrored.
Opportunities and quotes
Rev.io opportunities appear in Current's pipeline and Rev.io quotes on the company record, both read-only. A close made in Rev.io is recorded as a sync close, which never mints commission. Changing a stage in Current, or converting a won Rev.io quote, is not available yet: Current keeps your change and says it was not sent. Quotes show without a total for now, because Rev.io's quote list carries none, and the single expected amount Rev.io keeps is shown as one-time revenue.
Not synced
| Area | Why |
|---|---|
| Leads | Not pulled. Rev.io leads can be email intake rather than sales opportunities. |
| Attachments | Not available for Rev.io yet. Files stay in Current. |
| CSAT surveys | Current found no survey endpoint in Rev.io's PSA API. Use CrewHu or SimpleSAT. |
| Holidays and time off | Not synced from Rev.io yet. |
| Service desk PSA ticket sync | Not offered for Rev.io. The service desk runs on Current's own tickets. |
| Assets | Not part of this integration. |
What Rev.io's API can't do yet, and what Current does about it
Each limit below says what Rev.io's PSA API doesn't offer, what you'll see because of it, and what Current does about it. "Connect Rev.io and choose what syncs" carries the short version, and "What Current writes back to Rev.io (and when)" covers the write rules in detail.
1. No "changed since" filter
- +The limit: Rev.io's PSA API has no way to ask for only the records changed since a time.
- +What you'll see: Project and task edits arrive within minutes and ticket and customer edits within about an hour. If Rev.io ignores the order Current asks for, a ticket edit can take up to about 6 hours.
- +What Current does: Current asks Rev.io for records newest first and stops when it reaches ones it already has. If Rev.io ignores that order, Current re-reads in full and saves only the records that changed: projects on every check, tickets at most every 6 hours. Sync now on the card pulls sooner. Which of the two happened is recorded on the connection.
2. No webhooks
- +The limit: Rev.io's PSA API cannot tell Current when something changes.
- +What you'll see: A change made in Rev.io reaches Current on the next check, not the instant it is saved.
- +What Current does: Current checks Rev.io projects, tasks and project time every 5 minutes. Customers, contacts, notes, tickets, ticket time, opportunities and quotes are checked about every hour, and users, time log reasons, boards, agreements and invoices about every 6 hours. A nightly pass looks for projects and tasks deleted in Rev.io. Sync now on the card pulls sooner.
3. Rate limits aren't published
- +The limit: Rev.io documents no request limit for its PSA API.
- +What you'll see: A large first sync can take longer than on other PSAs.
- +What Current does: Current limits itself to 120 requests a minute when a person is waiting and 90 in the background, backs off when Rev.io says to slow down, and paces the first sync so it never floods the account. A run that reaches the limit stops and picks up on the next one, and says so rather than showing an error.
4. Some responses aren't documented
- +The limit: Rev.io does not document the shape of a ticket's live activity feed.
- +What you'll see: The ticket drawer shows the ticket's mirrored details, but not Rev.io's live activity feed yet.
- +What Current does: A comment on a project task whose work item is a ticket still reaches Rev.io as an activity note on that ticket.
5. Whether an update replaces the whole record isn't documented
- +The limit: Rev.io does not say whether an update leaves the fields you didn't send alone.
- +What you'll see: Nothing. A change you make touches only that field.
- +What Current does: Current reads the record first, changes only the field you changed, sends the full record back once, then reads it again to confirm Rev.io stored it. A value Rev.io kept differently shows as a conflict on the record.
6. Writes are never retried automatically
- +The limit: A timeout or server error leaves it unclear whether Rev.io saved a write.
- +What you'll see: A time entry or note Current could not confirm is flagged for a person, with the reason on it. Check Rev.io before you send it again.
- +What Current does: Current checks by reading back instead of sending twice. If it finds the record, it links to it. If it can't find it, Current does not send it again on its own: it flags the entry for a person to check Rev.io first, so time is never logged twice and a note is never posted twice.
7. Dates without a time zone
- +The limit: Rev.io's PSA API does not say which time zone its dates and times are in.
- +What you'll see: Times line up as long as Rev.io stores them in UTC. Whether it does is still being confirmed.
- +What Current does: Current treats a time with no offset as UTC and records that it did, and never shifts a date-only field such as a due date.
8. The API key carries its creator's role
- +The limit: A Rev.io key can see and change only what the user who created it can.
- +What you'll see: An area the role cannot reach shows as a sentence on the Rev.io card and in Sync health, never as silent zeros.
- +What Current does: Current names the missing permission so you can fix the role. Create a dedicated Current user with the role the connect article lists.
9. Not available through Rev.io's PSA API yet, or not built in Current yet
- +The limit: A few areas are missing from the API or are still to come in Current.
- +What you'll see: Opportunities and quotes are shown, not created or converted. There are no attachments, no leads, no CSAT surveys, no holidays or time off, and the service desk's PSA ticket sync is not offered for Rev.io.
- +What Current does: CSAT comes from CrewHu or SimpleSAT. Time reaches Rev.io only on a ticket, including a ticket added to a Rev.io project; time on a project calendar task can't be sent, because Rev.io's API has no way to tie time to one, so Current keeps the entry and says why on it. A Rev.io milestone has one date, so Current sends the due date and keeps the start date in Current. Each missing action answers with its reason rather than a failure.
10. Rev.io has a second, older API
- +The limit: Rev.io also runs a billing REST API, documented at developers.rev.io, for its telecom billing platform.
- +What you'll see: A key or login for that API will not connect.
- +What Current does: Current connects to the Rev.io PSA API, the one with tickets, time and projects, using a key from Admin, API Management in Rev.io PSA.
11. Creating a customer needs a full address
- +The limit: Rev.io takes a new customer only with a street address, city, postal code, a recognised country and a default customer type set in Rev.io.
- +What you'll see: A company created in Current without those stays in Current, with a line saying what is missing. A company Current creates arrives in Rev.io as a Prospect.
- +What Current does: Current checks the address before it sends anything and names the missing part, so nothing half-made lands in Rev.io. Add the address on the company, or set a default customer type in Rev.io, and save again.
12. List reads carry fewer fields
- +The limit: Rev.io's ticket and quote lists leave out a ticket's request details and a quote's totals, and an opportunity carries one expected amount.
- +What you'll see: A Rev.io ticket's description shows as its title and the request details are blank. Quotes show without a total, and an opportunity's amount shows as one-time revenue.
- +What Current does: Current fills in what the list gives and leaves the rest blank rather than guessing a value.
13. SLA timers give elapsed time, not a due time
- +The limit: Rev.io reports how long an SLA has run, not when it is due.
- +What you'll see: Due times are filled in only for an SLA that runs around the clock. A business-hours SLA shows Rev.io's met or missed result without a due time.
- +What Current does: Current works out a due time only when Rev.io's elapsed time matches the clock, and never guesses one for a business-hours SLA.
14. A Rev.io task has one owner
- +The limit: A Rev.io work item takes one assigned person.
- +What you'll see: Extra people you add to a task stay in Current and are not shown in Rev.io.
- +What Current does: Current sends the task's primary assignee and says the extra people stayed in Current.
15. Time logs are created once, with fewer fields
- +The limit: Rev.io's time log has no contract field and takes billable minutes only as a whole number, and Current does not change a time log once it is sent.
- +What you'll see: The entry's contract stays in Current. An edit to a time entry after it is sent does not reach Rev.io, so corrections are made in Rev.io.
- +What Current does: Current sends billable minutes only when the hours come to a whole number of minutes, and otherwise sends the exact start and end so Rev.io works the time out without rounding. On a fixed-fee project the time log goes as not billable.
