Revial
Integraatiot

Salesforcen tekninen integraatio-opas

Salesforce-ylläpitäjille, tietoturva-arvioijille ja IT:lle — miten Revial todentaa, mitä se lukee ja kirjoittaa, tarvittavat oikeudet, API-kulutus, virhetilanteet ja auditointi.

Tämä opas kuvaa, mitä Revial tekee Salesforce-organisaatiossasi, jotta voit hyväksyä, määrittää ja myöhemmin auditoida integraation. Yhdistäminen vaihe vaiheelta: Yhdistetään Revial Salesforceen. Jokainen luettava ja kirjoitettava kenttä: Mitä Revial synkronoi Salesforcen kanssa.

1. Mitä hyväksyt

Revial yhdistyy OAuth-asiakkaana Salesforce REST API v60.0:n ja SOQL:n kautta. Valtuutus tehdään OAuth 2.0 -valtuutuskoodilla ja PKCE:llä (S256), ja sen suorittaa yksi käyttäjistäsi selaimessa.

OminaisuusArvo
PääsymalliVain delegoitu — Revial toimii valtuuttaneena käyttäjänä
OAuth-scopetapi, refresh_token, openid
Vaaditut ylläpito-oikeudetEi mitään — ei System Administratoria, ei "Modify All Data" -oikeutta, ei JWT bearer- tai client credentials -pääsyä
Tuetut organisaatiotTuotanto ja sandbox

Koska pääsy on delegoitu, objektioikeudet, kenttätason suojaus, jakosäännöt ja tietueiden omistajuus pätevät sellaisinaan. Tietueet, joita yhdistävä käyttäjä ei näe, eivät päädy Revialiin.

2. Mitä ylläpitäjäsi tarvitsee tehdä

Useimmissa organisaatioissa ei mitään — lisensoitu käyttäjä napsauttaa Yhdistä Salesforceen, kirjautuu ja sallii pääsyn. Ylläpitäjää tarvitaan, kun:

TilanneMitä tehdä
Organisaatiosi rajoittaa, mitä yhdistettyjä sovelluksia käyttäjät voivat valtuuttaaHyväksy Revial kohdassa Setup → Connected Apps OAuth Usage
Organisaatiosi rajoittaa API-pääsyä IP-osoitteen mukaanLöysennä rajoitusta yhdistävälle käyttäjälle tai pyydä Revialin tuelta lähtevät osoitteet
Haluat erillisen integraatiokäyttäjänLuo se (luku 4) ja anna sen tehdä yhdistäminen
Haluat yhdistää sandboxinKäytä sandboxin omaa My Domain -osoitetta (luku 3)
Haluat Revialin kirjoittavan kenttiinMyönnä kenttätason Edit-oikeus ja mäppää kentät Revialissa
Haluat tapaamisten tulokset mukautettuun objektiinToimita objektin ja kenttien API-nimet Revialille (liite A)

Asennettavaa pakettia, käyttöönotettavaa metadataa tai Apex-koodia ei ole.

3. Todennus ja tunnistemalli

OminaisuusArvo
Valtuutuspäätepistehttps://{loginHost}/services/oauth2/authorize (kirjautumisnäkymä näytetään aina)
Tunnistepäätepistehttps://{loginHost}/services/oauth2/token
Kirjautumisosoitelogin.salesforce.com tuotannolle tai sandboxin oma osoite
Grant-tyypitauthorization_code (yhdistäminen), refresh_token (päivitys)
AsiakastunnuksetRevialin palvelimella, ei koskaan selaimessa
Tarkistus yhdistämisen jälkeenGET {instanceUrl}/services/oauth2/userinfo
Pääsytunnisteen elinikäOletetaan 2 tunniksi issued_at-hetkestä; päivitetään, kun jäljellä on alle 35 minuuttia

Kirjautumisosoite. Vain Salesforcen ylläpitämät verkkotunnukset hyväksytään (salesforce.com, force.com, salesforce.mil, cloudforce.com, sfcrmapps.cn); muut hylätään eikä niitä korvata oletuksella. Yhdistämisen yhteydessä valittu osoite tallennetaan ja sitä käytetään jokaisessa päivityksessä, joten sandbox-yhteys toimii myös ensimmäisen tunnisteen vanhenemisen jälkeen. Käytä sandboxin omaa osoitetta — yleinen test.salesforce.com hyväksytään, mutta se voi ohjata kirjautuneen käyttäjän toiseen organisaatioon. Palautetun instanssiosoitteen on oltava HTTPS-osoite *.salesforce.com- tai *.force.com-verkkotunnuksessa.

Tunnisteiden säilytys. Yksi yhteys Revial-organisaatiota ja palveluntarjoajaa kohden. Pääsy- ja päivitystunnisteet salataan levossa (AES-256-GCM). Revial tallentaa myös instanssin URL-osoitteen, yhdistävän käyttäjän tunnuksen, sähköpostin ja nimen userinfo-vastauksesta, kirjautumisosoitteen ja yhteyskohtaiset asetukset.

Päivitys. Enintään kolme yritystä lyhyellä viiveellä. invalid_grant- tai 401-vastauksella yhteys merkitään uudelleentodennusta vaativaksi ja organisaation ylläpitäjä saa sovelluksen sisäisen ilmoituksen — Revial lopettaa sen sijaan, että yrittäisi organisaatiotasi vastaan uudelleen. Jos Salesforce palauttaa uuden päivitystunnisteen (kierrätys), se tallennetaan ja vanha hylätään.

Kuka voi yhdistää Revialin puolella. Organisaation omistaja tai ylläpitäjä tilauksella, joka sisältää CRM-integraation. Kulkua rajoitetaan pyyntömäärän mukaan, ja se on suojattu kertakäyttöisellä state-arvolla ja palvelimella säilytettävällä PKCE-verifierillä, jotka ovat voimassa viisi minuuttia. Kun Salesforce-yhteys on yhdistettynä, toinen hylätään; virhetilassa oleva yhteys päivitetään paikallaan ja se säilyttää asetuksensa.

4. Yhdistävä käyttäjä ja tarvittavat oikeudet

Kaikki tapahtuu yhden yhdistävän käyttäjän nimissä. Suosittelemme erillistä, lisensoitua integraatiokäyttäjää — se säilyy henkilöstömuutoksissa ja pitää tietueiden omistajuuden ennustettavana. Tavallinen myyntiprofiili antaa yleensä tarvittavat oikeudet.

Revialin tarvitsee…Oikeus
Käyttää API:aAPI Enabled
Lukea Accounts, Contacts, Leads, OpportunitiesRead
Lukea Events, Tasks, EmailMessage, NotesRead
Lukea OpportunityStage, OpportunityContactRoleRead
Kirjata tapaamisten yhteenvedotCreate (Task)
Kirjoittaa mäpättyihin kenttiin (Account, Contact, Opportunity)Kenttätason Edit kyseisiin kenttiin
Käyntiraportit (liite A, jos käytössä)Create ja kenttätason Edit objektiin; Edit asetettaviin Event-kenttiin; Read (User)
Poistaa tietueita, muuttaa metadataa, ylläpitääEi tarvita

Taulukko on oletus, ei minimi. Jos Task-luontioikeutta ei anneta, yhteenvetoja ei kirjata; jos kenttätason Edit-oikeutta ei anneta, mäpättyjä kenttiä ei kirjoiteta.

Puuttuvat oikeudet. 403 INSUFFICIENT_ACCESS Event-, Task- tai EmailMessage-objektissa ohittaa kyseisen objektin, viimeistelee muun synkronoinnin ja merkitsee yhteyden huomiota vaativaksi. 403 asiakkaissa, kontakteissa, liideissä, myyntimahdollisuuksissa tai muistiinpanoissa kaataa kyseisen osan synkronoinnista. Jos kenttätason suojaus piilottaa jonkin Revialin valinnaisista kentistä (kuten AnnualRevenue, Phone tai Title), Revial jättää kentän pois ja yrittää uudelleen; piilotettu pakollinen kenttä kaataa kyselyn.

5. Mitä Revial lukee

Asiakkaat, kontaktit, konvertoimattomat liidit (IsConverted = false), myyntimahdollisuudet, aktiiviset OpportunityStage-tietueet, OpportunityContactRole, Eventit, Taskit (paitsi TaskSubtype Email ja ListEmail), EmailMessage mukaan lukien koko TextBody ja EmailMessageRelation sekä klassiset muistiinpanot. Kyselyt käyttävät eksplisiittisiä kenttälistoja ja seuraavat nextRecordsUrl-sivutusta. Koko kenttälista: Mitä Revial synkronoi Salesforcen kanssa.

Synkronoinnin ulkopuolella Revial voi lukea myös käyttäjän (User) sähköpostin perusteella, myyntimahdollisuuden tai kontaktin AccountId-kentän, Eventit ja EventRelationin (vain käyntiraportit) sekä objektien describe-metadatan kenttien mäppäysnäkymää varten.

Revial ei lue Caseja, kampanjoita, Chatteria, Files- tai ContentDocument-tietueita, Lightning-muistiinpanoja, tietuetyyppejä eikä kenttähistoriaa.

6. Mitä Revial kirjoittaa

Tietueet luodaan kutsulla POST /sobjects/{Object}/ ja päivitetään kutsulla PATCH /sobjects/{Object}/{id}.

ToimintoTiedot
Tapaamisen yhteenvetoLuo Task: Subject, Description (pelkkä teksti), Status Completed, Priority Normal, WhoId kontakti, WhatId myyntimahdollisuus tai asiakas. Ei ActivityDate- eikä OwnerId-kenttää
Mäpätyt kentätPäivittää tunnistetun asiakkaan, kontaktin tai myyntimahdollisuuden — vain mäppäämäsi kentät
Käyntiraportti (liite A)Luo määritetyn objektin; päivittää tunnistetun Eventin määritetyt kentät

Yhteenvedot ovat Taskeja eivätkä muistiinpanoja, koska valmiiksi merkitty Task näkyy aktiviteettiaikajanalla, jota myyjät seuraavat. Revial ei koskaan poista tietueita eikä muuta metadataa.

7. Kenttien mäppäykset

Ylläpitäjät mäppäävät Revialin yhteenvetokenttiä ja mukautettuja poimintakenttiä asiakkaan, kontaktin ja myyntimahdollisuuden kenttiin kohdassa Organisaatio → CRM-asetukset → Ominaisuuksien yhdistäminen. Kenttiä, joilla on jo arvo, ei muuteta, ellei mäppäystä ole asetettu ylikirjoittamaan. Päivitykset lähetetään yhtenä PATCH-eränä; jos se hylätään, jokaista kenttää yritetään erikseen ja virheet raportoidaan kenttäkohtaisesti.

Vaiheet normalisoidaan avainsanojen perusteella (kvalifiointi, tarvekartoitus, tarjous, neuvottelu); voitettu ja hävitty päätellään kentistä IsClosed ja IsWon, ja muut vaiheet ovat "muu".

8. Synkronoinnin tahti ja API-kulutus

Revialin kutsut lasketaan organisaatiosi päivittäiseen API-pyyntökiintiöön.

  1. Ensimmäinen synkronointi — täysi haku objekteittain, uusimmat ensin, enintään 50 000 tietuetta objektia kohden. Myyntimahdollisuudet rajataan avoimiin ja viimeisten 12 kuukauden aikana muokattuihin.
  2. Seuraavat synkronoinnit — noin tunnin välein, WHERE LastModifiedDate > {watermark} nousevassa järjestyksessä, joten kuorma seuraa muuttuneita tietueita eikä organisaation kokoa.
  3. Järjestys — asiakkaat → kontaktit → liidit → vaiheet → myyntimahdollisuudet → aktiviteetit → muistiinpanot, kukin omana ajonaan; tilapäinen virhe yritetään uudelleen seuraavalla ajolla.

OpportunityContactRole- ja EmailMessageRelation-haut tehdään 200 tunnisteen erissä. Datakutsujen aikakatkaisu on 30 sekuntia.

Poistoja ei tunnisteta. LastModifiedDate-suodatus ei palauta poistettuja tietueita, eikä Revial täsmäytä niitä: Salesforcessa poistettu tietue jää Revialin kopioon, kunnes katkaiset yhteyden.

Tietueraja. Jos objektilla on yhdellä ajolla yli 50 000 muuttunutta tietuetta, loput ohitetaan eikä niitä haeta myöhemmin.

9. Tapaamisten yhdistäminen CRM-tietueisiin

Kun tapaaminen linkitetään Salesforcen tietueisiin, Revial kokeilee järjestyksessä ja ensimmäinen osuma voittaa:

  1. Suora — tapaamiseen jo liitetyt tietuetunnukset.
  2. Pysyvä — avoin myyntimahdollisuus, johon tapaaminen on jo linkitetty.
  3. Sähköposti — osallistujien sähköpostit → kontaktit → niiden myyntimahdollisuudet, pisteytettyinä.
  4. Verkkotunnus — yritys verkkosivun tai sähköpostin verkkotunnuksen perusteella (ei myyntimahdollisuutta).
  5. Yrityksen nimi — nimen perusteella (ei myyntimahdollisuutta).

Pisteytys suosii avoimia diilejä, osallistujaa ensisijaisena kontaktina, muita osallistujia diilissä, otsikon samankaltaisuutta, pidemmälle edenneitä vaiheita ja tuoretta aktiviteettia. Suljetut myyntimahdollisuudet jätetään pois. Ilmaisten sähköpostipalveluiden verkkotunnukset (Gmail, Outlook ym.) ohitetaan yritystunnistuksessa, joten tapaaminen, jossa on vain henkilökohtaisia osoitteita, ei välttämättä linkity asiakkaaseen.

10. Tietoturva, rajat ja virhetilanteet

  • API-versio: REST ja SOQL v60.0.
  • Aikakatkaisut: 30 sekuntia datakutsua kohden.
  • Vähimmät oikeudet: kolme scopea, ei ylläpito-oikeuksia, ei sovelluskohtaista pääsyä.
  • Salaisuudet: asiakastunnukset vain palvelimella; tunnisteet salattu levossa.
  • Osittaiset oikeudet: katso luku 4.
  • Sivutuksen turvallisuus: objektikohtainen 50 000 tietueen katto ajoa kohden.
  • Datan säilytys: Revial tallentaa synkronoidut tietueet ja jokaisen raa'an API-vastauksen. Ne poistetaan, kun katkaiset yhteyden.

11. Auditointi ja yhteyden katkaiseminen

Näin näet, mitä Revial on tehnyt organisaatiossasi:

  • Setup → Connected Apps OAuth Usage — Revialin sovellus, sen valtuuttaneet käyttäjät ja käyttäjäkohtainen peruutus.
  • Setup → Login History — suodata yhdistävän käyttäjän mukaan.
  • API-käyttö — kohdista pyyntömäärä yhdistävälle käyttäjälle.
  • Revialin kirjoittamat tietueet — yhdistävän käyttäjän luomat valmiit Taskit (ja käyntiraportit, jos määritetty).

Yhteyden katkaiseminen:

  • Revialissa — Katkaise yhteys Salesforce-kortissa. Revial poistaa synkronoidun kopionsa ja tallennetut tunnisteet. Se ei kutsu Salesforcen peruutuspäätepistettä.
  • Salesforcessa — peruuta sovellus kohdassa Connected Apps OAuth Usage tai poista yhdistävä käyttäjä käytöstä. Revial saa invalid_grant-vastauksen, merkitsee yhteyden ja lopettaa.

Kumpikaan ei poista Taskeja tai tietueita, jotka Revial on jo kirjoittanut.

12. Vianmääritys

OireTodennäköinen syyKorjaus
"This app is blocked"Organisaatio rajoittaa yhdistettyjä sovelluksiaHyväksy Revial kohdassa Connected Apps OAuth Usage
Yhdistetty, mutta synkronointi on tyhjäKäyttäjä ei näe tietueitaLaajenna käyttäjän roolia tai jakoa, tai yhdistä laajemmalla näkyvyydellä
Sähköposteja, Eventejä tai Taskeja puuttuu403 kyseisessä objektissaMyönnä Read-oikeus
Mäpätty kenttä ei päivity koskaanKenttätason Edit puuttuuMyönnä Edit; Revial raportoi kenttäkohtaiset virheet
Sandbox yhdistyi tuotantoonKäytettiin yleistä test.salesforce.com-osoitettaKatkaise yhteys ja yhdistä sandboxin omalla osoitteella
Ilmoitus "CRM: Authentication expired"Tunniste peruutettu, käyttäjä poistettu käytöstä tai salasana nollattuKatkaise yhteys ja yhdistä uudelleen
API-käytön piikkiEnsimmäinen täysi synkronointiOdotettua kerran; myöhemmät synkronoinnit seuraavat vain muutoksia
Tapaaminen ei linkity asiakkaaseenVain ilmaisten sähköpostipalveluiden osallistujiaOdotettua — niitä ei käytetä tunnistukseen

Liite A — Käyntiraportit (mukautettu objekti)

Jotkin organisaatiot kirjaavat tapaamisten tulokset mukautettuun objektiin, kuten Visit_Report__c, joka linkitetään kalenterin Eventiin. Revial tukee tätä yhteyskohtaisella määrityksellä, jonka Revial tekee — organisaatiossasi ei tarvita koodimuutoksia.

Mitä toimitat:

AsetusMerkitys
objectNameObjektin API-nimi (pakollinen)
notesFieldKenttä, johon tapaamisen muistiinpanot kirjoitetaan (pakollinen)
accountFieldLookup- tai master-detail-kenttä asiakkaaseen (pakollinen)
eventLookupFieldEvent-kenttä, joka asetetaan osoittamaan raporttiin (pakollinen)
opportunityField, contactField, subjectField, visitDateField, needsReviewField, dealerCustomerFieldRaportin valinnaiset kentät
visitReportOwnerField, eventOwnerFieldValinnaiset omistajakentät, jotka asetetaan myyjäksi
eventStakeholderFieldValinnainen sidosryhmävalintalista Eventissä
fieldMapTapaamisesta koottavat lisäarvot
matchStrategy.startWindowMinutes± minuutit Eventin tunnistamiseen alkamisajan perusteella (oletus 60)

Miten kirjoitus toimii:

  1. Eventin tunnistus — Event, joka alkaa aikaikkunan sisällä ja on linkitetty tapaamiselle tunnistettuun kontaktiin (myös EventRelationin kautta); lähin alkamisaika voittaa. Myyjän valitsema Event käytetään suoraan.
  2. Asiakkaan selvitys — myyjän valinta, muuten Eventin WhatId, jos se on asiakas, muuten kyseisen myyntimahdollisuuden asiakas, muuten Eventin kontaktin asiakas.
  3. Tietueen luonti määritetyillä kentillä.
  4. Eventin päivitys — takaisinlinkkikenttä ja, jos määritetty, omistaja- ja sidosryhmäkentät. Omistajakentän asettaminen voi vaihtaa Eventin omistajan.

Revial ei koskaan luo Eventiä. Erilliset tulokset raportoidaan: no_contacts_resolved (yksikään osallistuja ei vastannut kontaktia — tarkista CRM-synkronointi), no_event_matched (aikaikkunassa ei ollut Eventiä — tarkista kalenterisynkronointi), no_account_on_event ja linkFailed (raportti luotiin, Eventin päivitys epäonnistui — myönnä Edit Event-kenttään ja korjaa linkki käsin). Luotua raporttia ei koskaan peruta.

Tällä sivulla